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
This commit is contained in:
commit
91ef5d2d6e
1 changed files with 2 additions and 0 deletions
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue