diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2018-05-04 16:24:44 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-06-05 22:26:46 +0200 |
commit | 56f0ddadcea9dc264f1c8eed6cc984071b141554 (patch) | |
tree | 2da35ce3b963091950a542f30ce4c54a463aa1d5 /drivers/ide/ide-taskfile.c | |
parent | alim15x3: move irq-restore before pci_dev_put() (diff) | |
download | linux-56f0ddadcea9dc264f1c8eed6cc984071b141554.tar.xz linux-56f0ddadcea9dc264f1c8eed6cc984071b141554.zip |
ide: Handle irq disabling consistently
ide_timer_expiry() disables interrupt at function entry when acquiring
hwif->lock. Before disabling the device interrupt it unlocks hwif->lock,
but interrupts stay disabled. After the call to disable_irq() interrupts
are disabled again, which is a pointless exercise.
After the device irq handler has been invoked with interrupts disabled,
hwif->lock is acquired again with spin_lock_irq() because the device irq
handler might have reenabled interrupts. This is not documented and
confusing for the casual reader.
Remove the redundant local_irq_disable() and add a comment which explains
why hwif->lock has to be reacquired with spin_lock_irq().
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/ide/ide-taskfile.c')
0 files changed, 0 insertions, 0 deletions