commit b1be4845dffefe212959ee02b783571eead3e350
Author: Patrick McHardy <[email protected]>
Date: Thu Jun 17 04:43:07 2010 +0200
pcmcia: fix 'driver ... did not release config properly' warning
Up to 2.6.34 pcmcia_release_irq() reset p_dev->_irq to 0 after releasing
the irq. The IRQ is now released in pcmcia_disable_device(), however
p_dev->_irq is not reset, triggering a warning in pcmcia_device_remove().
Signed-off-by: Patrick McHardy <[email protected]>
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index 29f91fa..a4cd9ad 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -857,8 +857,10 @@ void pcmcia_disable_device(struct pcmcia_device *p_dev)
{
pcmcia_release_configuration(p_dev);
pcmcia_release_io(p_dev, &p_dev->io);
- if (p_dev->_irq)
+ if (p_dev->_irq) {
free_irq(p_dev->irq, p_dev->priv);
+ p_dev->_irq = 0;
+ }
if (p_dev->win)
pcmcia_release_window(p_dev, p_dev->win);
}
Applied, thanks.
Best,
Doinik
On Thu, Jun 17, 2010 at 04:47:03AM +0200, Patrick McHardy wrote:
>
> commit b1be4845dffefe212959ee02b783571eead3e350
> Author: Patrick McHardy <[email protected]>
> Date: Thu Jun 17 04:43:07 2010 +0200
>
> pcmcia: fix 'driver ... did not release config properly' warning
>
> Up to 2.6.34 pcmcia_release_irq() reset p_dev->_irq to 0 after releasing
> the irq. The IRQ is now released in pcmcia_disable_device(), however
> p_dev->_irq is not reset, triggering a warning in pcmcia_device_remove().
>
> Signed-off-by: Patrick McHardy <[email protected]>
>
> diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
> index 29f91fa..a4cd9ad 100644
> --- a/drivers/pcmcia/pcmcia_resource.c
> +++ b/drivers/pcmcia/pcmcia_resource.c
> @@ -857,8 +857,10 @@ void pcmcia_disable_device(struct pcmcia_device *p_dev)
> {
> pcmcia_release_configuration(p_dev);
> pcmcia_release_io(p_dev, &p_dev->io);
> - if (p_dev->_irq)
> + if (p_dev->_irq) {
> free_irq(p_dev->irq, p_dev->priv);
> + p_dev->_irq = 0;
> + }
> if (p_dev->win)
> pcmcia_release_window(p_dev, p_dev->win);
> }