[ALSA] check return code in pnp_register_card_driver()
authorAdam Belay <ambx1@neo.rr.com>
Fri, 20 Jan 2006 08:29:27 +0000 (09:29 +0100)
committerJaroslav Kysela <perex@suse.cz>
Sun, 22 Jan 2006 16:10:45 +0000 (17:10 +0100)
Signed-off-by: Adam Belay <ambx1@neo.rr.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
drivers/pnp/card.c

index 0ecbe4edbec13dd1e83b5101e312e4c127860765..aaa568a3806ea9e35873803f646989c9a3487a53 100644 (file)
@@ -363,7 +363,7 @@ static int card_resume(struct pnp_dev *dev)
 
 int pnp_register_card_driver(struct pnp_card_driver * drv)
 {
-       int count = 0;
+       int count;
        struct list_head *pos, *temp;
 
        drv->link.name = drv->name;
@@ -374,10 +374,15 @@ int pnp_register_card_driver(struct pnp_card_driver * drv)
        drv->link.suspend = drv->suspend ? card_suspend : NULL;
        drv->link.resume = drv->resume ? card_resume : NULL;
 
+       count = pnp_register_driver(&drv->link);
+       if (count < 0)
+               return count;
+
        spin_lock(&pnp_lock);
        list_add_tail(&drv->global_list, &pnp_card_drivers);
        spin_unlock(&pnp_lock);
-       pnp_register_driver(&drv->link);
+
+       count = 0;
 
        list_for_each_safe(pos,temp,&pnp_cards){
                struct pnp_card *card = list_entry(pos, struct pnp_card, global_list);