]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Nov 2019 05:35:57 +0000 (13:35 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Nov 2019 05:35:57 +0000 (13:35 +0800)
added patches:
revert-input-synaptics-rmi4-avoid-processing-unknown-irqs.patch

queue-4.14/revert-input-synaptics-rmi4-avoid-processing-unknown-irqs.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/revert-input-synaptics-rmi4-avoid-processing-unknown-irqs.patch b/queue-4.14/revert-input-synaptics-rmi4-avoid-processing-unknown-irqs.patch
new file mode 100644 (file)
index 0000000..5a9ceea
--- /dev/null
@@ -0,0 +1,58 @@
+From evgreen@chromium.org  Fri Nov 15 13:32:52 2019
+From: Evan Green <evgreen@chromium.org>
+Date: Thu, 14 Nov 2019 11:22:59 -0800
+Subject: Revert "Input: synaptics-rmi4 - avoid processing unknown IRQs"
+To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Cc: Andrew Duggan <aduggan@synaptics.com>, Dmitry Torokhov <dmitry.torokhov@gmail.com>, stable@vger.kernel.org, Evan Green <evgreen@chromium.org>, Pan Bian <bianpan2016@163.com>, Sasha Levin <sashal@kernel.org>, linux-kernel@vger.kernel.org, linux-input@vger.kernel.org
+Message-ID: <5dcda9b8.1c69fb81.74ed1.4e10@mx.google.com>
+
+From: Evan Green <evgreen@chromium.org>
+
+This reverts commit 7b9f7a928255a232012be55cb95db30e963b83a7.
+
+That change should have had a fixes tag for
+commit 24d28e4f1271 ("Input: synaptics-rmi4 - convert irq distribution to
+irq_domain"). The conversion to irq_domain introduced the issue being
+fixed by this commit.
+
+In older kernels the bitmap IRQ accounting is done differently, and
+it doesn't suffer from the same issue of calling handle_nested_irq(0).
+Keeping this commit on kernels 4.14 and older causes problems with
+touchpads due to the different semantics of the IRQ bitmasks.
+
+Signed-off-by: Evan Green <evgreen@chromium.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/rmi4/rmi_driver.c |    6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+--- a/drivers/input/rmi4/rmi_driver.c
++++ b/drivers/input/rmi4/rmi_driver.c
+@@ -165,7 +165,7 @@ static int rmi_process_interrupt_request
+       }
+       mutex_lock(&data->irq_mutex);
+-      bitmap_and(data->irq_status, data->irq_status, data->fn_irq_bits,
++      bitmap_and(data->irq_status, data->irq_status, data->current_irq_mask,
+              data->irq_count);
+       /*
+        * At this point, irq_status has all bits that are set in the
+@@ -412,8 +412,6 @@ static int rmi_driver_set_irq_bits(struc
+       bitmap_copy(data->current_irq_mask, data->new_irq_mask,
+                   data->num_of_irq_regs);
+-      bitmap_or(data->fn_irq_bits, data->fn_irq_bits, mask, data->irq_count);
+-
+ error_unlock:
+       mutex_unlock(&data->irq_mutex);
+       return error;
+@@ -427,8 +425,6 @@ static int rmi_driver_clear_irq_bits(str
+       struct device *dev = &rmi_dev->dev;
+       mutex_lock(&data->irq_mutex);
+-      bitmap_andnot(data->fn_irq_bits,
+-                    data->fn_irq_bits, mask, data->irq_count);
+       bitmap_andnot(data->new_irq_mask,
+                 data->current_irq_mask, mask, data->irq_count);
index 0e9d4b8ea2fda0ab98a092432e5732bb8b7ca59f..8dc6dd70253e8235385b135c2694c062d469706b 100644 (file)
@@ -2,3 +2,4 @@ kvm-mmu-don-t-read-pdptes-when-paging-is-not-enabled.patch
 kvm-x86-introduce-is_pae_paging.patch
 mips-bcm63xx-fix-switch-core-reset-on-bcm6368.patch
 scsi-core-handle-drivers-which-set-sg_tablesize-to-zero.patch
+revert-input-synaptics-rmi4-avoid-processing-unknown-irqs.patch