]> git.hungrycats.org Git - linux/commit
Isn't sd_major() broken ?
authorBadari Pulavarty <pbadari@us.ibm.com>
Thu, 10 Apr 2003 12:54:26 +0000 (07:54 -0500)
committerLinus Torvalds <torvalds@home.transmeta.com>
Thu, 10 Apr 2003 12:54:26 +0000 (07:54 -0500)
commitbb9e1c7a55414c0d1abe8fe74c0d8e7d3aee37a0
tree749bf524ceefcd878e7e3172d27c4da684380801
parentf01d7733bed36ebc85d5c431f0114e4bfddf99fa
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
drivers/scsi/sd.c