aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pnp
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pnp')
-rw-r--r--drivers/pnp/card.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/pnp/card.c b/drivers/pnp/card.c
index 0ecbe4edbec1..aaa568a3806e 100644
--- a/drivers/pnp/card.c
+++ b/drivers/pnp/card.c
@@ -363,7 +363,7 @@ static int card_resume(struct pnp_dev *dev)
363 363
364int pnp_register_card_driver(struct pnp_card_driver * drv) 364int pnp_register_card_driver(struct pnp_card_driver * drv)
365{ 365{
366 int count = 0; 366 int count;
367 struct list_head *pos, *temp; 367 struct list_head *pos, *temp;
368 368
369 drv->link.name = drv->name; 369 drv->link.name = drv->name;
@@ -374,10 +374,15 @@ int pnp_register_card_driver(struct pnp_card_driver * drv)
374 drv->link.suspend = drv->suspend ? card_suspend : NULL; 374 drv->link.suspend = drv->suspend ? card_suspend : NULL;
375 drv->link.resume = drv->resume ? card_resume : NULL; 375 drv->link.resume = drv->resume ? card_resume : NULL;
376 376
377 count = pnp_register_driver(&drv->link);
378 if (count < 0)
379 return count;
380
377 spin_lock(&pnp_lock); 381 spin_lock(&pnp_lock);
378 list_add_tail(&drv->global_list, &pnp_card_drivers); 382 list_add_tail(&drv->global_list, &pnp_card_drivers);
379 spin_unlock(&pnp_lock); 383 spin_unlock(&pnp_lock);
380 pnp_register_driver(&drv->link); 384
385 count = 0;
381 386
382 list_for_each_safe(pos,temp,&pnp_cards){ 387 list_for_each_safe(pos,temp,&pnp_cards){
383 struct pnp_card *card = list_entry(pos, struct pnp_card, global_list); 388 struct pnp_card *card = list_entry(pos, struct pnp_card, global_list);