Re: [bug] pnp_register_card_driver/pnp_unregister_card_driver

From: matthieu castet
Date: Mon Feb 07 2005 - 15:29:24 EST


Hi,

Adam Belay wrote:
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.

If you do something like this there will be some broken driver to correct. See [1] for isa alsa driver that assume that the result is >=0.


Matthieu

[1]
$grep -rI pnp_register_card_driver /usr/src/linux/sound/isa/
/usr/src/linux/sound/isa/cs423x/cs4236.c: cards += pnp_register_card_driver(&cs423x_pnpc_driver);
/usr/src/linux/sound/isa/gus/interwave.c: i = pnp_register_card_driver(&interwave_pnpc_driver);
/usr/src/linux/sound/isa/sb/es968.c: int cards = pnp_register_card_driver(&es968_pnpc_driver);
/usr/src/linux/sound/isa/sb/sb16.c: i = pnp_register_card_driver(&sb16_pnpc_driver);
/usr/src/linux/sound/isa/als100.c: cards += pnp_register_card_driver(&als100_pnpc_driver);
/usr/src/linux/sound/isa/sscape.c: ret = pnp_register_card_driver(&sscape_pnpc_driver);
/usr/src/linux/sound/isa/opti9xx/opti92x-ad1848.c: cards = pnp_register_card_driver(&opti9xx_pnpc_driver);
/usr/src/linux/sound/isa/ad1816a/ad1816a.c: cards += pnp_register_card_driver(&ad1816a_pnpc_driver);
/usr/src/linux/sound/isa/wavefront/wavefront.c: cards += pnp_register_card_driver(&wavefront_pnpc_driver);
/usr/src/linux/sound/isa/dt019x.c: cards += pnp_register_card_driver(&dt019x_pnpc_driver);
/usr/src/linux/sound/isa/es18xx.c: i = pnp_register_card_driver(&es18xx_pnpc_driver);
/usr/src/linux/sound/isa/azt2320.c: cards += pnp_register_card_driver(&azt2320_pnpc_driver);
/usr/src/linux/sound/isa/opl3sa2.c: cards += pnp_register_card_driver(&opl3sa2_pnpc_driver);
/usr/src/linux/sound/isa/cmi8330.c: cards += pnp_register_card_driver(&cmi8330_pnpc_driver);
-
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/