diff -urpN -X /home/fletch/.diff.exclude 610-dynamic_hd_struct/drivers/scsi/sd.c 620-devfs_fixup/drivers/scsi/sd.c --- 610-dynamic_hd_struct/drivers/scsi/sd.c Sun Apr 20 19:35:03 2003 +++ 620-devfs_fixup/drivers/scsi/sd.c Sun Apr 20 22:32:28 2003 @@ -124,6 +124,9 @@ static int sd_major(int major_idx) return SCSI_DISK1_MAJOR + major_idx - 1; case 8 ... 15: return SCSI_DISK8_MAJOR + major_idx - 8; +#define MAX_IDX (TOTAL_SD_DISKS >> 4) + case 16 ... MAX_IDX: + return SCSI_DISK15_MAJOR; default: BUG(); return 0; /* shut up gcc */ diff -urpN -X /home/fletch/.diff.exclude 610-dynamic_hd_struct/fs/partitions/check.c 620-devfs_fixup/fs/partitions/check.c --- 610-dynamic_hd_struct/fs/partitions/check.c Sun Apr 20 22:24:49 2003 +++ 620-devfs_fixup/fs/partitions/check.c Sun Apr 20 22:29:54 2003 @@ -259,14 +259,13 @@ void add_partition(struct gendisk *disk, memset(p, 0, sizeof(struct hd_struct)); p->start_sect = start; p->nr_sects = len; + p->partno = part; + disk->part[part-1] = p; devfs_register_partition(disk, part); snprintf(p->kobj.name,KOBJ_NAME_LEN,"%s%d",disk->kobj.name,part); p->kobj.parent = &disk->kobj; p->kobj.ktype = &ktype_part; kobject_register(&p->kobj); - - p->partno = part; - disk->part[part-1] = p; } static void disk_sysfs_symlinks(struct gendisk *disk)