]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 4.14
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:29 +0000 (13:44 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.14/arm-8977-1-ptrace-fix-mask-for-thumb-breakpoint-hook.patch [new file with mode: 0644]
queue-4.14/drivers-net-ibmvnic-update-vnic-protocol-version-rep.patch [new file with mode: 0644]
queue-4.14/input-synaptics-add-a-second-working-pnp_id-for-leno.patch [new file with mode: 0644]
queue-4.14/sched-fair-don-t-numa-balance-for-kthreads.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/arm-8977-1-ptrace-fix-mask-for-thumb-breakpoint-hook.patch b/queue-4.14/arm-8977-1-ptrace-fix-mask-for-thumb-breakpoint-hook.patch
new file mode 100644 (file)
index 0000000..d075f8c
--- /dev/null
@@ -0,0 +1,53 @@
+From f1b1ee74a2b202e3bf18cb6008ef17c0931f0d30 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 58e3771e4c5b..368b4b404985 100644
+--- a/arch/arm/kernel/ptrace.c
++++ b/arch/arm/kernel/ptrace.c
+@@ -228,8 +228,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.14/drivers-net-ibmvnic-update-vnic-protocol-version-rep.patch b/queue-4.14/drivers-net-ibmvnic-update-vnic-protocol-version-rep.patch
new file mode 100644 (file)
index 0000000..800afea
--- /dev/null
@@ -0,0 +1,43 @@
+From ab8d1dea7a24c69d11b261f88b174dee5c529701 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 956fbb164e6f..85c11dafb4cd 100644
+--- a/drivers/net/ethernet/ibm/ibmvnic.c
++++ b/drivers/net/ethernet/ibm/ibmvnic.c
+@@ -3560,12 +3560,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.14/input-synaptics-add-a-second-working-pnp_id-for-leno.patch b/queue-4.14/input-synaptics-add-a-second-working-pnp_id-for-leno.patch
new file mode 100644 (file)
index 0000000..4f60f42
--- /dev/null
@@ -0,0 +1,37 @@
+From c3caa4d5d27673a1d64ab865176cc36a41252345 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 2bca84f4c2b2..85db184321f7 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.14/sched-fair-don-t-numa-balance-for-kthreads.patch b/queue-4.14/sched-fair-don-t-numa-balance-for-kthreads.patch
new file mode 100644 (file)
index 0000000..1a4360b
--- /dev/null
@@ -0,0 +1,55 @@
+From 4e6c5e4fd728c1e9a2bde901dcfbfb313de17bca 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 0b4e997fea1a..4d8add44fffb 100644
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
+@@ -2643,7 +2643,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 2c3337c7196d8b6a47be465ef8116baab7fe53c7..80180bc97563fdd47b0dca2b59b6742e3408c97c 100644 (file)
@@ -7,3 +7,7 @@ x86-uaccess-inhibit-speculation-past-access_ok-in-user_access_begin.patch
 lib-reduce-user_access_begin-boundaries-in-strncpy_from_user-and-strnlen_user.patch
 serial-imx-fix-handling-of-tc-irq-in-combination-with-dma.patch
 crypto-talitos-fix-ecb-and-cbc-algs-ivsize.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