From: Sasha Levin Date: Wed, 7 Apr 2021 23:53:07 +0000 (-0400) Subject: Fixes for 4.19 X-Git-Tag: v4.4.266~26 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dac7b2105f96342e4a6e9a2e4b915212ed4a6290;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 4.19 Signed-off-by: Sasha Levin --- diff --git a/queue-4.19/arm-dts-am33xx-add-aliases-for-mmc-interfaces.patch b/queue-4.19/arm-dts-am33xx-add-aliases-for-mmc-interfaces.patch new file mode 100644 index 00000000000..eb640a05178 --- /dev/null +++ b/queue-4.19/arm-dts-am33xx-add-aliases-for-mmc-interfaces.patch @@ -0,0 +1,41 @@ +From 42b719852bde2b06ba62e8a901c39918d7ee88d0 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 28 Jan 2021 15:56:44 +0000 +Subject: ARM: dts: am33xx: add aliases for mmc interfaces + +From: Mans Rullgard + +[ Upstream commit 9bbce32a20d6a72c767a7f85fd6127babd1410ac ] + +Without DT aliases, the numbering of mmc interfaces is unpredictable. +Adding them makes it possible to refer to devices consistently. The +popular suggestion to use UUIDs obviously doesn't work with a blank +device fresh from the factory. + +See commit fa2d0aa96941 ("mmc: core: Allow setting slot index via +device tree alias") for more discussion. + +Signed-off-by: Mans Rullgard +Signed-off-by: Tony Lindgren +Signed-off-by: Sasha Levin +--- + arch/arm/boot/dts/am33xx.dtsi | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi +index d3dd6a16e70a..e321acaf35d6 100644 +--- a/arch/arm/boot/dts/am33xx.dtsi ++++ b/arch/arm/boot/dts/am33xx.dtsi +@@ -39,6 +39,9 @@ aliases { + ethernet1 = &cpsw_emac1; + spi0 = &spi0; + spi1 = &spi1; ++ mmc0 = &mmc1; ++ mmc1 = &mmc2; ++ mmc2 = &mmc3; + }; + + cpus { +-- +2.30.2 + diff --git a/queue-4.19/bus-ti-sysc-fix-warning-on-unbind-if-reset-is-not-de.patch b/queue-4.19/bus-ti-sysc-fix-warning-on-unbind-if-reset-is-not-de.patch new file mode 100644 index 00000000000..6d8351cdb07 --- /dev/null +++ b/queue-4.19/bus-ti-sysc-fix-warning-on-unbind-if-reset-is-not-de.patch @@ -0,0 +1,47 @@ +From 3abc0c3fb8b28d9b5222bba4d951bfc1301322ef Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 18 Feb 2021 13:06:57 +0200 +Subject: bus: ti-sysc: Fix warning on unbind if reset is not deasserted + +From: Tony Lindgren + +[ Upstream commit a7b5d7c4969aba8d1f04c29048906abaa71fb6a9 ] + +We currently get thefollowing on driver unbind if a reset is configured +and asserted: + +WARNING: CPU: 0 PID: 993 at drivers/reset/core.c:432 reset_control_assert +... +(reset_control_assert) from [] (sysc_remove+0x190/0x1e4) +(sysc_remove) from [] (platform_remove+0x24/0x3c) +(platform_remove) from [] (__device_release_driver+0x154/0x214) +(__device_release_driver) from [] (device_driver_detach+0x3c/0x8c) +(device_driver_detach) from [] (unbind_store+0x60/0xd4) +(unbind_store) from [] (kernfs_fop_write_iter+0x10c/0x1cc) + +Let's fix it by checking the reset status. + +Signed-off-by: Tony Lindgren +Signed-off-by: Sasha Levin +--- + drivers/bus/ti-sysc.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c +index 54c8c8644df2..b6a278183d82 100644 +--- a/drivers/bus/ti-sysc.c ++++ b/drivers/bus/ti-sysc.c +@@ -1814,7 +1814,9 @@ static int sysc_remove(struct platform_device *pdev) + + pm_runtime_put_sync(&pdev->dev); + pm_runtime_disable(&pdev->dev); +- reset_control_assert(ddata->rsts); ++ ++ if (!reset_control_status(ddata->rsts)) ++ reset_control_assert(ddata->rsts); + + unprepare: + sysc_unprepare(ddata); +-- +2.30.2 + diff --git a/queue-4.19/cifs-revalidate-mapping-when-we-open-files-for-smb1-.patch b/queue-4.19/cifs-revalidate-mapping-when-we-open-files-for-smb1-.patch new file mode 100644 index 00000000000..34730825b48 --- /dev/null +++ b/queue-4.19/cifs-revalidate-mapping-when-we-open-files-for-smb1-.patch @@ -0,0 +1,42 @@ +From e2e41fcf5d180f84d6b3c9afedb8d464a5a881fc Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 25 Mar 2021 16:26:35 +1000 +Subject: cifs: revalidate mapping when we open files for SMB1 POSIX + +From: Ronnie Sahlberg + +[ Upstream commit cee8f4f6fcabfdf229542926128e9874d19016d5 ] + +RHBZ: 1933527 + +Under SMB1 + POSIX, if an inode is reused on a server after we have read and +cached a part of a file, when we then open the new file with the +re-cycled inode there is a chance that we may serve the old data out of cache +to the application. +This only happens for SMB1 (deprecated) and when posix are used. +The simplest solution to avoid this race is to force a revalidate +on smb1-posix open. + +Signed-off-by: Ronnie Sahlberg +Reviewed-by: Paulo Alcantara (SUSE) +Signed-off-by: Steve French +Signed-off-by: Sasha Levin +--- + fs/cifs/file.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/fs/cifs/file.c b/fs/cifs/file.c +index 5cb15649adb0..7b482489bd22 100644 +--- a/fs/cifs/file.c ++++ b/fs/cifs/file.c +@@ -163,6 +163,7 @@ int cifs_posix_open(char *full_path, struct inode **pinode, + goto posix_open_ret; + } + } else { ++ cifs_revalidate_mapping(*pinode); + cifs_fattr_to_inode(*pinode, &fattr); + } + +-- +2.30.2 + diff --git a/queue-4.19/cifs-silently-ignore-unknown-oplock-break-handle.patch b/queue-4.19/cifs-silently-ignore-unknown-oplock-break-handle.patch new file mode 100644 index 00000000000..723ecc97607 --- /dev/null +++ b/queue-4.19/cifs-silently-ignore-unknown-oplock-break-handle.patch @@ -0,0 +1,53 @@ +From 17c09c315387237790213457b242b70abb45f099 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 19 Mar 2021 14:57:11 +0100 +Subject: cifs: Silently ignore unknown oplock break handle + +From: Vincent Whitchurch + +[ Upstream commit 219481a8f90ec3a5eed9638fb35609e4b1aeece7 ] + +Make SMB2 not print out an error when an oplock break is received for an +unknown handle, similar to SMB1. The debug message which is printed for +these unknown handles may also be misleading, so fix that too. + +The SMB2 lease break path is not affected by this patch. + +Without this, a program which writes to a file from one thread, and +opens, reads, and writes the same file from another thread triggers the +below errors several times a minute when run against a Samba server +configured with "smb2 leases = no". + + CIFS: VFS: \\192.168.0.1 No task to wake, unknown frame received! NumMids 2 + 00000000: 424d53fe 00000040 00000000 00000012 .SMB@........... + 00000010: 00000001 00000000 ffffffff ffffffff ................ + 00000020: 00000000 00000000 00000000 00000000 ................ + 00000030: 00000000 00000000 00000000 00000000 ................ + +Signed-off-by: Vincent Whitchurch +Reviewed-by: Tom Talpey +Reviewed-by: Paulo Alcantara (SUSE) +Signed-off-by: Steve French +Signed-off-by: Sasha Levin +--- + fs/cifs/smb2misc.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/fs/cifs/smb2misc.c b/fs/cifs/smb2misc.c +index 7d875a47d022..7177720e822e 100644 +--- a/fs/cifs/smb2misc.c ++++ b/fs/cifs/smb2misc.c +@@ -738,8 +738,8 @@ smb2_is_valid_oplock_break(char *buffer, struct TCP_Server_Info *server) + } + } + spin_unlock(&cifs_tcp_ses_lock); +- cifs_dbg(FYI, "Can not process oplock break for non-existent connection\n"); +- return false; ++ cifs_dbg(FYI, "No file id matched, oplock break ignored\n"); ++ return true; + } + + void +-- +2.30.2 + diff --git a/queue-4.19/drm-msm-ratelimit-invalid-fence-message.patch b/queue-4.19/drm-msm-ratelimit-invalid-fence-message.patch new file mode 100644 index 00000000000..7dfb936441e --- /dev/null +++ b/queue-4.19/drm-msm-ratelimit-invalid-fence-message.patch @@ -0,0 +1,37 @@ +From 6c1641d331b852ecd2858f7c1573f595ebd9e550 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 17 Mar 2021 09:40:38 -0700 +Subject: drm/msm: Ratelimit invalid-fence message + +From: Rob Clark + +[ Upstream commit 7ad48d27a2846bfda29214fb454d001c3e02b9e7 ] + +We have seen a couple cases where low memory situations cause something +bad to happen, followed by a flood of these messages obscuring the root +cause. Lets ratelimit the dmesg spam so that next time it happens we +don't lose the kernel traces leading up to this. + +Signed-off-by: Rob Clark +Reviewed-by: Douglas Anderson +Signed-off-by: Sasha Levin +--- + drivers/gpu/drm/msm/msm_fence.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/msm/msm_fence.c b/drivers/gpu/drm/msm/msm_fence.c +index 349c12f670eb..6c11be79574e 100644 +--- a/drivers/gpu/drm/msm/msm_fence.c ++++ b/drivers/gpu/drm/msm/msm_fence.c +@@ -56,7 +56,7 @@ int msm_wait_fence(struct msm_fence_context *fctx, uint32_t fence, + int ret; + + if (fence > fctx->last_fence) { +- DRM_ERROR("%s: waiting on invalid fence: %u (of %u)\n", ++ DRM_ERROR_RATELIMITED("%s: waiting on invalid fence: %u (of %u)\n", + fctx->name, fence, fctx->last_fence); + return -EINVAL; + } +-- +2.30.2 + diff --git a/queue-4.19/ia64-fix-format-strings-for-err_inject.patch b/queue-4.19/ia64-fix-format-strings-for-err_inject.patch new file mode 100644 index 00000000000..23fd2c7208c --- /dev/null +++ b/queue-4.19/ia64-fix-format-strings-for-err_inject.patch @@ -0,0 +1,110 @@ +From 83838eed649c8b2f2ef832bda6e3cc9531e42d9f Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 24 Mar 2021 21:37:41 -0700 +Subject: ia64: fix format strings for err_inject + +From: Sergei Trofimovich + +[ Upstream commit 95d44a470a6814207d52dd6312203b0f4ef12710 ] + +Fix warning with %lx / u64 mismatch: + + arch/ia64/kernel/err_inject.c: In function 'show_resources': + arch/ia64/kernel/err_inject.c:62:22: warning: + format '%lx' expects argument of type 'long unsigned int', + but argument 3 has type 'u64' {aka 'long long unsigned int'} + 62 | return sprintf(buf, "%lx", name[cpu]); \ + | ^~~~~~~ + +Link: https://lkml.kernel.org/r/20210313104312.1548232-1-slyfox@gentoo.org +Signed-off-by: Sergei Trofimovich +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Sasha Levin +--- + arch/ia64/kernel/err_inject.c | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/arch/ia64/kernel/err_inject.c b/arch/ia64/kernel/err_inject.c +index 8b5b8e6bc9d9..dd5bfed52031 100644 +--- a/arch/ia64/kernel/err_inject.c ++++ b/arch/ia64/kernel/err_inject.c +@@ -59,7 +59,7 @@ show_##name(struct device *dev, struct device_attribute *attr, \ + char *buf) \ + { \ + u32 cpu=dev->id; \ +- return sprintf(buf, "%lx\n", name[cpu]); \ ++ return sprintf(buf, "%llx\n", name[cpu]); \ + } + + #define store(name) \ +@@ -86,9 +86,9 @@ store_call_start(struct device *dev, struct device_attribute *attr, + + #ifdef ERR_INJ_DEBUG + printk(KERN_DEBUG "pal_mc_err_inject for cpu%d:\n", cpu); +- printk(KERN_DEBUG "err_type_info=%lx,\n", err_type_info[cpu]); +- printk(KERN_DEBUG "err_struct_info=%lx,\n", err_struct_info[cpu]); +- printk(KERN_DEBUG "err_data_buffer=%lx, %lx, %lx.\n", ++ printk(KERN_DEBUG "err_type_info=%llx,\n", err_type_info[cpu]); ++ printk(KERN_DEBUG "err_struct_info=%llx,\n", err_struct_info[cpu]); ++ printk(KERN_DEBUG "err_data_buffer=%llx, %llx, %llx.\n", + err_data_buffer[cpu].data1, + err_data_buffer[cpu].data2, + err_data_buffer[cpu].data3); +@@ -117,8 +117,8 @@ store_call_start(struct device *dev, struct device_attribute *attr, + + #ifdef ERR_INJ_DEBUG + printk(KERN_DEBUG "Returns: status=%d,\n", (int)status[cpu]); +- printk(KERN_DEBUG "capabilities=%lx,\n", capabilities[cpu]); +- printk(KERN_DEBUG "resources=%lx\n", resources[cpu]); ++ printk(KERN_DEBUG "capabilities=%llx,\n", capabilities[cpu]); ++ printk(KERN_DEBUG "resources=%llx\n", resources[cpu]); + #endif + return size; + } +@@ -131,7 +131,7 @@ show_virtual_to_phys(struct device *dev, struct device_attribute *attr, + char *buf) + { + unsigned int cpu=dev->id; +- return sprintf(buf, "%lx\n", phys_addr[cpu]); ++ return sprintf(buf, "%llx\n", phys_addr[cpu]); + } + + static ssize_t +@@ -145,7 +145,7 @@ store_virtual_to_phys(struct device *dev, struct device_attribute *attr, + ret = get_user_pages_fast(virt_addr, 1, FOLL_WRITE, NULL); + if (ret<=0) { + #ifdef ERR_INJ_DEBUG +- printk("Virtual address %lx is not existing.\n",virt_addr); ++ printk("Virtual address %llx is not existing.\n", virt_addr); + #endif + return -EINVAL; + } +@@ -163,7 +163,7 @@ show_err_data_buffer(struct device *dev, + { + unsigned int cpu=dev->id; + +- return sprintf(buf, "%lx, %lx, %lx\n", ++ return sprintf(buf, "%llx, %llx, %llx\n", + err_data_buffer[cpu].data1, + err_data_buffer[cpu].data2, + err_data_buffer[cpu].data3); +@@ -178,13 +178,13 @@ store_err_data_buffer(struct device *dev, + int ret; + + #ifdef ERR_INJ_DEBUG +- printk("write err_data_buffer=[%lx,%lx,%lx] on cpu%d\n", ++ printk("write err_data_buffer=[%llx,%llx,%llx] on cpu%d\n", + err_data_buffer[cpu].data1, + err_data_buffer[cpu].data2, + err_data_buffer[cpu].data3, + cpu); + #endif +- ret=sscanf(buf, "%lx, %lx, %lx", ++ ret = sscanf(buf, "%llx, %llx, %llx", + &err_data_buffer[cpu].data1, + &err_data_buffer[cpu].data2, + &err_data_buffer[cpu].data3); +-- +2.30.2 + diff --git a/queue-4.19/ia64-mca-allocate-early-mca-with-gfp_atomic.patch b/queue-4.19/ia64-mca-allocate-early-mca-with-gfp_atomic.patch new file mode 100644 index 00000000000..b52a5a53038 --- /dev/null +++ b/queue-4.19/ia64-mca-allocate-early-mca-with-gfp_atomic.patch @@ -0,0 +1,61 @@ +From 87e8f88700b6aad9298811c529d1efb5c61c57e3 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 24 Mar 2021 21:37:38 -0700 +Subject: ia64: mca: allocate early mca with GFP_ATOMIC + +From: Sergei Trofimovich + +[ Upstream commit f2a419cf495f95cac49ea289318b833477e1a0e2 ] + +The sleep warning happens at early boot right at secondary CPU +activation bootup: + + smp: Bringing up secondary CPUs ... + BUG: sleeping function called from invalid context at mm/page_alloc.c:4942 + in_atomic(): 0, irqs_disabled(): 1, non_block: 0, pid: 0, name: swapper/1 + CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.12.0-rc2-00007-g79e228d0b611-dirty #99 + .. + Call Trace: + show_stack+0x90/0xc0 + dump_stack+0x150/0x1c0 + ___might_sleep+0x1c0/0x2a0 + __might_sleep+0xa0/0x160 + __alloc_pages_nodemask+0x1a0/0x600 + alloc_page_interleave+0x30/0x1c0 + alloc_pages_current+0x2c0/0x340 + __get_free_pages+0x30/0xa0 + ia64_mca_cpu_init+0x2d0/0x3a0 + cpu_init+0x8b0/0x1440 + start_secondary+0x60/0x700 + start_ap+0x750/0x780 + Fixed BSP b0 value from CPU 1 + +As I understand interrupts are not enabled yet and system has a lot of +memory. There is little chance to sleep and switch to GFP_ATOMIC should +be a no-op. + +Link: https://lkml.kernel.org/r/20210315085045.204414-1-slyfox@gentoo.org +Signed-off-by: Sergei Trofimovich +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Sasha Levin +--- + arch/ia64/kernel/mca.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c +index 6115464d5f03..d7400b2844f1 100644 +--- a/arch/ia64/kernel/mca.c ++++ b/arch/ia64/kernel/mca.c +@@ -1860,7 +1860,7 @@ ia64_mca_cpu_init(void *cpu_data) + data = mca_bootmem(); + first_time = 0; + } else +- data = (void *)__get_free_pages(GFP_KERNEL, ++ data = (void *)__get_free_pages(GFP_ATOMIC, + get_order(sz)); + if (!data) + panic("Could not allocate MCA memory for cpu %d\n", +-- +2.30.2 + diff --git a/queue-4.19/mac80211-choose-first-enabled-channel-for-monitor.patch b/queue-4.19/mac80211-choose-first-enabled-channel-for-monitor.patch new file mode 100644 index 00000000000..71d22a73314 --- /dev/null +++ b/queue-4.19/mac80211-choose-first-enabled-channel-for-monitor.patch @@ -0,0 +1,53 @@ +From a011050bad64a0266bac782831cd15a0d2ec18bd Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 11 Mar 2021 10:59:07 +0530 +Subject: mac80211: choose first enabled channel for monitor + +From: Karthikeyan Kathirvel + +[ Upstream commit 041c881a0ba8a75f71118bd9766b78f04beed469 ] + +Even if the first channel from sband channel list is invalid +or disabled mac80211 ends up choosing it as the default channel +for monitor interfaces, making them not usable. + +Fix this by assigning the first available valid or enabled +channel instead. + +Signed-off-by: Karthikeyan Kathirvel +Link: https://lore.kernel.org/r/1615440547-7661-1-git-send-email-kathirve@codeaurora.org +[reword commit message, comment, code cleanups] +Signed-off-by: Johannes Berg +Signed-off-by: Sasha Levin +--- + net/mac80211/main.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/net/mac80211/main.c b/net/mac80211/main.c +index 68db2a356443..f44d00f35fe7 100644 +--- a/net/mac80211/main.c ++++ b/net/mac80211/main.c +@@ -931,8 +931,19 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) + continue; + + if (!dflt_chandef.chan) { ++ /* ++ * Assign the first enabled channel to dflt_chandef ++ * from the list of channels ++ */ ++ for (i = 0; i < sband->n_channels; i++) ++ if (!(sband->channels[i].flags & ++ IEEE80211_CHAN_DISABLED)) ++ break; ++ /* if none found then use the first anyway */ ++ if (i == sband->n_channels) ++ i = 0; + cfg80211_chandef_create(&dflt_chandef, +- &sband->channels[0], ++ &sband->channels[i], + NL80211_CHAN_NO_HT); + /* init channel we're on */ + if (!local->use_chanctx && !local->_oper_chandef.chan) { +-- +2.30.2 + diff --git a/queue-4.19/misdn-fix-crash-in-fritzpci.patch b/queue-4.19/misdn-fix-crash-in-fritzpci.patch new file mode 100644 index 00000000000..eda5c04b2b1 --- /dev/null +++ b/queue-4.19/misdn-fix-crash-in-fritzpci.patch @@ -0,0 +1,86 @@ +From 8eb1df8a63a6e7c9486b450dd2f03e3e4ae0825b Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 10 Mar 2021 23:27:35 -0500 +Subject: mISDN: fix crash in fritzpci + +From: Tong Zhang + +[ Upstream commit a9f81244d2e33e6dfcef120fefd30c96b3f7cdb0 ] + +setup_fritz() in avmfritz.c might fail with -EIO and in this case the +isac.type and isac.write_reg is not initialized and remains 0(NULL). +A subsequent call to isac_release() will dereference isac->write_reg and +crash. + +[ 1.737444] BUG: kernel NULL pointer dereference, address: 0000000000000000 +[ 1.737809] #PF: supervisor instruction fetch in kernel mode +[ 1.738106] #PF: error_code(0x0010) - not-present page +[ 1.738378] PGD 0 P4D 0 +[ 1.738515] Oops: 0010 [#1] SMP NOPTI +[ 1.738711] CPU: 0 PID: 180 Comm: systemd-udevd Not tainted 5.12.0-rc2+ #78 +[ 1.739077] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-48-gd9c812dda519-p +rebuilt.qemu.org 04/01/2014 +[ 1.739664] RIP: 0010:0x0 +[ 1.739807] Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6. +[ 1.740200] RSP: 0018:ffffc9000027ba10 EFLAGS: 00010202 +[ 1.740478] RAX: 0000000000000000 RBX: ffff888102f41840 RCX: 0000000000000027 +[ 1.740853] RDX: 00000000000000ff RSI: 0000000000000020 RDI: ffff888102f41800 +[ 1.741226] RBP: ffffc9000027ba20 R08: ffff88817bc18440 R09: ffffc9000027b808 +[ 1.741600] R10: 0000000000000001 R11: 0000000000000001 R12: ffff888102f41840 +[ 1.741976] R13: 00000000fffffffb R14: ffff888102f41800 R15: ffff8881008b0000 +[ 1.742351] FS: 00007fda3a38a8c0(0000) GS:ffff88817bc00000(0000) knlGS:0000000000000000 +[ 1.742774] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 +[ 1.743076] CR2: ffffffffffffffd6 CR3: 00000001021ec000 CR4: 00000000000006f0 +[ 1.743452] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 +[ 1.743828] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 +[ 1.744206] Call Trace: +[ 1.744339] isac_release+0xcc/0xe0 [mISDNipac] +[ 1.744582] fritzpci_probe.cold+0x282/0x739 [avmfritz] +[ 1.744861] local_pci_probe+0x48/0x80 +[ 1.745063] pci_device_probe+0x10f/0x1c0 +[ 1.745278] really_probe+0xfb/0x420 +[ 1.745471] driver_probe_device+0xe9/0x160 +[ 1.745693] device_driver_attach+0x5d/0x70 +[ 1.745917] __driver_attach+0x8f/0x150 +[ 1.746123] ? device_driver_attach+0x70/0x70 +[ 1.746354] bus_for_each_dev+0x7e/0xc0 +[ 1.746560] driver_attach+0x1e/0x20 +[ 1.746751] bus_add_driver+0x152/0x1f0 +[ 1.746957] driver_register+0x74/0xd0 +[ 1.747157] ? 0xffffffffc00d8000 +[ 1.747334] __pci_register_driver+0x54/0x60 +[ 1.747562] AVM_init+0x36/0x1000 [avmfritz] +[ 1.747791] do_one_initcall+0x48/0x1d0 +[ 1.747997] ? __cond_resched+0x19/0x30 +[ 1.748206] ? kmem_cache_alloc_trace+0x390/0x440 +[ 1.748458] ? do_init_module+0x28/0x250 +[ 1.748669] do_init_module+0x62/0x250 +[ 1.748870] load_module+0x23ee/0x26a0 +[ 1.749073] __do_sys_finit_module+0xc2/0x120 +[ 1.749307] ? __do_sys_finit_module+0xc2/0x120 +[ 1.749549] __x64_sys_finit_module+0x1a/0x20 +[ 1.749782] do_syscall_64+0x38/0x90 + +Signed-off-by: Tong Zhang +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + drivers/isdn/hardware/mISDN/mISDNipac.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/isdn/hardware/mISDN/mISDNipac.c b/drivers/isdn/hardware/mISDN/mISDNipac.c +index 4d78f870435e..71e635d6c64a 100644 +--- a/drivers/isdn/hardware/mISDN/mISDNipac.c ++++ b/drivers/isdn/hardware/mISDN/mISDNipac.c +@@ -710,7 +710,7 @@ isac_release(struct isac_hw *isac) + { + if (isac->type & IPAC_TYPE_ISACX) + WriteISAC(isac, ISACX_MASK, 0xff); +- else ++ else if (isac->type != 0) + WriteISAC(isac, ISAC_MASK, 0xff); + if (isac->dch.timer.function != NULL) { + del_timer(&isac->dch.timer); +-- +2.30.2 + diff --git a/queue-4.19/net-pxa168_eth-fix-a-potential-data-race-in-pxa168_e.patch b/queue-4.19/net-pxa168_eth-fix-a-potential-data-race-in-pxa168_e.patch new file mode 100644 index 00000000000..3cc5bf9297e --- /dev/null +++ b/queue-4.19/net-pxa168_eth-fix-a-potential-data-race-in-pxa168_e.patch @@ -0,0 +1,42 @@ +From 6ef76dde913202f9616eee163b00ea99d7eaedc3 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 10 Mar 2021 11:10:46 +0300 +Subject: net: pxa168_eth: Fix a potential data race in pxa168_eth_remove + +From: Pavel Andrianov + +[ Upstream commit 0571a753cb07982cc82f4a5115e0b321da89e1f3 ] + +pxa168_eth_remove() firstly calls unregister_netdev(), +then cancels a timeout work. unregister_netdev() shuts down a device +interface and removes it from the kernel tables. If the timeout occurs +in parallel, the timeout work (pxa168_eth_tx_timeout_task) performs stop +and open of the device. It may lead to an inconsistent state and memory +leaks. + +Found by Linux Driver Verification project (linuxtesting.org). + +Signed-off-by: Pavel Andrianov +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + drivers/net/ethernet/marvell/pxa168_eth.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/net/ethernet/marvell/pxa168_eth.c b/drivers/net/ethernet/marvell/pxa168_eth.c +index ff2fea0f8b75..0d6a4e47e7a5 100644 +--- a/drivers/net/ethernet/marvell/pxa168_eth.c ++++ b/drivers/net/ethernet/marvell/pxa168_eth.c +@@ -1564,8 +1564,8 @@ static int pxa168_eth_remove(struct platform_device *pdev) + + mdiobus_unregister(pep->smi_bus); + mdiobus_free(pep->smi_bus); +- unregister_netdev(dev); + cancel_work_sync(&pep->tx_timeout_task); ++ unregister_netdev(dev); + free_netdev(dev); + return 0; + } +-- +2.30.2 + diff --git a/queue-4.19/platform-x86-intel-hid-support-lenovo-thinkpad-x1-ta.patch b/queue-4.19/platform-x86-intel-hid-support-lenovo-thinkpad-x1-ta.patch new file mode 100644 index 00000000000..ebcc2fca8d4 --- /dev/null +++ b/queue-4.19/platform-x86-intel-hid-support-lenovo-thinkpad-x1-ta.patch @@ -0,0 +1,44 @@ +From afb3230ae2007b3e6335fabf0be1fd200c290250 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 22 Feb 2021 15:15:59 +0100 +Subject: platform/x86: intel-hid: Support Lenovo ThinkPad X1 Tablet Gen 2 + +From: Alban Bedel + +[ Upstream commit 56678a5f44ef5f0ad9a67194bbee2280c6286534 ] + +Like a few other system the Lenovo ThinkPad X1 Tablet Gen 2 miss the +HEBC method, which prevent the power button from working. Add a quirk +to enable the button array on this system family and fix the power +button. + +Signed-off-by: Alban Bedel +Tested-by: Alexander Kobel +Link: https://lore.kernel.org/r/20210222141559.3775-1-albeu@free.fr +Signed-off-by: Hans de Goede +Signed-off-by: Sasha Levin +--- + drivers/platform/x86/intel-hid.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/drivers/platform/x86/intel-hid.c b/drivers/platform/x86/intel-hid.c +index d7d69eadb9bb..fa3cda69cec9 100644 +--- a/drivers/platform/x86/intel-hid.c ++++ b/drivers/platform/x86/intel-hid.c +@@ -94,6 +94,13 @@ static const struct dmi_system_id button_array_table[] = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Spectre x2 Detachable"), + }, + }, ++ { ++ .ident = "Lenovo ThinkPad X1 Tablet Gen 2", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), ++ DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X1 Tablet Gen 2"), ++ }, ++ }, + { } + }; + +-- +2.30.2 + diff --git a/queue-4.19/platform-x86-thinkpad_acpi-allow-the-fnlock-led-to-c.patch b/queue-4.19/platform-x86-thinkpad_acpi-allow-the-fnlock-led-to-c.patch new file mode 100644 index 00000000000..5f70d68c705 --- /dev/null +++ b/queue-4.19/platform-x86-thinkpad_acpi-allow-the-fnlock-led-to-c.patch @@ -0,0 +1,72 @@ +From 3fc90599103e99932e5d3c18fdd67685e7f65cd7 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 15 Mar 2021 20:58:24 +0100 +Subject: platform/x86: thinkpad_acpi: Allow the FnLock LED to change state + +From: Esteve Varela Colominas + +[ Upstream commit 3d677f12ea3a2097a16ded570623567403dea959 ] + +On many recent ThinkPad laptops, there's a new LED next to the ESC key, +that indicates the FnLock status. +When the Fn+ESC combo is pressed, FnLock is toggled, which causes the +Media Key functionality to change, making it so that the media keys +either perform their media key function, or function as an F-key by +default. The Fn key can be used the access the alternate function at any +time. + +With the current linux kernel, the LED doens't change state if you press +the Fn+ESC key combo. However, the media key functionality *does* +change. This is annoying, since the LED will stay on if it was on during +bootup, and it makes it hard to keep track what the current state of the +FnLock is. + +This patch calls an ACPI function, that gets the current media key +state, when the Fn+ESC key combo is pressed. Through testing it was +discovered that this function causes the LED to update correctly to +reflect the current state when this function is called. + +The relevant ACPI calls are the following: +\_SB_.PCI0.LPC0.EC0_.HKEY.GMKS: Get media key state, returns 0x603 if the FnLock mode is enabled, and 0x602 if it's disabled. +\_SB_.PCI0.LPC0.EC0_.HKEY.SMKS: Set media key state, sending a 1 will enable FnLock mode, and a 0 will disable it. + +Relevant discussion: +https://bugzilla.kernel.org/show_bug.cgi?id=207841 +https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1881015 + +Signed-off-by: Esteve Varela Colominas +Link: https://lore.kernel.org/r/20210315195823.23212-1-esteve.varela@gmail.com +Signed-off-by: Hans de Goede +Signed-off-by: Sasha Levin +--- + drivers/platform/x86/thinkpad_acpi.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c +index a6e69f2495d2..559698640fe2 100644 +--- a/drivers/platform/x86/thinkpad_acpi.c ++++ b/drivers/platform/x86/thinkpad_acpi.c +@@ -4102,13 +4102,19 @@ static bool hotkey_notify_6xxx(const u32 hkey, + + case TP_HKEY_EV_KEY_NUMLOCK: + case TP_HKEY_EV_KEY_FN: +- case TP_HKEY_EV_KEY_FN_ESC: + /* key press events, we just ignore them as long as the EC + * is still reporting them in the normal keyboard stream */ + *send_acpi_ev = false; + *ignore_acpi_ev = true; + return true; + ++ case TP_HKEY_EV_KEY_FN_ESC: ++ /* Get the media key status to foce the status LED to update */ ++ acpi_evalf(hkey_handle, NULL, "GMKS", "v"); ++ *send_acpi_ev = false; ++ *ignore_acpi_ev = true; ++ return true; ++ + case TP_HKEY_EV_TABLET_CHANGED: + tpacpi_input_send_tabletsw(); + hotkey_tablet_mode_notify_change(); +-- +2.30.2 + diff --git a/queue-4.19/scsi-target-pscsi-clean-up-after-failure-in-pscsi_ma.patch b/queue-4.19/scsi-target-pscsi-clean-up-after-failure-in-pscsi_ma.patch new file mode 100644 index 00000000000..4443a1fc0c1 --- /dev/null +++ b/queue-4.19/scsi-target-pscsi-clean-up-after-failure-in-pscsi_ma.patch @@ -0,0 +1,44 @@ +From 65a30b8648074f93094c8417defcd6d799b3d586 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 23 Mar 2021 22:24:31 +0100 +Subject: scsi: target: pscsi: Clean up after failure in pscsi_map_sg() + +From: Martin Wilck + +[ Upstream commit 36fa766faa0c822c860e636fe82b1affcd022974 ] + +If pscsi_map_sg() fails, make sure to drop references to already allocated +bios. + +Link: https://lore.kernel.org/r/20210323212431.15306-2-mwilck@suse.com +Reviewed-by: Christoph Hellwig +Reviewed-by: Lee Duncan +Signed-off-by: Martin Wilck +Signed-off-by: Martin K. Petersen +Signed-off-by: Sasha Levin +--- + drivers/target/target_core_pscsi.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c +index 47d76c862014..02c4e3beb264 100644 +--- a/drivers/target/target_core_pscsi.c ++++ b/drivers/target/target_core_pscsi.c +@@ -970,6 +970,14 @@ pscsi_map_sg(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents, + + return 0; + fail: ++ if (bio) ++ bio_put(bio); ++ while (req->bio) { ++ bio = req->bio; ++ req->bio = bio->bi_next; ++ bio_put(bio); ++ } ++ req->biotail = NULL; + return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; + } + +-- +2.30.2 + diff --git a/queue-4.19/series b/queue-4.19/series new file mode 100644 index 00000000000..0a92c184d25 --- /dev/null +++ b/queue-4.19/series @@ -0,0 +1,14 @@ +arm-dts-am33xx-add-aliases-for-mmc-interfaces.patch +bus-ti-sysc-fix-warning-on-unbind-if-reset-is-not-de.patch +platform-x86-intel-hid-support-lenovo-thinkpad-x1-ta.patch +net-pxa168_eth-fix-a-potential-data-race-in-pxa168_e.patch +misdn-fix-crash-in-fritzpci.patch +mac80211-choose-first-enabled-channel-for-monitor.patch +drm-msm-ratelimit-invalid-fence-message.patch +platform-x86-thinkpad_acpi-allow-the-fnlock-led-to-c.patch +x86-build-turn-off-fcf-protection-for-realmode-targe.patch +scsi-target-pscsi-clean-up-after-failure-in-pscsi_ma.patch +ia64-mca-allocate-early-mca-with-gfp_atomic.patch +ia64-fix-format-strings-for-err_inject.patch +cifs-revalidate-mapping-when-we-open-files-for-smb1-.patch +cifs-silently-ignore-unknown-oplock-break-handle.patch diff --git a/queue-4.19/x86-build-turn-off-fcf-protection-for-realmode-targe.patch b/queue-4.19/x86-build-turn-off-fcf-protection-for-realmode-targe.patch new file mode 100644 index 00000000000..18eb278756f --- /dev/null +++ b/queue-4.19/x86-build-turn-off-fcf-protection-for-realmode-targe.patch @@ -0,0 +1,43 @@ +From c737f96c8031b0ffbfc3612b4133e891732585b6 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 23 Mar 2021 13:48:36 +0100 +Subject: x86/build: Turn off -fcf-protection for realmode targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Arnd Bergmann + +[ Upstream commit 9fcb51c14da2953de585c5c6e50697b8a6e91a7b ] + +The new Ubuntu GCC packages turn on -fcf-protection globally, +which causes a build failure in the x86 realmode code: + + cc1: error: ‘-fcf-protection’ is not compatible with this target + +Turn it off explicitly on compilers that understand this option. + +Signed-off-by: Arnd Bergmann +Signed-off-by: Ingo Molnar +Link: https://lore.kernel.org/r/20210323124846.1584944-1-arnd@kernel.org +Signed-off-by: Sasha Levin +--- + arch/x86/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/x86/Makefile b/arch/x86/Makefile +index 75200b421f29..6ebdbad21fb2 100644 +--- a/arch/x86/Makefile ++++ b/arch/x86/Makefile +@@ -34,7 +34,7 @@ M16_CFLAGS := $(call cc-option, -m16, $(CODE16GCC_CFLAGS)) + REALMODE_CFLAGS := $(M16_CFLAGS) -g -Os -DDISABLE_BRANCH_PROFILING \ + -Wall -Wstrict-prototypes -march=i386 -mregparm=3 \ + -fno-strict-aliasing -fomit-frame-pointer -fno-pic \ +- -mno-mmx -mno-sse ++ -mno-mmx -mno-sse $(call cc-option,-fcf-protection=none) + + REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -ffreestanding) + REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -fno-stack-protector) +-- +2.30.2 +