5.12.2-rc1 review
Subsystems (2)
Greg Kroah-Hartman
maintainercover 5.12.2-rc1 review
This is the start of the stable review cycle for the 5.12.2 release. There are 17 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Fri, 07 May 2021 11:23:16 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.12.2-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.12.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <[email protected]>
Linux 5.12.2-rc1
Ondrej Mosnacek <[email protected]>
perf/core: Fix unconditional security_locked_down() call
Mark Pearson <[email protected]>
platform/x86: thinkpad_acpi: Correct thermal sensor allocation
Shengjiu Wang <[email protected]>
ASoC: ak5558: Add MODULE_DEVICE_TABLE
Shengjiu Wang <[email protected]>
ASoC: ak4458: Add MODULE_DEVICE_TABLE
Chris Chiu <[email protected]>
USB: Add reset-resume quirk for WD19's Realtek Hub
Kai-Heng Feng <[email protected]>
USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet
Takashi Iwai <[email protected]>
ALSA: usb-audio: Fix implicit sync clearance at stopping stream
Takashi Iwai <[email protected]>
ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX
Miklos Szeredi <[email protected]>
ovl: allow upperdir inside lowerdir
Mickaël Salaün <[email protected]>
ovl: fix leaked dentry
Bjorn Andersson <[email protected]>
net: qrtr: Avoid potential use after free in MHI send
Daniel Borkmann <[email protected]>
bpf: Fix leakage of uninitialized bpf stack under speculation
Daniel Borkmann <[email protected]>
bpf: Fix masking negation logic upon negative dst register
Imre Deak <[email protected]>
drm/i915: Disable runtime power management during shutdown
Phillip Potter <[email protected]>
net: usb: ax88179_178a: initialize local variables before use
Jonathon Reinhart <[email protected]>
netfilter: conntrack: Make global sysctls readonly in non-init netns
Romain Naour <[email protected]>
mips: Do not include hi and lo in clobber list for R6
-------------
Diffstat:
Makefile | 4 ++-- arch/mips/include/asm/vdso/gettimeofday.h | 26 +++++++++++++++++++----- drivers/gpu/drm/i915/i915_drv.c | 10 ++++++++++ drivers/net/usb/ax88179_178a.c | 6 ++++-- drivers/platform/x86/thinkpad_acpi.c | 31 ++++++++++++++++++++--------- drivers/usb/core/quirks.c | 4 ++++ fs/overlayfs/namei.c | 1 + fs/overlayfs/super.c | 12 ++++++----- include/linux/bpf_verifier.h | 5 +++-- kernel/bpf/verifier.c | 33 +++++++++++++++++-------------- kernel/events/core.c | 12 +++++------ net/netfilter/nf_conntrack_standalone.c | 10 ++-------- net/qrtr/mhi.c | 8 +++++--- sound/soc/codecs/ak4458.c | 1 + sound/soc/codecs/ak5558.c | 1 + sound/usb/endpoint.c | 8 ++++---- sound/usb/quirks-table.h | 10 ++++++++++ 17 files changed, 121 insertions(+), 61 deletions(-)
Greg Kroah-Hartman
maintainerPATCH 1/17 mips: Do not include hi and lo in clobber list for R6
From: Romain Naour <[email protected]>
commit 1d7ba0165d8206ac073f7ac3b14fc0836b66eae7 upstream.
Quoted 1 line
From [1]
"GCC 10 (PR 91233) won't silently allow registers that are not
architecturally available to be present in the clobber list anymore,
resulting in build failure for mips*r6 targets in form of:
....../sysdep.h:146:2: error: the register ‘lo’ cannot be clobbered in ‘asm’ for the current target
146 | __asm__ volatile ( \
| ^~~~~~~This is because base R6 ISA doesn't define hi and lo registers w/o DSP extension. This patch provides the alternative clobber list for r6 targets that won't include those registers."
Since kernel 5.4 and mips support for generic vDSO [2], the kernel fail to build for mips r6 cpus with gcc 10 for the same reason as glibc.
[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=020b2a97bb15f807c0482f0faee2184ed05bcad8
[2] '24640f233b46 ("mips: Add support for generic vDSO")'
--- arch/mips/include/asm/vdso/gettimeofday.h | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-)
arch/mips/include/asm/vdso/gettimeofday.h +21 -5
@@ -20,6 +20,12 @@#define VDSO_HAS_CLOCK_GETRES 1 +#if MIPS_ISA_REV <6 +#define VDSO_SYSCALL_CLOBBERS "hi", "lo", +#else +#define VDSO_SYSCALL_CLOBBERS +#endif +static __always_inline long gettimeofday_fallback (struct __kernel_old_timeval *_tv,struct timezone *_tz)
@@ -35,7 +41,9 @@ static __always_inline long gettimeofday : "=r" (ret), "=r" (error) : "r" (tv), "r" (tz), "r" (nr) : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", - "$14", "$15", "$24", "$25", "hi", "lo", "memory"); +"$14" ,"$15" ,"$24" ,"$25" , +VDSO_SYSCALL_CLOBBERS + "memory");return error ? -ret : ret; }
@@ -59,7 +67,9 @@ static __always_inline long clock_gettim : "=r" (ret), "=r" (error) : "r" (clkid), "r" (ts), "r" (nr) : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", - "$14", "$15", "$24", "$25", "hi", "lo", "memory"); +"$14" ,"$15" ,"$24" ,"$25" , +VDSO_SYSCALL_CLOBBERS + "memory");return error ? -ret : ret; }
@@ -83,7 +93,9 @@ static __always_inline int clock_getres_ : "=r" (ret), "=r" (error) : "r" (clkid), "r" (ts), "r" (nr) : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", - "$14", "$15", "$24", "$25", "hi", "lo", "memory"); +"$14" ,"$15" ,"$24" ,"$25" , +VDSO_SYSCALL_CLOBBERS + "memory");return error ? -ret : ret; }
@@ -105,7 +117,9 @@ static __always_inline long clock_gettim : "=r" (ret), "=r" (error) : "r" (clkid), "r" (ts), "r" (nr) : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", - "$14", "$15", "$24", "$25", "hi", "lo", "memory"); +"$14" ,"$15" ,"$24" ,"$25" , +VDSO_SYSCALL_CLOBBERS + "memory");return error ? -ret : ret; }
@@ -125,7 +139,9 @@ static __always_inline int clock_getres3 : "=r" (ret), "=r" (error) : "r" (clkid), "r" (ts), "r" (nr) : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", - "$14", "$15", "$24", "$25", "hi", "lo", "memory"); +"$14" ,"$15" ,"$24" ,"$25" , +VDSO_SYSCALL_CLOBBERS + "memory");return error ? -ret : ret; }
Greg Kroah-Hartman
maintainerPATCH 2/17 netfilter: conntrack: Make global sysctls readonly in non-init netns
In reply to Greg Kroah-HartmanFrom: Jonathon Reinhart <[email protected]>
commit 2671fa4dc0109d3fb581bc3078fdf17b5d9080f6 upstream.
These sysctls point to global variables:
- NF_SYSCTL_CT_MAX (&nf_conntrack_max)
- NF_SYSCTL_CT_EXPECT_MAX (&nf_ct_expect_max)
- NF_SYSCTL_CT_BUCKETS (&nf_conntrack_htable_size_user)
Because their data pointers are not updated to point to per-netns structures, they must be marked read-only in a non-init_net ns. Otherwise, changes in any net namespace are reflected in (leaked into) all other net namespaces. This problem has existed since the introduction of net namespaces.
The current logic marks them read-only only if the net namespace is owned by an unprivileged user (other than init_user_ns).
Commit d0febd81ae77 ("netfilter: conntrack: re-visit sysctls in unprivileged namespaces") "exposes all sysctls even if the namespace is unpriviliged." Since we need to mark them readonly in any case, we can forego the unprivileged user check altogether.
--- net/netfilter/nf_conntrack_standalone.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-)
net/netfilter/nf_conntrack_standalone.c +2 -8
@@ -1060,16 +1060,10 @@ static int nf_conntrack_standalone_init_nf_conntrack_standalone_init_dccp_sysctl (net, table);nf_conntrack_standalone_init_gre_sysctl (net, table); -/* Don't allow unprivileged users to alter certain sysctls */ -if (net->user_ns != &init_user_ns) { +/* Don't allow non-init_net ns to alter global sysctls */ +if (!net_eq (&init_net, net)) { table[NF_SYSCTL_CT_MAX ].mode =0444 ; table[NF_SYSCTL_CT_EXPECT_MAX ].mode =0444 ; - table[NF_SYSCTL_CT_HELPER ].mode =0444 ; -#ifdef CONFIG_NF_CONNTRACK_EVENTS - table[NF_SYSCTL_CT_EVENTS ].mode =0444 ; -#endif - table[NF_SYSCTL_CT_BUCKETS ].mode =0444 ; - }else if (!net_eq (&init_net, net)) { table[NF_SYSCTL_CT_BUCKETS ].mode =0444 ; }
Greg Kroah-Hartman
maintainerPATCH 3/17 net: usb: ax88179_178a: initialize local variables before use
In reply to Greg Kroah-HartmanFrom: Phillip Potter <[email protected]>
commit bd78980be1a68d14524c51c4b4170782fada622b upstream.
Use memset to initialize local array in drivers/net/usb/ax88179_178a.c, and also set a local u16 and u32 variable to 0. Fixes a KMSAN found uninit-value bug reported by syzbot at:
https://syzkaller.appspot.com/bug?id=00371c73c72f72487c1d0bfe0cc9d00de339d5aa
--- drivers/net/usb/ax88179_178a.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/net/usb/ax88179_178a.c +4 -2
@@ -296,12 +296,12 @@ static int ax88179_read_cmd(struct usbneint ret;if (2 == size) { -u16 buf; +u16 buf =0 ; ret =__ax88179_read_cmd (dev, cmd, value, index, size, &buf,0 );le16_to_cpus (&buf); *((u16 *)data) = buf; }else if (4 == size) { -u32 buf; +u32 buf =0 ; ret =__ax88179_read_cmd (dev, cmd, value, index, size, &buf,0 );le32_to_cpus (&buf); *((u32 *)data) = buf;
@@ -1296,6 +1296,8 @@ static void ax88179_get_mac_addr(struct {u8 mac[ETH_ALEN ]; +memset (mac,0 ,sizeof (mac)); +/* Maybe the boot loader passed the MAC address via device tree */ if (!eth_platform_get_mac_address (&dev->udev->dev, mac)) { netif_dbg(dev, ifup, dev->net,
Greg Kroah-Hartman
maintainerPATCH 4/17 drm/i915: Disable runtime power management during shutdown
In reply to Greg Kroah-HartmanFrom: Imre Deak <[email protected]>
commit 7962893ecb853aa7c8925ce237ab6c4274cfc1c7 upstream.
At least on some TGL platforms PUNIT wants to access some display HW registers, but it doesn't handle display power management (disabling DC states as required) and so this register access will lead to a hang. To prevent this disable runtime power management for poweroff and reboot.
v2:
- Add code comment clarifying the requirement of display power states. (Ville)
--- drivers/gpu/drm/i915/i915_drv.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
drivers/gpu/drm/i915/i915_drv.c +10 -0
@@ -1049,6 +1049,8 @@ static void intel_shutdown_encoders(struvoid i915_driver_shutdown (struct drm_i915_private *i915) {disable_rpm_wakeref_asserts (&i915->runtime_pm); +intel_runtime_pm_disable (&i915->runtime_pm); +intel_power_domains_disable (i915);i915_gem_suspend (i915);
@@ -1064,7 +1066,15 @@ void i915_driver_shutdown(struct drm_i91intel_suspend_encoders (i915);intel_shutdown_encoders (i915); +/* +* The only requirement is to reboot with display DC states disabled, +* for now leaving all display power wells in the INIT power domain +* enabled matching the driver reload sequence. +*/ +intel_power_domains_driver_remove (i915);enable_rpm_wakeref_asserts (&i915->runtime_pm); + +intel_runtime_pm_driver_release (&i915->runtime_pm); }static bool suspend_to_idle (struct drm_i915_private *dev_priv)
Greg Kroah-Hartman
maintainerPATCH 5/17 bpf: Fix masking negation logic upon negative dst register
In reply to Greg Kroah-HartmanFrom: Daniel Borkmann <[email protected]>
commit b9b34ddbe2076ade359cd5ce7537d5ed019e9807 upstream.
The negation logic for the case where the off_reg is sitting in the dst register is not correct given then we cannot just invert the add to a sub or vice versa. As a fix, perform the final bitwise and-op unconditionally into AX from the off_reg, then move the pointer from the src to dst and finally use AX as the source for the original pointer arithmetic operation such that the inversion yields a correct result. The single non-AX mov in between is possible given constant blinding is retaining it as it's not an immediate based operation.
--- kernel/bpf/verifier.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)
kernel/bpf/verifier.c +4 -8
@@ -11760,14 +11760,10 @@ static int fixup_bpf_calls(struct bpf_ve *patch++ =BPF_ALU64_REG (BPF_OR ,BPF_REG_AX , off_reg); *patch++ =BPF_ALU64_IMM (BPF_NEG ,BPF_REG_AX ,0 ); *patch++ =BPF_ALU64_IMM (BPF_ARSH ,BPF_REG_AX ,63 ); -if (issrc) { - *patch++ =BPF_ALU64_REG (BPF_AND ,BPF_REG_AX , - off_reg); - insn->src_reg =BPF_REG_AX ; - }else { - *patch++ =BPF_ALU64_REG (BPF_AND , off_reg, -BPF_REG_AX ); - } + *patch++ =BPF_ALU64_REG (BPF_AND ,BPF_REG_AX , off_reg); +if (!issrc) + *patch++ =BPF_MOV64_REG (insn->dst_reg, insn->src_reg); + insn->src_reg =BPF_REG_AX ;if (isneg) insn->code = insn->code == code_add ? code_sub : code_add;
Greg Kroah-Hartman
maintainerPATCH 6/17 bpf: Fix leakage of uninitialized bpf stack under speculation
In reply to Greg Kroah-HartmanFrom: Daniel Borkmann <[email protected]>
commit 801c6058d14a82179a7ee17a4b532cac6fad067f upstream.
The current implemented mechanisms to mitigate data disclosure under speculation mainly address stack and map value oob access from the speculative domain. However, Piotr discovered that uninitialized BPF stack is not protected yet, and thus old data from the kernel stack, potentially including addresses of kernel structures, could still be extracted from that 512 bytes large window. The BPF stack is special compared to map values since it's not zero initialized for every program invocation, whereas map values /are/ zero initialized upon their initial allocation and thus cannot leak any prior data in either domain. In the non-speculative domain, the verifier ensures that every stack slot read must have a prior stack slot write by the BPF program to avoid such data leaking issue.
However, this is not enough: for example, when the pointer arithmetic operation moves the stack pointer from the last valid stack offset to the first valid offset, the sanitation logic allows for any intermediate offsets during speculative execution, which could then be used to extract any restricted stack content via side-channel.
Given for unprivileged stack pointer arithmetic the use of unknown but bounded scalars is generally forbidden, we can simply turn the register-based arithmetic operation into an immediate-based arithmetic operation without the need for masking. This also gives the benefit of reducing the needed instructions for the operation. Given after the work in 7fedb63a8307 ("bpf: Tighten speculative pointer arithmetic mask"), the aux->alu_limit already holds the final immediate value for the offset register with the known scalar. Thus, a simple mov of the immediate to AX register with using AX as the source for the original instruction is sufficient and possible now in this case.
--- include/linux/bpf_verifier.h | 5 +++-- kernel/bpf/verifier.c | 27 +++++++++++++++++---------- 2 files changed, 20 insertions(+), 12 deletions(-)
include/linux/bpf_verifier.h +3 -2
@@ -299,10 +299,11 @@ struct bpf_verifier_state_list { };/* Possible states for alu_state member. */ -#define BPF_ALU_SANITIZE_SRC 1U -#define BPF_ALU_SANITIZE_DST 2U +#define BPF_ALU_SANITIZE_SRC (1U << 0) +#define BPF_ALU_SANITIZE_DST (1U << 1)#define BPF_ALU_NEG_VALUE (1U << 2)#define BPF_ALU_NON_POINTER (1U << 3) +#define BPF_ALU_IMMEDIATE (1U << 4)#define BPF_ALU_SANITIZE (BPF_ALU_SANITIZE_SRC | \ BPF_ALU_SANITIZE_DST)
kernel/bpf/verifier.c +17 -10
@@ -5952,6 +5952,7 @@ static int sanitize_ptr_alu(struct bpf_v {struct bpf_insn_aux_data *aux = commit_window ?cur_aux (env) : tmp_aux;struct bpf_verifier_state *vstate = env->cur_state; +bool off_is_imm =tnum_is_const (off_reg->var_off);bool off_is_neg = off_reg->smin_value <0 ;bool ptr_is_dst_reg = ptr_reg == dst_reg;u8 opcode =BPF_OP (insn->code);
@@ -5982,6 +5983,7 @@ static int sanitize_ptr_alu(struct bpf_v alu_limit =abs (tmp_aux->alu_limit - alu_limit); }else { alu_state = off_is_neg ?BPF_ALU_NEG_VALUE :0 ; + alu_state |= off_is_imm ?BPF_ALU_IMMEDIATE :0 ; alu_state |= ptr_is_dst_reg ?BPF_ALU_SANITIZE_SRC :BPF_ALU_SANITIZE_DST ; }
@@ -11740,7 +11742,7 @@ static int fixup_bpf_calls(struct bpf_veconst u8 code_sub =BPF_ALU64 |BPF_SUB |BPF_X ;struct bpf_insn insn_buf[16 ];struct bpf_insn *patch = &insn_buf[0 ]; -bool issrc, isneg; +bool issrc, isneg, isimm;u32 off_reg; aux = &env->insn_aux_data[i + delta];
@@ -11751,16 +11753,21 @@ static int fixup_bpf_calls(struct bpf_ve isneg = aux->alu_state &BPF_ALU_NEG_VALUE ; issrc = (aux->alu_state &BPF_ALU_SANITIZE ) ==BPF_ALU_SANITIZE_SRC ; + isimm = aux->alu_state &BPF_ALU_IMMEDIATE ; off_reg = issrc ? insn->src_reg : insn->dst_reg; -if (isneg) - *patch++ =BPF_ALU64_IMM (BPF_MUL , off_reg,-1 ); - *patch++ =BPF_MOV32_IMM (BPF_REG_AX , aux->alu_limit); - *patch++ =BPF_ALU64_REG (BPF_SUB ,BPF_REG_AX , off_reg); - *patch++ =BPF_ALU64_REG (BPF_OR ,BPF_REG_AX , off_reg); - *patch++ =BPF_ALU64_IMM (BPF_NEG ,BPF_REG_AX ,0 ); - *patch++ =BPF_ALU64_IMM (BPF_ARSH ,BPF_REG_AX ,63 ); - *patch++ =BPF_ALU64_REG (BPF_AND ,BPF_REG_AX , off_reg); +if (isimm) { + *patch++ =BPF_MOV32_IMM (BPF_REG_AX , aux->alu_limit); + }else { +if (isneg) + *patch++ =BPF_ALU64_IMM (BPF_MUL , off_reg,-1 ); + *patch++ =BPF_MOV32_IMM (BPF_REG_AX , aux->alu_limit); + *patch++ =BPF_ALU64_REG (BPF_SUB ,BPF_REG_AX , off_reg); + *patch++ =BPF_ALU64_REG (BPF_OR ,BPF_REG_AX , off_reg); + *patch++ =BPF_ALU64_IMM (BPF_NEG ,BPF_REG_AX ,0 ); + *patch++ =BPF_ALU64_IMM (BPF_ARSH ,BPF_REG_AX ,63 ); + *patch++ =BPF_ALU64_REG (BPF_AND ,BPF_REG_AX , off_reg); + }if (!issrc) *patch++ =BPF_MOV64_REG (insn->dst_reg, insn->src_reg); insn->src_reg =BPF_REG_AX ;
@@ -11768,7 +11775,7 @@ static int fixup_bpf_calls(struct bpf_ve insn->code = insn->code == code_add ? code_sub : code_add; *patch++ = *insn; -if (issrc && isneg) +if (issrc && isneg && !isimm) *patch++ =BPF_ALU64_IMM (BPF_MUL , off_reg,-1 ); cnt = patch - insn_buf;
Greg Kroah-Hartman
maintainerPATCH 7/17 net: qrtr: Avoid potential use after free in MHI send
In reply to Greg Kroah-HartmanFrom: Bjorn Andersson <[email protected]>
commit 47a017f33943278570c072bc71681809b2567b3a upstream.
It is possible that the MHI ul_callback will be invoked immediately following the queueing of the skb for transmission, leading to the callback decrementing the refcount of the associated sk and freeing the skb.
As such the dereference of skb and the increment of the sk refcount must happen before the skb is queued, to avoid the skb to be used after free and potentially the sk to drop its last refcount..
--- net/qrtr/mhi.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
net/qrtr/mhi.c +5 -3
@@ -50,6 +50,9 @@ static int qcom_mhi_qrtr_send(struct qrt struct qrtr_mhi_dev *qdev = container_of(ep, struct qrtr_mhi_dev, ep);int rc; +if (skb->sk) +sock_hold (skb->sk); + rc =skb_linearize (skb);if (rc) goto free_skb;
@@ -59,12 +62,11 @@ static int qcom_mhi_qrtr_send(struct qrtif (rc) goto free_skb; -if (skb->sk) -sock_hold (skb->sk); -return rc; free_skb: +if (skb->sk) +sock_put (skb->sk);kfree_skb (skb);return rc;
Greg Kroah-Hartman
maintainerPATCH 8/17 ovl: fix leaked dentry
In reply to Greg Kroah-HartmanFrom: Mickaël Salaün <[email protected]>
commit eaab1d45cdb4bb0c846bd23c3d666d5b90af7b41 upstream.
Since commit 6815f479ca90 ("ovl: use only uppermetacopy state in ovl_lookup()"), overlayfs doesn't put temporary dentry when there is a metacopy error, which leads to dentry leaks when shutting down the related superblock:
overlayfs: refusing to follow metacopy origin for (/file0)
...
BUG: Dentry (____ptrval____){i=3f33,n=file3} still in use (1) [unmount of overlay overlay]
...
WARNING: CPU: 1 PID: 432 at umount_check.cold+0x107/0x14d
CPU: 1 PID: 432 Comm: unmount-overlay Not tainted 5.12.0-rc5 #1
...
RIP: 0010:umount_check.cold+0x107/0x14d
...
Call Trace:
d_walk+0x28c/0x950
? dentry_lru_isolate+0x2b0/0x2b0
? __kasan_slab_free+0x12/0x20
do_one_tree+0x33/0x60
shrink_dcache_for_umount+0x78/0x1d0
generic_shutdown_super+0x70/0x440
kill_anon_super+0x3e/0x70
deactivate_locked_super+0xc4/0x160
deactivate_super+0xfa/0x140
cleanup_mnt+0x22e/0x370
__cleanup_mnt+0x1a/0x30
task_work_run+0x139/0x210
do_exit+0xb0c/0x2820
? __kasan_check_read+0x1d/0x30
? find_held_lock+0x35/0x160
? lock_release+0x1b6/0x660
? mm_update_next_owner+0xa20/0xa20
? reacquire_held_locks+0x3f0/0x3f0
? __sanitizer_cov_trace_const_cmp4+0x22/0x30
do_group_exit+0x135/0x380
__do_sys_exit_group.isra.0+0x20/0x20
__x64_sys_exit_group+0x3c/0x50
do_syscall_64+0x45/0x70
entry_SYSCALL_64_after_hwframe+0x44/0xae
...
VFS: Busy inodes after unmount of overlay. Self-destruct in 5 seconds. Have a nice day...This fix has been tested with a syzkaller reproducer.
--- fs/overlayfs/namei.c | 1 + 1 file changed, 1 insertion(+)
fs/overlayfs/namei.c +1 -0
@@ -919,6 +919,7 @@ struct dentry *ovl_lookup(struct inode *continue ;if ((uppermetacopy || d.metacopy) && !ofs->config.metacopy) { +dput (this); err = -EPERM ;pr_warn_ratelimited ("refusing to follow metacopy origin for (%pd2)\n" , dentry); goto out_put;
Greg Kroah-Hartman
maintainerPATCH 9/17 ovl: allow upperdir inside lowerdir
In reply to Greg Kroah-HartmanFrom: Miklos Szeredi <[email protected]>
commit 708fa01597fa002599756bf56a96d0de1677375c upstream.
Commit 146d62e5a586 ("ovl: detect overlapping layers") made sure we don't have overlapping layers, but it also broke the arguably valid use case of
mount -olowerdir=/,upperdir=/subdir,..
where upperdir overlaps lowerdir on the same filesystem. This has been causing regressions.
Revert the check, but only for the specific case where upperdir and/or workdir are subdirectories of lowerdir. Any other overlap (e.g. lowerdir is subdirectory of upperdir, etc) case is crazy, so leave the check in place for those.
Overlaps are detected at lookup time too, so reverting the mount time check should be safe.
--- fs/overlayfs/super.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
fs/overlayfs/super.c +7 -5
@@ -1826,7 +1826,8 @@ out_err:* - upper/work dir of any overlayfs instance */ static int ovl_check_layer (struct super_block *sb,struct ovl_fs *ofs, -struct dentry *dentry,const char *name) +struct dentry *dentry,const char *name, +bool is_lower) {struct dentry *next = dentry, *parent;int err =0 ;
@@ -1838,7 +1839,7 @@ static int ovl_check_layer(struct super_/* Walk back ancestors to root (inclusive) looking for traps */ while (!err && parent != next) { -if (ovl_lookup_trap_inode (sb, parent)) { +if (is_lower &&ovl_lookup_trap_inode (sb, parent)) { err = -ELOOP ;pr_err ("overlapping %s path\n" , name); }else if (ovl_is_inuse (parent)) {
@@ -1864,7 +1865,7 @@ static int ovl_check_overlapping_layers(if (ovl_upper_mnt (ofs)) { err =ovl_check_layer (sb, ofs,ovl_upper_mnt (ofs)->mnt_root, -"upperdir" ); +"upperdir" , false);if (err)return err;
@@ -1875,7 +1876,8 @@ static int ovl_check_overlapping_layers(* workbasedir. In that case, we already have their traps in * inode cache and we will catch that case on lookup. */ - err =ovl_check_layer (sb, ofs, ofs->workbasedir,"workdir" ); + err =ovl_check_layer (sb, ofs, ofs->workbasedir,"workdir" , + false);if (err)return err; }
@@ -1883,7 +1885,7 @@ static int ovl_check_overlapping_layers(for (i =1 ; i < ofs->numlayer; i++) { err =ovl_check_layer (sb, ofs, ofs->layers[i].mnt->mnt_root, -"lowerdir" ); +"lowerdir" , true);if (err)return err; }
Greg Kroah-Hartman
maintainerPATCH 10/17 ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX
In reply to Greg Kroah-HartmanFrom: Takashi Iwai <[email protected]>
commit 64f40f9be14106e7df0098c427cb60be645bddb7 upstream.
ToneLab EX guitar pedal device requires the same quirk like ToneLab ST for supporting the MIDI.
--- sound/usb/quirks-table.h | 10 ++++++++++ 1 file changed, 10 insertions(+)
sound/usb/quirks-table.h +10 -0
@@ -2376,6 +2376,16 @@ YAMAHA_DEVICE(0x7010, "UB99"), } }, +{ + USB_DEVICE_VENDOR_SPEC(0x0944, 0x0204), + .driver_info = (unsigned long ) & (const struct snd_usb_audio_quirk ) { + .vendor_name ="KORG, Inc." , +/* .product_name = "ToneLab EX", */ + .ifnum =3 , + .type =QUIRK_MIDI_STANDARD_INTERFACE , + } +}, +/* AKAI devices */ { USB_DEVICE(0x09e8, 0x0062),
Greg Kroah-Hartman
maintainerPATCH 11/17 ALSA: usb-audio: Fix implicit sync clearance at stopping stream
In reply to Greg Kroah-HartmanFrom: Takashi Iwai <[email protected]>
commit 988cc17552606be67a956cf8cd6ff504cfc5d643 upstream.
The recent endpoint management change for implicit feedback mode added a clearance of ep->sync_sink (formerly ep->sync_slave) pointer at snd_usb_endpoint_stop() to assure no leftover for the feedback from the already stopped capture stream. This turned out to cause a regression, however, when full-duplex streams were running and only a capture was stopped. Because of the above clearance of ep->sync_sink pointer, no more feedback is done, hence the playback will stall.
This patch fixes the ep->sync_sink clearance to be done only after all endpoints are released, for addressing the regression.
--- sound/usb/endpoint.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
sound/usb/endpoint.c +4 -4
@@ -1442,11 +1442,11 @@ void snd_usb_endpoint_stop(struct snd_usif (snd_BUG_ON (!atomic_read (&ep->running)))return ; -if (ep->sync_source) -WRITE_ONCE (ep->sync_source->sync_sink,NULL ); - -if (!atomic_dec_return (&ep->running)) +if (!atomic_dec_return (&ep->running)) { +if (ep->sync_source) +WRITE_ONCE (ep->sync_source->sync_sink,NULL );stop_urbs (ep, false); + } }/**
Greg Kroah-Hartman
maintainerPATCH 12/17 USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet
In reply to Greg Kroah-HartmanFrom: Kai-Heng Feng <[email protected]>
commit 8f23fe35ff1e5491b4d279323a8209a31f03ae65 upstream.
This is another branded 8153 device that doesn't work well with LPM enabled:
[ 400.597506] r8152 5-1.1:1.0 enx482ae3a2a6f0: Tx status -71
So disable LPM to resolve the issue.
--- drivers/usb/core/quirks.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/usb/core/quirks.c +3 -0
@@ -438,6 +438,9 @@ static const struct usb_device_id usb_qu { USB_DEVICE(0x17ef, 0xa012), .driver_info = USB_QUIRK_DISCONNECT_SUSPEND }, + /* Lenovo ThinkPad USB-C Dock Gen2 Ethernet (RTL8153 GigE) */ + { USB_DEVICE(0x17ef, 0xa387), .driver_info = USB_QUIRK_NO_LPM }, + /* BUILDWIN Photo Frame */ { USB_DEVICE(0x1908, 0x1315), .driver_info = USB_QUIRK_HONOR_BNUMINTERFACES },
Greg Kroah-Hartman
maintainerPATCH 13/17 USB: Add reset-resume quirk for WD19s Realtek Hub
In reply to Greg Kroah-HartmanFrom: Chris Chiu <[email protected]>
commit ca91fd8c7643d93bfc18a6fec1a0d3972a46a18a upstream.
Realtek Hub (0bda:5487) in Dell Dock WD19 sometimes fails to work after the system resumes from suspend with remote wakeup enabled device connected:
[ 1947.640907] hub 5-2.3:1.0: hub_ext_port_status failed (err = -71) [ 1947.641208] usb 5-2.3-port5: cannot disable (err = -71) [ 1947.641401] hub 5-2.3:1.0: hub_ext_port_status failed (err = -71) [ 1947.641450] usb 5-2.3-port4: cannot reset (err = -71)
Information of this hub:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 10 Spd=480 MxCh= 5 D: Ver= 2.10 Cls=09(hub ) Sub=00 Prot=02 MxPS=64 #Cfgs= 1 P: Vendor=0bda ProdID=5487 Rev= 1.47 S: Manufacturer=Dell Inc. S: Product=Dell dock C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=01 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms
I:* If#= 0 Alt= 1 #EPs= 1 Cls=09(hub ) Sub=00 Prot=02 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms
The failure results from the ETIMEDOUT by chance when turning on the suspend feature for the specified port of the hub. The port seems to be in an unknown state so the hub_activate during resume fails the hub_port_status, then the hub will fail to work.
The quirky hub needs the reset-resume quirk to function correctly.
--- drivers/usb/core/quirks.c | 1 + 1 file changed, 1 insertion(+)
drivers/usb/core/quirks.c +1 -0
@@ -406,6 +406,7 @@ static const struct usb_device_id usb_qu/* Realtek hub in Dell WD19 (Type-C) */ { USB_DEVICE(0x0bda, 0x0487), .driver_info = USB_QUIRK_NO_LPM }, + { USB_DEVICE(0x0bda, 0x5487), .driver_info = USB_QUIRK_RESET_RESUME }, /* Generic RTL8153 based ethernet adapters */ { USB_DEVICE(0x0bda, 0x8153), .driver_info = USB_QUIRK_NO_LPM },
Greg Kroah-Hartman
maintainerPATCH 14/17 ASoC: ak4458: Add MODULE_DEVICE_TABLE
In reply to Greg Kroah-HartmanFrom: Shengjiu Wang <[email protected]>
commit f84b4524005238fc9fd5cf615bb426fa40a99494 upstream.
Add missed MODULE_DEVICE_TABLE for the driver can be loaded automatically at boot.
--- sound/soc/codecs/ak4458.c | 1 + 1 file changed, 1 insertion(+)
sound/soc/codecs/ak4458.c +1 -0
@@ -823,6 +823,7 @@ static struct i2c_driver ak4458_i2c_driv .probe_new = ak4458_i2c_probe, .remove = ak4458_i2c_remove, }; +MODULE_DEVICE_TABLE (of, ak4458_of_match);module_i2c_driver (ak4458_i2c_driver);
Greg Kroah-Hartman
maintainerPATCH 15/17 ASoC: ak5558: Add MODULE_DEVICE_TABLE
In reply to Greg Kroah-HartmanFrom: Shengjiu Wang <[email protected]>
commit 741c8397e5d0b339fb3e614a9ff5cb4bf7ae1a65 upstream.
Add missed MODULE_DEVICE_TABLE for the driver can be loaded automatically at boot.
--- sound/soc/codecs/ak5558.c | 1 + 1 file changed, 1 insertion(+)
sound/soc/codecs/ak5558.c +1 -0
@@ -430,6 +430,7 @@ static struct i2c_driver ak5558_i2c_driv .probe_new = ak5558_i2c_probe, .remove = ak5558_i2c_remove, }; +MODULE_DEVICE_TABLE (of, ak5558_i2c_dt_ids);module_i2c_driver (ak5558_i2c_driver);
Greg Kroah-Hartman
maintainerPATCH 16/17 platform/x86: thinkpad_acpi: Correct thermal sensor allocation
In reply to Greg Kroah-HartmanFrom: Mark Pearson <[email protected]>
commit 6759e18e5cd8745a5dfc5726e4a3db5281ec1639 upstream.
On recent Thinkpad platforms it was reported that temp sensor 11 was always incorrectly displaying 66C. It turns out the reason for this is that this location in EC RAM is not a temperature sensor but is the power supply ID (offset 0xC2).
Based on feedback from the Lenovo firmware team the EC RAM version can be determined and for the current version (3) only the 0x78 to 0x7F range is used for temp sensors. I don't have any details for earlier versions so I have left the implementation unaltered there.
Note - in this block only 0x78 and 0x79 are officially designated (CPU & GPU sensors). The use of the other locations in the block will vary from platform to platform; but the existing logic to detect a sensor presence holds.
--- drivers/platform/x86/thinkpad_acpi.c | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-)
drivers/platform/x86/thinkpad_acpi.c +22 -9
@@ -6260,6 +6260,7 @@ enum thermal_access_mode {enum {/* TPACPI_THERMAL_TPEC_* */ TP_EC_THERMAL_TMP0 =0x78 ,/* ACPI EC regs TMP 0..7 */ TP_EC_THERMAL_TMP8 =0xC0 ,/* ACPI EC regs TMP 8..15 */ +TP_EC_FUNCREV =0xEF ,/* ACPI EC Functional revision */ TP_EC_THERMAL_TMP_NA =-128 ,/* ACPI EC sensor not available */ TPACPI_THERMAL_SENSOR_NA =-128000 ,/* Sensor not available */
@@ -6458,7 +6459,7 @@ static const struct attribute_group therstatic int __init thermal_init (struct ibm_init_struct *iibm) { -u8 t, ta1, ta2; +u8 t, ta1, ta2, ver =0 ;int i;int acpi_tmp7;int res;
@@ -6473,7 +6474,14 @@ static int __init thermal_init(struct ib* 0x78-0x7F, 0xC0-0xC7. Registers return 0x00 for * non-implemented, thermal sensors return 0x80 when * not available +* The above rule is unfortunately flawed. This has been seen with +* 0xC2 (power supply ID) causing thermal control problems. +* The EC version can be determined by offset 0xEF and at least for +* version 3 the Lenovo firmware team confirmed that registers 0xC0-0xC7 +* are not thermal registers. */ +if (!acpi_ec_read (TP_EC_FUNCREV , &ver)) +pr_warn ("Thinkpad ACPI EC unable to access EC version\n" ); ta1 = ta2 =0 ;for (i =0 ; i <8 ; i++) {
@@ -6483,11 +6491,13 @@ static int __init thermal_init(struct ib ta1 =0 ;break ; } -if (acpi_ec_read (TP_EC_THERMAL_TMP8 + i, &t)) { - ta2 |= t; - }else { - ta1 =0 ; -break ; +if (ver <3 ) { +if (acpi_ec_read (TP_EC_THERMAL_TMP8 + i, &t)) { + ta2 |= t; + }else { + ta1 =0 ; +break ; + } } }if (ta1 ==0 ) {
@@ -6500,9 +6510,12 @@ static int __init thermal_init(struct ib thermal_read_mode =TPACPI_THERMAL_NONE ; } }else { - thermal_read_mode = - (ta2 !=0 ) ? -TPACPI_THERMAL_TPEC_16 :TPACPI_THERMAL_TPEC_8 ; +if (ver >=3 ) + thermal_read_mode =TPACPI_THERMAL_TPEC_8 ; +else + thermal_read_mode = + (ta2 !=0 ) ? +TPACPI_THERMAL_TPEC_16 :TPACPI_THERMAL_TPEC_8 ; } }else if (acpi_tmp7) { if (tpacpi_is_ibm() &&
Greg Kroah-Hartman
maintainerPATCH 17/17 perf/core: Fix unconditional security_locked_down() call
In reply to Greg Kroah-HartmanFrom: Ondrej Mosnacek <[email protected]>
commit 08ef1af4de5fe7de9c6d69f1e22e51b66e385d9b upstream.
Currently, the lockdown state is queried unconditionally, even though its result is used only if the PERF_SAMPLE_REGS_INTR bit is set in attr.sample_type. While that doesn't matter in case of the Lockdown LSM, it causes trouble with the SELinux's lockdown hook implementation.
SELinux implements the locked_down hook with a check whether the current task's type has the corresponding "lockdown" class permission ("integrity" or "confidentiality") allowed in the policy. This means that calling the hook when the access control decision would be ignored generates a bogus permission check and audit record.
Fix this by checking sample_type first and only calling the hook when its result would be honored.
--- kernel/events/core.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
kernel/events/core.c +6 -6
@@ -11829,12 +11829,12 @@ SYSCALL_DEFINE5(perf_event_open,return err; } - err =security_locked_down (LOCKDOWN_PERF ); -if (err && (attr.sample_type &PERF_SAMPLE_REGS_INTR )) -/* REGS_INTR can leak data, lockdown must prevent this */ -return err; - - err =0 ; +/* REGS_INTR can leak data, lockdown must prevent this */ +if (attr.sample_type &PERF_SAMPLE_REGS_INTR ) { + err =security_locked_down (LOCKDOWN_PERF ); +if (err) +return err; + }/* * In cgroup mode, the pid argument is used to pass the fd
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.12.2 release. There are 17 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Fri, 07 May 2021 11:23:16 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 9 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.12.2-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.12.y
and the diffstat can be found below.thanks,
greg k-h
5.12.2-rc1 Successfully Compiled and booted on my Raspberry PI 4b (8g) (bcm2711)
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.12.2 release. There are 17 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Fri, 07 May 2021 11:23:16 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.12.2-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.12.y
and the diffstat can be found below.thanks,
greg k-h
All tests passing for Tegra ...
Test results for stable-v5.12:
12 builds: 12 pass, 0 fail
28 boots: 28 pass, 0 fail
104 tests: 104 pass, 0 failLinux version: 5.12.2-rc1-g77358801e46c
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,
tegra194-p2972-0000, tegra194-p3509-0000+p3668-0000,
tegra20-ventana, tegra210-p2371-2180,
tegra210-p3450-0000, tegra30-cardhu-a04Jon
Quoted 10 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.12.2 release. There are 17 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Fri, 07 May 2021 11:23:16 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.12.2-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.12.y
and the diffstat can be found below.thanks,
greg k-h
Results from Linaro’s test farm.
No regressions on arm64, arm, x86_64, and i386.
## Build
* kernel: 5.12.2-rc1
* git: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
* git branch: linux-5.12.y
* git commit: 77358801e46cfaa306e7b1bcf5d8cf99a21b40d2
* git describe: v5.12.1-18-g77358801e46c
* test details:
https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.12.y/build/v5.12.1-18-g77358801e46c
## No regressions (compared to v5.12.1-8-g3a4da71200d3)
## No fixes (compared to v5.12.1-8-g3a4da71200d3)
## Test result summary
total: 79811, pass: 65944, fail: 2758, skip: 11109, xfail: 0,
## Build Summary
* arc: 10 total, 10 passed, 0 failed
* arm: 193 total, 193 passed, 0 failed
* arm64: 27 total, 27 passed, 0 failed
* dragonboard-410c: 1 total, 1 passed, 0 failed
* hi6220-hikey: 1 total, 1 passed, 0 failed
* i386: 26 total, 26 passed, 0 failed
* juno-r2: 1 total, 1 passed, 0 failed
* mips: 45 total, 45 passed, 0 failed
* parisc: 9 total, 9 passed, 0 failed
* powerpc: 27 total, 27 passed, 0 failed
* riscv: 21 total, 21 passed, 0 failed
* s390: 18 total, 18 passed, 0 failed
* sh: 18 total, 18 passed, 0 failed
* sparc: 9 total, 9 passed, 0 failed
* x15: 1 total, 0 passed, 1 failed
* x86: 1 total, 1 passed, 0 failed
* x86_64: 27 total, 27 passed, 0 failed
## Test suites summary
* fwts
* igt-gpu-tools
* install-android-platform-tools-r2600
* kselftest-
* kselftest-android
* kselftest-bpf
* kselftest-breakpoints
* kselftest-capabilities
* kselftest-cgroup
* kselftest-clone3
* kselftest-core
* kselftest-cpu-hotplug
* kselftest-cpufreq
* kselftest-drivers
* kselftest-efivarfs
* kselftest-filesystems
* kselftest-firmware
* kselftest-fpu
* kselftest-futex
* kselftest-gpio
* kselftest-intel_pstate
* kselftest-ipc
* kselftest-ir
* kselftest-kcmp
* kselftest-kexec
* kselftest-kvm
* kselftest-lib
* kselftest-livepatch
* kselftest-lkdtm
* kselftest-membarrier
* kselftest-memfd
* kselftest-memory-hotplug
* kselftest-mincore
* kselftest-mount
* kselftest-mqueue
* kselftest-net
* kselftest-netfilter
* kselftest-nsfs
* kselftest-openat2
* kselftest-pid_namespace
* kselftest-pidfd
* kselftest-proc
* kselftest-pstore
* kselftest-ptrace
* kselftest-rseq
* kselftest-rtc
* kselftest-seccomp
* kselftest-sigaltstack
* kselftest-size
* kselftest-splice
* kselftest-static_keys
* kselftest-sync
* kselftest-sysctl
* kselftest-tc-testing
* kselftest-timens
* kselftest-timers
* kselftest-tmpfs
* kselftest-tpm2
* kselftest-user
* kselftest-vm
* kselftest-vsyscall-mode-native-
* kselftest-vsyscall-mode-none-
* kselftest-x86
* kselftest-zram
* kunit
* kvm-unit-tests
* libhugetlbfs
* linux-log-parser
* ltp-cap_bounds-tests
* ltp-commands-tests
* ltp-containers-tests
* ltp-controllers-tests
* ltp-cpuhotplug-tests
* ltp-crypto-tests
* ltp-cve-tests
* ltp-dio-tests
* ltp-fcntl-locktests-tests
* ltp-filecaps-tests
* ltp-fs-tests
* ltp-fs_bind-tests
* ltp-fs_perms_simple-tests
* ltp-fsx-tests
* ltp-hugetlb-tests
* ltp-io-tests
* ltp-ipc-tests
* ltp-math-tests
* ltp-mm-tests
* ltp-nptl-tests
* ltp-open-posix-tests
* ltp-pty-tests
* ltp-sched-tests
* ltp-securebits-tests
* ltp-syscalls-tests
* ltp-tracing-tests
* network-basic-tests
* packetdrill
* perf
* rcutorture
* ssuite
* timesync-off
* v4l2-compliance
--
Linaro LKFT
https://lkft.linaro.org
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.12.2 release. There are 17 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Fri, 07 May 2021 11:23:16 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.12.2-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.12.y
and the diffstat can be found below.thanks,
greg k-h
On ARCH_BRCMSTB using 32-bit and 64-bit ARM kernels:
Signature · 1 line
Florian
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.12.2 release. There are 17 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Fri, 07 May 2021 11:23:16 +0000. Anything received after that time might be too late.
[ ... ]
Quoted 6 lines
Shengjiu Wang <[email protected]>
ASoC: ak5558: AddMODULE_DEVICE_TABLEShengjiu Wang <[email protected]>
ASoC: ak4458: AddMODULE_DEVICE_TABLE
No, wait, those are both already in the tree, and both need to be removed.
$ git describe v5.12.1-18-g77358801e46c $ git log --oneline v5.10.. sound/soc/codecs/ak4458.c sound/soc/codecs/ak5558.c a72a232ea459 ASoC: ak5558: Add MODULE_DEVICE_TABLE 20583d98df0c ASoC: ak4458: Add MODULE_DEVICE_TABLE 80cffd2468dd ASoC: ak5558: Add MODULE_DEVICE_TABLE 4ec5b96775a8 ASoC: ak4458: Add MODULE_DEVICE_TABLE e953daeb68b1 ASoC: ak4458: correct reset polarity 9f34c0405723 ASoC: ak5558: mark OF related data as maybe unused
This applies to all branches.
Other than that,
Build results:
total: 151 pass: 151 fail: 0 Qemu test results: total: 461 pass: 461 fail: 0
Guenter