]>
git.hungrycats.org Git - linux/commit
Isn't sd_major() broken ?
I am little confused about the correctness of sd_major() in drivers/scsi/sd.c.
static int sd_major(int major_idx)
{
switch (major_idx) {
case 0:
return SCSI_DISK0_MAJOR;
case 1 ... 7:
return SCSI_DISK1_MAJOR + major_idx - 1;
case 8 ... 15:
return SCSI_DISK8_MAJOR + major_idx;
default:
BUG();
return 0; /* shut up gcc */
}
}
So, if major_idx = 8, It returns 143.
But according to major.h, scsi has 128-135 reserved
majors. But it is registering 136 - 143 as its majors.
#define SCSI_DISK8_MAJOR 128
#define SCSI_DISK9_MAJOR 129
#define SCSI_DISK10_MAJOR 130
#define SCSI_DISK11_MAJOR 131
#define SCSI_DISK12_MAJOR 132
#define SCSI_DISK13_MAJOR 133
#define SCSI_DISK14_MAJOR 134
#define SCSI_DISK15_MAJOR 135