Browse Source

Merge master.kernel.org:/home/rmk/linux-2.6-mmc

* master.kernel.org:/home/rmk/linux-2.6-mmc:
  [BLOCK] Fix oops on removal of SD/MMC card
Linus Torvalds 19 năm trước cách đây
mục cha
commit
91ef5d2d6e
1 tập tin đã thay đổi với 2 bổ sung0 xóa
  1. 2 0
      block/genhd.c

+ 2 - 0
block/genhd.c

@@ -182,6 +182,7 @@ static int exact_lock(dev_t dev, void *data)
  */
  */
 void add_disk(struct gendisk *disk)
 void add_disk(struct gendisk *disk)
 {
 {
+	get_device(disk->driverfs_dev);
 	disk->flags |= GENHD_FL_UP;
 	disk->flags |= GENHD_FL_UP;
 	blk_register_region(MKDEV(disk->major, disk->first_minor),
 	blk_register_region(MKDEV(disk->major, disk->first_minor),
 			    disk->minors, NULL, exact_match, exact_lock, disk);
 			    disk->minors, NULL, exact_match, exact_lock, disk);
@@ -427,6 +428,7 @@ static struct attribute * default_attrs[] = {
 static void disk_release(struct kobject * kobj)
 static void disk_release(struct kobject * kobj)
 {
 {
 	struct gendisk *disk = to_disk(kobj);
 	struct gendisk *disk = to_disk(kobj);
+	put_device(disk->driverfs_dev);
 	kfree(disk->random);
 	kfree(disk->random);
 	kfree(disk->part);
 	kfree(disk->part);
 	free_disk_stats(disk);
 	free_disk_stats(disk);