diff options
Diffstat (limited to 'arch/powerpc/sysdev/axonram.c')
-rw-r--r-- | arch/powerpc/sysdev/axonram.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/powerpc/sysdev/axonram.c b/arch/powerpc/sysdev/axonram.c index ada29eaed6e2..f523ac883150 100644 --- a/arch/powerpc/sysdev/axonram.c +++ b/arch/powerpc/sysdev/axonram.c | |||
@@ -274,7 +274,9 @@ failed: | |||
274 | if (bank->disk->major > 0) | 274 | if (bank->disk->major > 0) |
275 | unregister_blkdev(bank->disk->major, | 275 | unregister_blkdev(bank->disk->major, |
276 | bank->disk->disk_name); | 276 | bank->disk->disk_name); |
277 | del_gendisk(bank->disk); | 277 | if (bank->disk->flags & GENHD_FL_UP) |
278 | del_gendisk(bank->disk); | ||
279 | put_disk(bank->disk); | ||
278 | } | 280 | } |
279 | device->dev.platform_data = NULL; | 281 | device->dev.platform_data = NULL; |
280 | if (bank->io_addr != 0) | 282 | if (bank->io_addr != 0) |
@@ -299,6 +301,7 @@ axon_ram_remove(struct platform_device *device) | |||
299 | device_remove_file(&device->dev, &dev_attr_ecc); | 301 | device_remove_file(&device->dev, &dev_attr_ecc); |
300 | free_irq(bank->irq_id, device); | 302 | free_irq(bank->irq_id, device); |
301 | del_gendisk(bank->disk); | 303 | del_gendisk(bank->disk); |
304 | put_disk(bank->disk); | ||
302 | iounmap((void __iomem *) bank->io_addr); | 305 | iounmap((void __iomem *) bank->io_addr); |
303 | kfree(bank); | 306 | kfree(bank); |
304 | 307 | ||