Home Home > GIT Browse > stable
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2019-07-21 10:23:21 +0200
committerJiri Slaby <jslaby@suse.cz>2019-07-21 10:23:29 +0200
commit712de7f319eddb8660fb759bfbda617559ad964a (patch)
tree2fb8a8d77b4238071a300ee2534f58ae33b8cc6c
parent849a27d845f308feafb32aafb8416bea22ad5677 (diff)
s390/qdio: don't touch the dsci in tiqdio_add_input_queues()
-rw-r--r--patches.kernel.org/5.2.2-017-s390-qdio-don-t-touch-the-dsci-in-tiqdio_add_in.patch42
-rw-r--r--series.conf1
2 files changed, 43 insertions, 0 deletions
diff --git a/patches.kernel.org/5.2.2-017-s390-qdio-don-t-touch-the-dsci-in-tiqdio_add_in.patch b/patches.kernel.org/5.2.2-017-s390-qdio-don-t-touch-the-dsci-in-tiqdio_add_in.patch
new file mode 100644
index 0000000000..f21e136873
--- /dev/null
+++ b/patches.kernel.org/5.2.2-017-s390-qdio-don-t-touch-the-dsci-in-tiqdio_add_in.patch
@@ -0,0 +1,42 @@
+From: Julian Wiedmann <jwi@linux.ibm.com>
+Date: Tue, 18 Jun 2019 13:12:20 +0200
+Subject: [PATCH] s390/qdio: don't touch the dsci in tiqdio_add_input_queues()
+References: bnc#1012628
+Patch-mainline: 5.2.2
+Git-commit: ac6639cd3db607d386616487902b4cc1850a7be5
+
+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>
+Signed-off-by: Jiri Slaby <jslaby@suse.cz>
+---
+ drivers/s390/cio/qdio_thinint.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c
+index 07264bd9ad0b..d9763bbecbf9 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)
+--
+2.22.0
+
diff --git a/series.conf b/series.conf
index d761caf063..1532c0bffa 100644
--- a/series.conf
+++ b/series.conf
@@ -104,6 +104,7 @@
patches.kernel.org/5.2.2-014-s390-ipl-Fix-detection-of-has_secure-attribute.patch
patches.kernel.org/5.2.2-015-s390-fix-stfle-zero-padding.patch
patches.kernel.org/5.2.2-016-s390-qdio-re-initialize-tiqdio-list-entries.patch
+ patches.kernel.org/5.2.2-017-s390-qdio-don-t-touch-the-dsci-in-tiqdio_add_in.patch
########################################################
# Build fixes that apply to the vanilla kernel too.