diff options
Diffstat (limited to 'drivers/pnp')
-rw-r--r-- | drivers/pnp/card.c | 9 |
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 | ||
364 | int pnp_register_card_driver(struct pnp_card_driver * drv) | 364 | int 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); |