diff options
author | Julian Wiedmann | 2019-06-18 13:12:20 +0200 |
---|---|---|
committer | Greg Kroah-Hartman | 2019-07-21 09:03:15 +0200 |
commit | b578b87bcab687984fe23774d0abc70889284895 (patch) | |
tree | ab4000dade7ba6e7892a572dd830a77e26c5d377 | |
parent | s390/qdio: (re-)initialize tiqdio list entries (diff) | |
download | kernel-qcow2-linux-b578b87bcab687984fe23774d0abc70889284895.tar.gz kernel-qcow2-linux-b578b87bcab687984fe23774d0abc70889284895.tar.xz kernel-qcow2-linux-b578b87bcab687984fe23774d0abc70889284895.zip |
s390/qdio: don't touch the dsci in tiqdio_add_input_queues()
commit ac6639cd3db607d386616487902b4cc1850a7be5 upstream.
Current code sets the dsci to 0x00000080. Which doesn't make any sense,
as the indicator area is located in the _left-most_ byte.
Worse: if the dsci is the _shared_ indicator, this potentially clears
the indication of activity for a _different_ device.
tiqdio_thinint_handler() will then have no reason to call that device's
IRQ handler, and the device ends up stalling.
Fixes: d0c9d4a89fff ("[S390] qdio: set correct bit in dsci")
Cc: <stable@vger.kernel.org>
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/s390/cio/qdio_thinint.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c index 6d1c1bc9ae73..6628e0c9e70e 100644 --- a/drivers/s390/cio/qdio_thinint.c +++ b/drivers/s390/cio/qdio_thinint.c @@ -79,7 +79,6 @@ void tiqdio_add_input_queues(struct qdio_irq *irq_ptr) mutex_lock(&tiq_list_lock); list_add_rcu(&irq_ptr->input_qs[0]->entry, &tiq_list); mutex_unlock(&tiq_list_lock); - xchg(irq_ptr->dsci, 1 << 7); } void tiqdio_remove_input_queues(struct qdio_irq *irq_ptr) |