]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 4.19
authorSasha Levin <sashal@kernel.org>
Thu, 11 Jun 2020 17:42:09 +0000 (13:42 -0400)
committerSasha Levin <sashal@kernel.org>
Thu, 11 Jun 2020 17:44:11 +0000 (13:44 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.19/arm-8977-1-ptrace-fix-mask-for-thumb-breakpoint-hook.patch [new file with mode: 0644]
queue-4.19/drivers-net-ibmvnic-update-vnic-protocol-version-rep.patch [new file with mode: 0644]
queue-4.19/input-mms114-fix-handling-of-mms345l.patch [new file with mode: 0644]
queue-4.19/input-synaptics-add-a-second-working-pnp_id-for-leno.patch [new file with mode: 0644]
queue-4.19/sched-fair-don-t-numa-balance-for-kthreads.patch [new file with mode: 0644]
queue-4.19/series

diff --git a/queue-4.19/arm-8977-1-ptrace-fix-mask-for-thumb-breakpoint-hook.patch b/queue-4.19/arm-8977-1-ptrace-fix-mask-for-thumb-breakpoint-hook.patch
new file mode 100644 (file)
index 0000000..a82b405
--- /dev/null
@@ -0,0 +1,53 @@
+From 2ac74ff1e79cbfc954c0c600d9c254f3197c72a3 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 18 May 2020 19:41:11 +0100
+Subject: ARM: 8977/1: ptrace: Fix mask for thumb breakpoint hook
+
+From: Fredrik Strupe <fredrik@strupe.net>
+
+[ Upstream commit 3866f217aaa81bf7165c7f27362eee5d7919c496 ]
+
+call_undef_hook() in traps.c applies the same instr_mask for both 16-bit
+and 32-bit thumb instructions. If instr_mask then is only 16 bits wide
+(0xffff as opposed to 0xffffffff), the first half-word of 32-bit thumb
+instructions will be masked out. This makes the function match 32-bit
+thumb instructions where the second half-word is equal to instr_val,
+regardless of the first half-word.
+
+The result in this case is that all undefined 32-bit thumb instructions
+with the second half-word equal to 0xde01 (udf #1) work as breakpoints
+and will raise a SIGTRAP instead of a SIGILL, instead of just the one
+intended 16-bit instruction. An example of such an instruction is
+0xeaa0de01, which is unallocated according to Arm ARM and should raise a
+SIGILL, but instead raises a SIGTRAP.
+
+This patch fixes the issue by setting all the bits in instr_mask, which
+will still match the intended 16-bit thumb instruction (where the
+upper half is always 0), but not any 32-bit thumb instructions.
+
+Cc: Oleg Nesterov <oleg@redhat.com>
+Signed-off-by: Fredrik Strupe <fredrik@strupe.net>
+Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/kernel/ptrace.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
+index 36718a424358..492ac74a63f4 100644
+--- a/arch/arm/kernel/ptrace.c
++++ b/arch/arm/kernel/ptrace.c
+@@ -229,8 +229,8 @@ static struct undef_hook arm_break_hook = {
+ };
+ static struct undef_hook thumb_break_hook = {
+-      .instr_mask     = 0xffff,
+-      .instr_val      = 0xde01,
++      .instr_mask     = 0xffffffff,
++      .instr_val      = 0x0000de01,
+       .cpsr_mask      = PSR_T_BIT,
+       .cpsr_val       = PSR_T_BIT,
+       .fn             = break_trap,
+-- 
+2.25.1
+
diff --git a/queue-4.19/drivers-net-ibmvnic-update-vnic-protocol-version-rep.patch b/queue-4.19/drivers-net-ibmvnic-update-vnic-protocol-version-rep.patch
new file mode 100644 (file)
index 0000000..8b8db60
--- /dev/null
@@ -0,0 +1,43 @@
+From e81a5bbde739214845a58080fa8459e4511eeafc Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 28 May 2020 11:19:17 -0500
+Subject: drivers/net/ibmvnic: Update VNIC protocol version reporting
+
+From: Thomas Falcon <tlfalcon@linux.ibm.com>
+
+[ Upstream commit 784688993ebac34dffe44a9f2fabbe126ebfd4db ]
+
+VNIC protocol version is reported in big-endian format, but it
+is not byteswapped before logging. Fix that, and remove version
+comparison as only one protocol version exists at this time.
+
+Signed-off-by: Thomas Falcon <tlfalcon@linux.ibm.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/ibm/ibmvnic.c | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c
+index abfd990ba4d8..645298628b6f 100644
+--- a/drivers/net/ethernet/ibm/ibmvnic.c
++++ b/drivers/net/ethernet/ibm/ibmvnic.c
+@@ -4295,12 +4295,10 @@ static void ibmvnic_handle_crq(union ibmvnic_crq *crq,
+                       dev_err(dev, "Error %ld in VERSION_EXCHG_RSP\n", rc);
+                       break;
+               }
+-              dev_info(dev, "Partner protocol version is %d\n",
+-                       crq->version_exchange_rsp.version);
+-              if (be16_to_cpu(crq->version_exchange_rsp.version) <
+-                  ibmvnic_version)
+-                      ibmvnic_version =
++              ibmvnic_version =
+                           be16_to_cpu(crq->version_exchange_rsp.version);
++              dev_info(dev, "Partner protocol version is %d\n",
++                       ibmvnic_version);
+               send_cap_queries(adapter);
+               break;
+       case QUERY_CAPABILITY_RSP:
+-- 
+2.25.1
+
diff --git a/queue-4.19/input-mms114-fix-handling-of-mms345l.patch b/queue-4.19/input-mms114-fix-handling-of-mms345l.patch
new file mode 100644 (file)
index 0000000..14d9820
--- /dev/null
@@ -0,0 +1,70 @@
+From 2c2f7f52bc06a9aba045cb4e31562d8c5cb9733b Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 9 Apr 2020 13:49:03 -0700
+Subject: Input: mms114 - fix handling of mms345l
+
+From: Stephan Gerhold <stephan@gerhold.net>
+
+[ Upstream commit 3f8f770575d911c989043d8f0fb8dec96360c41c ]
+
+MMS345L is another first generation touch screen from Melfas,
+which uses the same registers as MMS152.
+
+However, using I2C_M_NOSTART for it causes errors when reading:
+
+       i2c i2c-0: sendbytes: NAK bailout.
+       mms114 0-0048: __mms114_read_reg: i2c transfer failed (-5)
+
+The driver works fine as soon as I2C_M_NOSTART is removed.
+
+Reviewed-by: Andi Shyti <andi@etezian.org>
+Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
+Link: https://lore.kernel.org/r/20200405170904.61512-1-stephan@gerhold.net
+[dtor: removed separate mms345l handling, made everyone use standard
+transfer mode, propagated the 10bit addressing flag to the read part of the
+transfer as well.]
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/input/touchscreen/mms114.c | 12 +++++-------
+ 1 file changed, 5 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/input/touchscreen/mms114.c b/drivers/input/touchscreen/mms114.c
+index a5ab774da4cc..fca908ba4841 100644
+--- a/drivers/input/touchscreen/mms114.c
++++ b/drivers/input/touchscreen/mms114.c
+@@ -91,15 +91,15 @@ static int __mms114_read_reg(struct mms114_data *data, unsigned int reg,
+       if (reg <= MMS114_MODE_CONTROL && reg + len > MMS114_MODE_CONTROL)
+               BUG();
+-      /* Write register: use repeated start */
++      /* Write register */
+       xfer[0].addr = client->addr;
+-      xfer[0].flags = I2C_M_TEN | I2C_M_NOSTART;
++      xfer[0].flags = client->flags & I2C_M_TEN;
+       xfer[0].len = 1;
+       xfer[0].buf = &buf;
+       /* Read data */
+       xfer[1].addr = client->addr;
+-      xfer[1].flags = I2C_M_RD;
++      xfer[1].flags = (client->flags & I2C_M_TEN) | I2C_M_RD;
+       xfer[1].len = len;
+       xfer[1].buf = val;
+@@ -428,10 +428,8 @@ static int mms114_probe(struct i2c_client *client,
+       const void *match_data;
+       int error;
+-      if (!i2c_check_functionality(client->adapter,
+-                              I2C_FUNC_PROTOCOL_MANGLING)) {
+-              dev_err(&client->dev,
+-                      "Need i2c bus that supports protocol mangling\n");
++      if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
++              dev_err(&client->dev, "Not supported I2C adapter\n");
+               return -ENODEV;
+       }
+-- 
+2.25.1
+
diff --git a/queue-4.19/input-synaptics-add-a-second-working-pnp_id-for-leno.patch b/queue-4.19/input-synaptics-add-a-second-working-pnp_id-for-leno.patch
new file mode 100644 (file)
index 0000000..d311119
--- /dev/null
@@ -0,0 +1,37 @@
+From f07d620197d8aad582d72eb58235de01bdac7ef5 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 26 May 2020 23:03:13 -0700
+Subject: Input: synaptics - add a second working PNP_ID for Lenovo T470s
+
+From: Dennis Kadioglu <denk@eclipso.email>
+
+[ Upstream commit 642aa86eaf8f1e6fe894f20fd7f12f0db52ee03c ]
+
+The Lenovo Thinkpad T470s I own has a different touchpad with "LEN007a"
+instead of the already included PNP ID "LEN006c". However, my touchpad
+seems to work well without any problems using RMI. So this patch adds the
+other PNP ID.
+
+Signed-off-by: Dennis Kadioglu <denk@eclipso.email>
+Link: https://lore.kernel.org/r/ff770543cd53ae818363c0fe86477965@mail.eclipso.de
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/input/mouse/synaptics.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
+index d9042d0566ab..671e018eb363 100644
+--- a/drivers/input/mouse/synaptics.c
++++ b/drivers/input/mouse/synaptics.c
+@@ -173,6 +173,7 @@ static const char * const smbus_pnp_ids[] = {
+       "LEN005b", /* P50 */
+       "LEN005e", /* T560 */
+       "LEN006c", /* T470s */
++      "LEN007a", /* T470s */
+       "LEN0071", /* T480 */
+       "LEN0072", /* X1 Carbon Gen 5 (2017) - Elan/ALPS trackpoint */
+       "LEN0073", /* X1 Carbon G5 (Elantech) */
+-- 
+2.25.1
+
diff --git a/queue-4.19/sched-fair-don-t-numa-balance-for-kthreads.patch b/queue-4.19/sched-fair-don-t-numa-balance-for-kthreads.patch
new file mode 100644 (file)
index 0000000..f674da5
--- /dev/null
@@ -0,0 +1,55 @@
+From d7f18a8972b2c3e3d9b162c0aa4b96bb192a6aaa Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 26 May 2020 09:38:31 -0600
+Subject: sched/fair: Don't NUMA balance for kthreads
+
+From: Jens Axboe <axboe@kernel.dk>
+
+[ Upstream commit 18f855e574d9799a0e7489f8ae6fd8447d0dd74a ]
+
+Stefano reported a crash with using SQPOLL with io_uring:
+
+  BUG: kernel NULL pointer dereference, address: 00000000000003b0
+  CPU: 2 PID: 1307 Comm: io_uring-sq Not tainted 5.7.0-rc7 #11
+  RIP: 0010:task_numa_work+0x4f/0x2c0
+  Call Trace:
+   task_work_run+0x68/0xa0
+   io_sq_thread+0x252/0x3d0
+   kthread+0xf9/0x130
+   ret_from_fork+0x35/0x40
+
+which is task_numa_work() oopsing on current->mm being NULL.
+
+The task work is queued by task_tick_numa(), which checks if current->mm is
+NULL at the time of the call. But this state isn't necessarily persistent,
+if the kthread is using use_mm() to temporarily adopt the mm of a task.
+
+Change the task_tick_numa() check to exclude kernel threads in general,
+as it doesn't make sense to attempt ot balance for kthreads anyway.
+
+Reported-by: Stefano Garzarella <sgarzare@redhat.com>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Acked-by: Peter Zijlstra <peterz@infradead.org>
+Link: https://lore.kernel.org/r/865de121-8190-5d30-ece5-3b097dc74431@kernel.dk
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ kernel/sched/fair.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
+index 86ccaaf0c1bf..92b1e71f13c8 100644
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
+@@ -2697,7 +2697,7 @@ void task_tick_numa(struct rq *rq, struct task_struct *curr)
+       /*
+        * We don't care about NUMA placement if we don't have memory.
+        */
+-      if (!curr->mm || (curr->flags & PF_EXITING) || work->next != work)
++      if ((curr->flags & (PF_EXITING | PF_KTHREAD)) || work->next != work)
+               return;
+       /*
+-- 
+2.25.1
+
index 26cbb67d304d0e0a18be27917081ca9b01aef430..45c9de5bb5093fe365392f056a07e7bf7a824817 100644 (file)
@@ -12,3 +12,8 @@ lib-reduce-user_access_begin-boundaries-in-strncpy_from_user-and-strnlen_user.pa
 btrfs-merge-btrfs_find_device-and-find_device.patch
 btrfs-detect-unbalanced-tree-with-empty-leaf-before-crashing-btree-operations.patch
 crypto-talitos-fix-ecb-and-cbc-algs-ivsize.patch
+input-mms114-fix-handling-of-mms345l.patch
+arm-8977-1-ptrace-fix-mask-for-thumb-breakpoint-hook.patch
+sched-fair-don-t-numa-balance-for-kthreads.patch
+input-synaptics-add-a-second-working-pnp_id-for-leno.patch
+drivers-net-ibmvnic-update-vnic-protocol-version-rep.patch