forked from Minki/linux
b43: Remove unnecessary synchronize_irq() before free_irq()
Calling synchronize_irq() right before free_irq() is quite useless. On one hand the IRQ can easily fire again before free_irq() is entered, on the other hand free_irq() itself calls synchronize_irq() internally (in a race condition free way), before any state associated with the IRQ is freed. Patch was generated using the following semantic patch: // <smpl> @@ expression irq; @@ -synchronize_irq(irq); free_irq(irq, ...); // </smpl> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
19c8f421a6
commit
10fbc7cf03
@ -4375,12 +4375,10 @@ redo:
|
|||||||
/* Synchronize and free the interrupt handlers. Unlock to avoid deadlocks. */
|
/* Synchronize and free the interrupt handlers. Unlock to avoid deadlocks. */
|
||||||
orig_dev = dev;
|
orig_dev = dev;
|
||||||
mutex_unlock(&wl->mutex);
|
mutex_unlock(&wl->mutex);
|
||||||
if (b43_bus_host_is_sdio(dev->dev)) {
|
if (b43_bus_host_is_sdio(dev->dev))
|
||||||
b43_sdio_free_irq(dev);
|
b43_sdio_free_irq(dev);
|
||||||
} else {
|
else
|
||||||
synchronize_irq(dev->dev->irq);
|
|
||||||
free_irq(dev->dev->irq, dev);
|
free_irq(dev->dev->irq, dev);
|
||||||
}
|
|
||||||
mutex_lock(&wl->mutex);
|
mutex_lock(&wl->mutex);
|
||||||
dev = wl->current_dev;
|
dev = wl->current_dev;
|
||||||
if (!dev)
|
if (!dev)
|
||||||
|
Loading…
Reference in New Issue
Block a user