• Sebastian Andrzej Siewior's avatar
    ide: Handle irq disabling consistently · 56f0ddad
    Sebastian Andrzej Siewior authored
    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: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    56f0ddad
ide-io.c 23.7 KB