summaryrefslogtreecommitdiff
path: root/drivers/scsi/mpt3sas
diff options
context:
space:
mode:
authorJulian Wiedmann <jwi@linux.ibm.com>2019-12-18 17:34:43 +0100
committerDavid S. Miller <davem@davemloft.net>2019-12-18 12:34:56 -0800
commit7359393f3c19c9351e81345ef29f4f47229a6416 (patch)
tree329171a2f9e4ad79cde9fdd19093969f31a25b2f /drivers/scsi/mpt3sas
parent871602b1079234b2a9279062eaeadb3aad7bc863 (diff)
s390/qeth: wake up all waiters from qeth_irq()
card->wait_q is shared by different users, for different wake-up conditions. qeth_irq() can potentially trigger multiple of these conditions: 1) A change to channel->irq_pending, which qeth_send_control_data() is waiting for. 2) A change to card->state, which qeth_clear_channel() and qeth_halt_channel() are waiting for. As qeth_irq() does only a single wake_up(), we might miss to wake up a second eligible waiter. Luckily all waiters are guarded with a timeout, so this situation should recover on its own eventually. To make things work robustly, add an additional wake_up() for changes to channel->state. And extract a helper that updates channel->irq_pending along with the needed wake_up(). Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/scsi/mpt3sas')
0 files changed, 0 insertions, 0 deletions