aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev/axonram.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/sysdev/axonram.c')
-rw-r--r--arch/powerpc/sysdev/axonram.c5
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