aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAkinobu Mita <akinobu.mita@gmail.com>2008-09-13 06:02:07 -0400
committerPierre Ossman <drzeus@drzeus.cx>2008-09-20 07:03:26 -0400
commit9d4e98e9609bc19d4a8ac4a5c3218358d1820114 (patch)
tree5b794afb9abc6af1051ce3c9f031034a329b05f0 /drivers
parentda45b66ec89bbf3a1c172688c35d4d3a6e8e757f (diff)
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mmc/card/block.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index 86dbb366415a..43d9a5b53e8d 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -613,14 +613,19 @@ static struct mmc_driver mmc_driver = {
613 613
614static int __init mmc_blk_init(void) 614static int __init mmc_blk_init(void)
615{ 615{
616 int res = -ENOMEM; 616 int res;
617 617
618 res = register_blkdev(MMC_BLOCK_MAJOR, "mmc"); 618 res = register_blkdev(MMC_BLOCK_MAJOR, "mmc");
619 if (res) 619 if (res)
620 goto out; 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 out: 629 out:
625 return res; 630 return res;
626} 631}