Bug in pcmcia_resource.c

Michael Buesch mb at bu3sch.de
Sun Nov 4 06:32:27 EST 2007

There's a bug in pcmcia_disable_device

965 void pcmcia_disable_device(struct pcmcia_device *p_dev) {
966         pcmcia_release_configuration(p_dev);
967         pcmcia_release_io(p_dev, &p_dev->io);
968         pcmcia_release_irq(p_dev, &p_dev->irq);
969         if (&p_dev->win)
This will always be true because of the address operator.

970                 pcmcia_release_window(p_dev->win);
971 }
972 EXPORT_SYMBOL(pcmcia_disable_device);

I'm not sure what the correct fix for that would be.
Can simply removing the & cause any unwanted sideeffects in drivers?
For example drivers assuming that we always release the window here.
It'd probably best then to remove the whole conditional and release
unconditionally, as it currently is already always true.

Greetings Michael.

More information about the linux-pcmcia mailing list