From: Sasha Levin Date: Thu, 11 Jun 2020 17:42:09 +0000 (-0400) Subject: Fixes for 4.14 X-Git-Tag: v5.4.47~124 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2c7a040d31296dc4fce22b674983879a220df9f6;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 4.14 Signed-off-by: Sasha Levin --- 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 index 00000000000..d075f8caaa5 --- /dev/null +++ b/queue-4.14/arm-8977-1-ptrace-fix-mask-for-thumb-breakpoint-hook.patch @@ -0,0 +1,53 @@ +From f1b1ee74a2b202e3bf18cb6008ef17c0931f0d30 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 18 May 2020 19:41:11 +0100 +Subject: ARM: 8977/1: ptrace: Fix mask for thumb breakpoint hook + +From: Fredrik Strupe + +[ 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 +Signed-off-by: Fredrik Strupe +Signed-off-by: Russell King +Signed-off-by: Sasha Levin +--- + 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 index 00000000000..800afeae983 --- /dev/null +++ b/queue-4.14/drivers-net-ibmvnic-update-vnic-protocol-version-rep.patch @@ -0,0 +1,43 @@ +From ab8d1dea7a24c69d11b261f88b174dee5c529701 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 28 May 2020 11:19:17 -0500 +Subject: drivers/net/ibmvnic: Update VNIC protocol version reporting + +From: Thomas Falcon + +[ 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 +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + 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 index 00000000000..4f60f4251df --- /dev/null +++ b/queue-4.14/input-synaptics-add-a-second-working-pnp_id-for-leno.patch @@ -0,0 +1,37 @@ +From c3caa4d5d27673a1d64ab865176cc36a41252345 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 26 May 2020 23:03:13 -0700 +Subject: Input: synaptics - add a second working PNP_ID for Lenovo T470s + +From: Dennis Kadioglu + +[ 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 +Link: https://lore.kernel.org/r/ff770543cd53ae818363c0fe86477965@mail.eclipso.de +Signed-off-by: Dmitry Torokhov +Signed-off-by: Sasha Levin +--- + 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 index 00000000000..1a4360b82f9 --- /dev/null +++ b/queue-4.14/sched-fair-don-t-numa-balance-for-kthreads.patch @@ -0,0 +1,55 @@ +From 4e6c5e4fd728c1e9a2bde901dcfbfb313de17bca Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 26 May 2020 09:38:31 -0600 +Subject: sched/fair: Don't NUMA balance for kthreads + +From: Jens Axboe + +[ 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 +Signed-off-by: Jens Axboe +Signed-off-by: Ingo Molnar +Acked-by: Peter Zijlstra +Link: https://lore.kernel.org/r/865de121-8190-5d30-ece5-3b097dc74431@kernel.dk +Signed-off-by: Sasha Levin +--- + 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 + diff --git a/queue-4.14/series b/queue-4.14/series index 2c3337c7196..80180bc9756 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -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