diff options
Diffstat (limited to 'xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c')
-rw-r--r-- | xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c index 8a48285fb1..6968df42b0 100644 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c @@ -49,10 +49,16 @@ inline unsigned short xldev_to_physdev(kdev_t xldev) switch ( MAJOR(xldev) ) { - case XLIDE_MAJOR: - physdev = XENDEV_IDE + (MINOR(xldev) >> XLIDE_PARTN_SHIFT); + case XLIDE_MAJOR_0: + physdev = XENDEV_IDE + (0*XLIDE_DEVS_PER_MAJOR) + + (MINOR(xldev) >> XLIDE_PARTN_SHIFT); break; - + + case XLIDE_MAJOR_1: + physdev = XENDEV_IDE + (1*XLIDE_DEVS_PER_MAJOR) + + (MINOR(xldev) >> XLIDE_PARTN_SHIFT); + break; + case XLSCSI_MAJOR: physdev = XENDEV_SCSI + (MINOR(xldev) >> XLSCSI_PARTN_SHIFT); break; @@ -74,8 +80,12 @@ static inline struct gendisk *xldev_to_gendisk(kdev_t xldev) switch ( MAJOR(xldev) ) { - case XLIDE_MAJOR: - gd = xlide_gendisk; + case XLIDE_MAJOR_0: + gd = xlide_gendisk[0]; + break; + + case XLIDE_MAJOR_1: + gd = xlide_gendisk[1]; break; case XLSCSI_MAJOR: @@ -157,7 +167,7 @@ int xenolinux_block_ioctl(struct inode *inode, struct file *filep, case BLKSSZGET: switch ( MAJOR(dev) ) { - case XLIDE_MAJOR: + case XLIDE_MAJOR_0: DPRINTK_IOCTL(" BLKSSZGET: %x 0x%x\n", BLKSSZGET, xlide_hwsect(MINOR(dev))); return xlide_hwsect(MINOR(dev)); |