|
@@ -548,7 +548,7 @@ static struct kobject *brd_probe(dev_t dev, int *part, void *data)
|
|
|
struct kobject *kobj;
|
|
|
|
|
|
mutex_lock(&brd_devices_mutex);
|
|
|
- brd = brd_init_one(dev & MINORMASK);
|
|
|
+ brd = brd_init_one(MINOR(dev) >> part_shift);
|
|
|
kobj = brd ? get_disk(brd->brd_disk) : ERR_PTR(-ENOMEM);
|
|
|
mutex_unlock(&brd_devices_mutex);
|
|
|
|
|
@@ -589,10 +589,10 @@ static int __init brd_init(void)
|
|
|
|
|
|
if (rd_nr) {
|
|
|
nr = rd_nr;
|
|
|
- range = rd_nr;
|
|
|
+ range = rd_nr << part_shift;
|
|
|
} else {
|
|
|
nr = CONFIG_BLK_DEV_RAM_COUNT;
|
|
|
- range = 1UL << (MINORBITS - part_shift);
|
|
|
+ range = 1UL << MINORBITS;
|
|
|
}
|
|
|
|
|
|
if (register_blkdev(RAMDISK_MAJOR, "ramdisk"))
|
|
@@ -631,7 +631,7 @@ static void __exit brd_exit(void)
|
|
|
unsigned long range;
|
|
|
struct brd_device *brd, *next;
|
|
|
|
|
|
- range = rd_nr ? rd_nr : 1UL << (MINORBITS - part_shift);
|
|
|
+ range = rd_nr ? rd_nr << part_shift : 1UL << MINORBITS;
|
|
|
|
|
|
list_for_each_entry_safe(brd, next, &brd_devices, brd_list)
|
|
|
brd_del_one(brd);
|