diff options
-rw-r--r-- | drivers/block/paride/pcd.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/block/paride/pcd.c b/drivers/block/paride/pcd.c index 93ed63626232..a7fab3830d7b 100644 --- a/drivers/block/paride/pcd.c +++ b/drivers/block/paride/pcd.c @@ -941,9 +941,13 @@ static int pcd_init_unit(struct pcd_unit *cd, bool autoprobe, int port, cd->present = 1; pcd_probe_capabilities(cd); register_cdrom(cd->disk, &cd->info); - add_disk(cd->disk); + ret = add_disk(cd->disk); + if (ret) + goto out_unreg_cdrom; return 0; +out_unreg_cdrom: + unregister_cdrom(&cd->info); out_pi_release: pi_release(cd->pi); out_free_disk: |