mmc_block: handle error from mmc_register_driver()

Check error from mmc_register_driver() and properly unwind
block device registration.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>

authored by Akinobu Mita and committed by Pierre Ossman 9d4e98e9 da45b66e

+7 -2
+7 -2
drivers/mmc/card/block.c
··· 613 613 614 614 static int __init mmc_blk_init(void) 615 615 { 616 - int res = -ENOMEM; 616 + int res; 617 617 618 618 res = register_blkdev(MMC_BLOCK_MAJOR, "mmc"); 619 619 if (res) 620 620 goto out; 621 621 622 - return mmc_register_driver(&mmc_driver); 622 + res = mmc_register_driver(&mmc_driver); 623 + if (res) 624 + goto out2; 623 625 626 + return 0; 627 + out2: 628 + unregister_blkdev(MMC_BLOCK_MAJOR, "mmc"); 624 629 out: 625 630 return res; 626 631 }