Re: [bug] pnp_register_card_driver/pnp_unregister_card_driver

From: Adam Belay
Date: Mon Feb 07 2005 - 15:16:58 EST


On Mon, Feb 07, 2005 at 08:33:47PM +0100, matthieu castet wrote:
> Hi,
>
> pnp_register_driver could fail and return <0 result, in this case the
> driver shouldn't be pnp_unregister_driver.
>
> But if you look in pnp_register_card_driver, the result isn't checked.
> And it is always pnp_unregister_driver in pnp_unregister_card_driver.
>
> I know that pnp_register_card_driver shouldn't fail in normal condition,
> but who know...
>
>
> Matthieu

Yeah, you're right. I'm probably going to do something like this.

--- a/drivers/pnp/card.c 2005-01-20 17:38:02.000000000 -0500
+++ b/drivers/pnp/card.c 2005-02-07 14:53:24.000000000 -0500
@@ -355,10 +355,12 @@
drv->link.probe = NULL;
drv->link.remove = &card_remove_first;

+ if ((count = pnp_register_driver(&drv->link) < 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);

list_for_each_safe(pos,temp,&pnp_cards){
struct pnp_card *card = list_entry(pos, struct pnp_card, global_list);

Thanks,
Adam
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/