diff options
Diffstat (limited to 'xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c')
-rw-r--r-- | xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c index 5e96f4197b..599f9f6c0a 100644 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c @@ -13,7 +13,6 @@ /* We support up to 16 devices of up to 16 partitions each. */ #define XLIDE_MAX 256 #define XLIDE_MAJOR_NAME "xhd" -#define IDE_PARTN_BITS 4 static int xlide_blksize_size[XLIDE_MAX]; static int xlide_hardsect_size[XLIDE_MAX]; static int xlide_max_sectors[XLIDE_MAX]; @@ -80,18 +79,17 @@ int xlide_init(xen_disk_info_t *xdi) */ blk_queue_headactive(BLK_DEFAULT_QUEUE(XLIDE_MAJOR), 0); - /* We may register up to 16 devices in a sparse identifier space. */ - units = 16; + units = XLIDE_MAX >> XLIDE_PARTN_SHIFT; /* Construct an appropriate gendisk structure. */ - minors = units * (1<<IDE_PARTN_BITS); + minors = units * (1<<XLIDE_PARTN_SHIFT); gd = kmalloc(sizeof(struct gendisk), GFP_KERNEL); gd->sizes = kmalloc(minors * sizeof(int), GFP_KERNEL); gd->part = kmalloc(minors * sizeof(struct hd_struct), GFP_KERNEL); gd->major = XLIDE_MAJOR; gd->major_name = XLIDE_MAJOR_NAME; - gd->minor_shift = IDE_PARTN_BITS; - gd->max_p = 1<<IDE_PARTN_BITS; + gd->minor_shift = XLIDE_PARTN_SHIFT; + gd->max_p = 1<<XLIDE_PARTN_SHIFT; gd->nr_real = units; gd->real_devices = kmalloc(units * sizeof(xl_disk_t), GFP_KERNEL); gd->next = NULL; @@ -117,8 +115,8 @@ int xlide_init(xen_disk_info_t *xdi) ((xl_disk_t *)gd->real_devices)[disk].capacity = xdi->disks[i].capacity; register_disk(gd, - MKDEV(XLIDE_MAJOR, disk<<IDE_PARTN_BITS), - 1<<IDE_PARTN_BITS, + MKDEV(XLIDE_MAJOR, disk<<XLIDE_PARTN_SHIFT), + 1<<XLIDE_PARTN_SHIFT, &xlide_block_fops, xdi->disks[i].capacity); } |