Skip to content

Commit

Permalink
mtip32xx: fix error handling in mtip_init()
Browse files Browse the repository at this point in the history
Ensure that block device is properly unregistered, if
pci_register_driver() fails.

Signed-off-by: Ryosuke Saito <raitosyo@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
  • Loading branch information
Ryosuke Saito authored and Jens Axboe committed Apr 5, 2012
1 parent e9986f3 commit 6d27f09
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions drivers/block/mtip32xx/mtip32xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -3605,18 +3605,25 @@ MODULE_DEVICE_TABLE(pci, mtip_pci_tbl);
*/
static int __init mtip_init(void)
{
int error;

printk(KERN_INFO MTIP_DRV_NAME " Version " MTIP_DRV_VERSION "\n");

/* Allocate a major block device number to use with this driver. */
mtip_major = register_blkdev(0, MTIP_DRV_NAME);
if (mtip_major < 0) {
error = register_blkdev(0, MTIP_DRV_NAME);
if (error <= 0) {
printk(KERN_ERR "Unable to register block device (%d)\n",
mtip_major);
error);
return -EBUSY;
}
mtip_major = error;

/* Register our PCI operations. */
return pci_register_driver(&mtip_pci_driver);
error = pci_register_driver(&mtip_pci_driver);
if (error)
unregister_blkdev(mtip_major, MTIP_DRV_NAME);

return error;
}

/*
Expand Down

0 comments on commit 6d27f09

Please sign in to comment.