diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-06-09 21:10:16 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-06-09 21:10:16 +0300 |
commit | d6c7528447dec208f9b742ede047753584528c0a (patch) | |
tree | 9538710890063ca035a16cdb71569185841231f1 /drivers/ide/ide-io.c | |
parent | eafdca4d7010a0e019aaaace3dd71b432a69b54c (diff) | |
parent | 47b82e88180c3c6db795a43373beab47cb073f7a (diff) | |
download | linux-d6c7528447dec208f9b742ede047753584528c0a.tar.xz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide
Pull IDE updates from David Miller:
"Primarily IRQ disabling avoidance changes from Sebastian Andrzej
Siewior"
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide:
ide: don't enable/disable interrupts in force threaded-IRQ mode
ide: don't disable interrupts during kmap_atomic()
ide: Handle irq disabling consistently
alim15x3: move irq-restore before pci_dev_put()
Diffstat (limited to 'drivers/ide/ide-io.c')
-rw-r--r-- | drivers/ide/ide-io.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index 6f25da56a169..a444bad7a2aa 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c @@ -659,8 +659,7 @@ void ide_timer_expiry (struct timer_list *t) spin_unlock(&hwif->lock); /* disable_irq_nosync ?? */ disable_irq(hwif->irq); - /* local CPU only, as if we were handling an interrupt */ - local_irq_disable(); + if (hwif->polling) { startstop = handler(drive); } else if (drive_is_ready(drive)) { @@ -679,6 +678,7 @@ void ide_timer_expiry (struct timer_list *t) startstop = ide_error(drive, "irq timeout", hwif->tp_ops->read_status(hwif)); } + /* Disable interrupts again, `handler' might have enabled it */ spin_lock_irq(&hwif->lock); enable_irq(hwif->irq); if (startstop == ide_stopped && hwif->polling == 0) { |