5.10.59-rc1 review
Greg Kroah-Hartman
maintainercover 5.10.59-rc1 review
This is the start of the stable review cycle for the 5.10.59 release. There are 19 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 Sun, 15 Aug 2021 15:05:12 +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.10.59-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.10.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <[email protected]>
Linux 5.10.59-rc1
YueHaibing <[email protected]>
net: xilinx_emaclite: Do not print real IOMEM pointer
Miklos Szeredi <[email protected]>
ovl: prevent private clone if bind mount is not allowed
Pali Rohár <[email protected]>
ppp: Fix generating ppp unit id when ifname is not specified
Luke D Jones <[email protected]>
ALSA: hda: Add quirk for ASUS Flow x13
Jeremy Szu <[email protected]>
ALSA: hda/realtek: fix mute/micmute LEDs for HP ProBook 650 G8 Notebook PC
Takashi Iwai <[email protected]>
ALSA: pcm: Fix mmap breakage without explicit buffer setup
Longfang Liu <[email protected]>
USB:ehci:fix Kunpeng920 ehci hardware problem
Hans de Goede <[email protected]>
vboxsf: Make vboxsf_dir_create() return the handle for the created file
Hans de Goede <[email protected]>
vboxsf: Honor excl flag to the dir-inode create op
Adam Ford <[email protected]>
arm64: dts: renesas: beacon: Fix USB ref clock references
Adam Ford <[email protected]>
arm64: dts: renesas: beacon: Fix USB extal reference
Adam Ford <[email protected]>
arm64: dts: renesas: rzg2: Add usb2_clksel to RZ/G2 M/N/H
Mike Rapoport <[email protected]>
mm: make zone_to_nid() and zone_set_nid() available for DISCONTIGMEM
Reinette Chatre <[email protected]>
Revert "selftests/resctrl: Use resctrl/info for feature detection"
Daniel Borkmann <[email protected]>
bpf: Add lockdown check for probe_write_user helper
Daniel Borkmann <[email protected]>
bpf: Add _kernel suffix to internal lockdown_bpf_read
Allen Pais <[email protected]>
firmware: tee_bnxt: Release TEE shm, session, and context during kexec
Sumit Garg <[email protected]>
tee: Correct inappropriate usage of TEE_SHM_DMA_BUF flag
Sean Christopherson <[email protected]>
KVM: SVM: Fix off-by-one indexing when nullifying last used SEV VMCB
-------------
Diffstat:
Makefile | 4 +- .../boot/dts/renesas/beacon-renesom-baseboard.dtsi | 4 +- .../arm64/boot/dts/renesas/beacon-renesom-som.dtsi | 6 ++- arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 15 +++++++ arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 15 +++++++ arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 15 +++++++ arch/x86/kvm/svm/sev.c | 2 +- drivers/firmware/broadcom/tee_bnxt_fw.c | 14 ++++-- drivers/net/ethernet/xilinx/xilinx_emaclite.c | 5 +-- drivers/net/ppp/ppp_generic.c | 19 ++++++-- drivers/tee/optee/call.c | 2 +- drivers/tee/optee/core.c | 3 +- drivers/tee/optee/rpc.c | 5 ++- drivers/tee/optee/shm_pool.c | 8 +++- drivers/tee/tee_shm.c | 4 +- drivers/usb/host/ehci-pci.c | 3 ++ fs/namespace.c | 42 +++++++++++------ fs/vboxsf/dir.c | 28 +++++++----- include/linux/mmzone.h | 4 +- include/linux/security.h | 3 +- include/linux/tee_drv.h | 1 + kernel/bpf/helpers.c | 4 +- kernel/trace/bpf_trace.c | 13 +++--- security/security.c | 3 +- sound/core/pcm_native.c | 5 ++- sound/pci/hda/patch_realtek.c | 2 + tools/testing/selftests/resctrl/resctrl.h | 6 +-- tools/testing/selftests/resctrl/resctrlfs.c | 52 +++++----------------- 28 files changed, 178 insertions(+), 109 deletions(-)
Greg Kroah-Hartman
maintainerPATCH 1/19 KVM: SVM: Fix off-by-one indexing when nullifying last used SEV VMCB
From: Sean Christopherson <[email protected]>
[ Upstream commit 179c6c27bf487273652efc99acd3ba512a23c137 ]
Use the raw ASID, not ASID-1, when nullifying the last used VMCB when freeing an SEV ASID. The consumer, pre_sev_run(), indexes the array by the raw ASID, thus KVM could get a false negative when checking for a different VMCB if KVM manages to reallocate the same ASID+VMCB combo for a new VM.
Note, this cannot cause a functional issue _in the current code_, as pre_sev_run() also checks which pCPU last did VMRUN for the vCPU, and last_vmentry_cpu is initialized to -1 during vCPU creation, i.e. is guaranteed to mismatch on the first VMRUN. However, prior to commit 8a14fe4f0c54 ("kvm: x86: Move last_cpu into kvm_vcpu_arch as last_vmentry_cpu"), SVM tracked pCPU on its own and zero-initialized the last_cpu variable. Thus it's theoretically possible that older versions of KVM could miss a TLB flush if the first VMRUN is on pCPU0 and the ASID and VMCB exactly match those of a prior VM.
--- arch/x86/kvm/svm/sev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/x86/kvm/svm/sev.c +1 -1
@@ -124,7 +124,7 @@ static void sev_asid_free(int asid)for_each_possible_cpu (cpu) { sd =per_cpu (svm_data, cpu); - sd->sev_vmcbs[pos] =NULL ; + sd->sev_vmcbs[asid] =NULL ; }mutex_unlock (&sev_bitmap_lock);
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 2/19 tee: Correct inappropriate usage of TEE_SHM_DMA_BUF flag
In reply to Greg Kroah-HartmanFrom: Sumit Garg <[email protected]>
[ Upstream commit 376e4199e327a5cf29b8ec8fb0f64f3d8b429819 ]
Currently TEE_SHM_DMA_BUF flag has been inappropriately used to not register shared memory allocated for private usage by underlying TEE
driver: OP-TEE in this case. So rather add a new flag as TEE_SHM_PRIV that can be utilized by underlying TEE drivers for private allocation and usage of shared memory.
With this corrected, allow tee_shm_alloc_kernel_buf() to allocate a shared memory region without the backing of dma-buf.
--- drivers/tee/optee/call.c | 2 +- drivers/tee/optee/core.c | 3 ++- drivers/tee/optee/rpc.c | 5 +++-- drivers/tee/optee/shm_pool.c | 8 ++++++-- drivers/tee/tee_shm.c | 4 ++-- include/linux/tee_drv.h | 1 + 6 files changed, 15 insertions(+), 8 deletions(-)
drivers/tee/optee/call.c +1 -1
@@ -181,7 +181,7 @@ static struct tee_shm *get_msg_arg(struct tee_context *ctx, size_t num_params,struct optee_msg_arg *ma; shm =tee_shm_alloc (ctx,OPTEE_MSG_GET_ARG_SIZE (num_params), -TEE_SHM_MAPPED ); +TEE_SHM_MAPPED |TEE_SHM_PRIV );if (IS_ERR (shm))return shm;
drivers/tee/optee/core.c +2 -1
@@ -278,7 +278,8 @@ static void optee_release(struct tee_context *ctx)if (!ctxdata)return ; - shm =tee_shm_alloc (ctx,sizeof (struct optee_msg_arg ),TEE_SHM_MAPPED ); + shm =tee_shm_alloc (ctx,sizeof (struct optee_msg_arg ), +TEE_SHM_MAPPED |TEE_SHM_PRIV );if (!IS_ERR (shm)) { arg =tee_shm_get_va (shm,0 );/*
drivers/tee/optee/rpc.c +3 -2
@@ -313,7 +313,7 @@ static void handle_rpc_func_cmd_shm_alloc(struct tee_context *ctx, shm =cmd_alloc_suppl (ctx, sz);break ;case OPTEE_MSG_RPC_SHM_TYPE_KERNEL : - shm =tee_shm_alloc (ctx, sz,TEE_SHM_MAPPED ); + shm =tee_shm_alloc (ctx, sz,TEE_SHM_MAPPED |TEE_SHM_PRIV );break ;default : arg->ret =TEEC_ERROR_BAD_PARAMETERS ;
@@ -501,7 +501,8 @@ void optee_handle_rpc(struct tee_context *ctx, struct optee_rpc_param *param,switch (OPTEE_SMC_RETURN_GET_RPC_FUNC (param->a0)) {case OPTEE_SMC_RPC_FUNC_ALLOC : - shm =tee_shm_alloc (ctx, param->a1,TEE_SHM_MAPPED ); + shm =tee_shm_alloc (ctx, param->a1, +TEE_SHM_MAPPED |TEE_SHM_PRIV );if (!IS_ERR (shm) && !tee_shm_get_pa (shm,0 , &pa)) {reg_pair_from_64 (¶m->a1, ¶m->a2, pa); reg_pair_from_64(¶m->a4, ¶m->a5,
drivers/tee/optee/shm_pool.c +6 -2
@@ -27,7 +27,11 @@ static int pool_op_alloc(struct tee_shm_pool_mgr *poolm, shm->paddr =page_to_phys (page); shm->size =PAGE_SIZE << order; -if (shm->flags &TEE_SHM_DMA_BUF ) { +/* +* Shared memory private to the OP-TEE driver doesn't need +* to be registered with OP-TEE. +*/ +if (!(shm->flags &TEE_SHM_PRIV )) {unsigned int nr_pages =1 << order, i;struct page **pages;
@@ -60,7 +64,7 @@ err:static void pool_op_free (struct tee_shm_pool_mgr *poolm,struct tee_shm *shm) { -if (shm->flags &TEE_SHM_DMA_BUF ) +if (!(shm->flags &TEE_SHM_PRIV ))optee_shm_unregister (shm->ctx, shm);free_pages ((unsigned long )shm->kaddr,get_order (shm->size));
drivers/tee/tee_shm.c +2 -2
@@ -117,7 +117,7 @@ struct tee_shm *tee_shm_alloc(struct tee_context *ctx, size_t size, u32 flags)return ERR_PTR (-EINVAL ); } -if ((flags & ~(TEE_SHM_MAPPED |TEE_SHM_DMA_BUF ))) { +if ((flags & ~(TEE_SHM_MAPPED |TEE_SHM_DMA_BUF |TEE_SHM_PRIV ))) {dev_err (teedev->dev.parent,"invalid shm flags 0x%x" , flags);return ERR_PTR (-EINVAL ); }
@@ -207,7 +207,7 @@ EXPORT_SYMBOL_GPL(tee_shm_alloc);*/ struct tee_shm *tee_shm_alloc_kernel_buf (struct tee_context *ctx,size_t size) { -return tee_shm_alloc (ctx, size,TEE_SHM_MAPPED |TEE_SHM_DMA_BUF ); +return tee_shm_alloc (ctx, size,TEE_SHM_MAPPED ); }EXPORT_SYMBOL_GPL (tee_shm_alloc_kernel_buf);
include/linux/tee_drv.h +1 -0
@@ -27,6 +27,7 @@#define TEE_SHM_USER_MAPPED BIT(4)/* Memory mapped in user space */ #define TEE_SHM_POOL BIT(5)/* Memory allocated from pool */ #define TEE_SHM_KERNEL_MAPPED BIT(6)/* Memory mapped in kernel space */ +#define TEE_SHM_PRIV BIT(7)/* Memory private to TEE driver */ struct device ;struct tee_device ;
Signature · 1 line
2.30.2
Greg Kroah-Hartman
maintainerPATCH 3/19 firmware: tee_bnxt: Release TEE shm, session, and context during kexec
In reply to Greg Kroah-HartmanFrom: Allen Pais <[email protected]>
[ Upstream commit 914ab19e471d8fb535ed50dff108b0a615f3c2d8 ]
Implement a .shutdown hook that will be called during a kexec operation so that the TEE shared memory, session, and context that were set up during .probe can be properly freed/closed.
Additionally, don't use dma-buf backed shared memory for the fw_shm_pool. dma-buf backed shared memory cannot be reliably freed and unregistered during a kexec operation even when tee_shm_free() is called on the shm from a .shutdown hook. The problem occurs because dma_buf_put() calls fput() which then uses task_work_add(), with the TWA_RESUME parameter, to queue tee_shm_release() to be called before the current task returns to user mode. However, the current task never returns to user mode before the kexec completes so the memory is never freed nor unregistered.
Use tee_shm_alloc_kernel_buf() to avoid dma-buf backed shared memory allocation so that tee_shm_free() can directly call tee_shm_release(). This will ensure that the shm can be freed and unregistered during a kexec operation.
--- drivers/firmware/broadcom/tee_bnxt_fw.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)
drivers/firmware/broadcom/tee_bnxt_fw.c +11 -3
@@ -212,10 +212,9 @@ static int tee_bnxt_fw_probe(struct devi pvt_data.dev = dev; - fw_shm_pool =tee_shm_alloc (pvt_data.ctx,MAX_SHM_MEM_SZ , -TEE_SHM_MAPPED |TEE_SHM_DMA_BUF ); + fw_shm_pool =tee_shm_alloc_kernel_buf (pvt_data.ctx,MAX_SHM_MEM_SZ );if (IS_ERR (fw_shm_pool)) { -dev_err (pvt_data.dev,"tee_shm_alloc failed\n" ); +dev_err (pvt_data.dev,"tee_shm_alloc_kernel_buf failed\n" ); err =PTR_ERR (fw_shm_pool); goto out_sess; }
@@ -242,6 +241,14 @@ static int tee_bnxt_fw_remove(struct devreturn 0 ; } +static void tee_bnxt_fw_shutdown (struct device *dev) +{ +tee_shm_free (pvt_data.fw_shm_pool); +tee_client_close_session (pvt_data.ctx, pvt_data.session_id); +tee_client_close_context (pvt_data.ctx); + pvt_data.ctx =NULL ; +} +static const struct tee_client_device_id tee_bnxt_fw_id_table[] = { {UUID_INIT (0x6272636D ,0x2019 ,0x0716 ,0x42 ,0x43 ,0x4D ,0x5F ,0x53 ,0x43 ,0x48 ,0x49 )},
@@ -257,6 +264,7 @@ static struct tee_client_driver tee_bnxt .bus = &tee_bus_type, .probe = tee_bnxt_fw_probe, .remove = tee_bnxt_fw_remove, + .shutdown = tee_bnxt_fw_shutdown, }, };
Greg Kroah-Hartman
maintainerPATCH 4/19 bpf: Add _kernel suffix to internal lockdown_bpf_read
In reply to Greg Kroah-HartmanFrom: Daniel Borkmann <[email protected]>
commit 71330842ff93ae67a066c1fa68d75672527312fa upstream.
Rename LOCKDOWN_BPF_READ into LOCKDOWN_BPF_READ_KERNEL so we have naming more consistent with a LOCKDOWN_BPF_WRITE_USER option that we are adding.
--- include/linux/security.h | 2 +- kernel/bpf/helpers.c | 4 ++-- kernel/trace/bpf_trace.c | 8 ++++---- security/security.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-)
include/linux/security.h +1 -1
@@ -123,7 +123,7 @@ enum lockdown_reason {LOCKDOWN_INTEGRITY_MAX ,LOCKDOWN_KCORE ,LOCKDOWN_KPROBES , -LOCKDOWN_BPF_READ , +LOCKDOWN_BPF_READ_KERNEL ,LOCKDOWN_PERF ,LOCKDOWN_TRACEFS , LOCKDOWN_XMON_RW,
kernel/bpf/helpers.c +2 -2
@@ -729,12 +729,12 @@ bpf_base_func_proto(enum bpf_func_id funcase BPF_FUNC_probe_read_user:return &bpf_probe_read_user_proto;case BPF_FUNC_probe_read_kernel: -return security_locked_down (LOCKDOWN_BPF_READ ) <0 ? +return security_locked_down (LOCKDOWN_BPF_READ_KERNEL ) <0 ?NULL : &bpf_probe_read_kernel_proto;case BPF_FUNC_probe_read_user_str:return &bpf_probe_read_user_str_proto;case BPF_FUNC_probe_read_kernel_str: -return security_locked_down (LOCKDOWN_BPF_READ ) <0 ? +return security_locked_down (LOCKDOWN_BPF_READ_KERNEL ) <0 ?NULL : &bpf_probe_read_kernel_str_proto;case BPF_FUNC_snprintf_btf:return &bpf_snprintf_btf_proto;
kernel/trace/bpf_trace.c +4 -4
@@ -1281,19 +1281,19 @@ bpf_tracing_func_proto(enum bpf_func_idcase BPF_FUNC_probe_read_user:return &bpf_probe_read_user_proto;case BPF_FUNC_probe_read_kernel: -return security_locked_down (LOCKDOWN_BPF_READ ) <0 ? +return security_locked_down (LOCKDOWN_BPF_READ_KERNEL ) <0 ?NULL : &bpf_probe_read_kernel_proto;case BPF_FUNC_probe_read_user_str:return &bpf_probe_read_user_str_proto;case BPF_FUNC_probe_read_kernel_str: -return security_locked_down (LOCKDOWN_BPF_READ ) <0 ? +return security_locked_down (LOCKDOWN_BPF_READ_KERNEL ) <0 ?NULL : &bpf_probe_read_kernel_str_proto;#ifdef CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE case BPF_FUNC_probe_read: -return security_locked_down (LOCKDOWN_BPF_READ ) <0 ? +return security_locked_down (LOCKDOWN_BPF_READ_KERNEL ) <0 ?NULL : &bpf_probe_read_compat_proto;case BPF_FUNC_probe_read_str: -return security_locked_down (LOCKDOWN_BPF_READ ) <0 ? +return security_locked_down (LOCKDOWN_BPF_READ_KERNEL ) <0 ?NULL : &bpf_probe_read_compat_str_proto;#endif #ifdef CONFIG_CGROUPS
security/security.c +1 -1
@@ -61,7 +61,7 @@ const char *const lockdown_reasons[LOCKD [LOCKDOWN_INTEGRITY_MAX] = "integrity", [LOCKDOWN_KCORE] = "/proc/kcore access", [LOCKDOWN_KPROBES] = "use of kprobes", - [LOCKDOWN_BPF_READ] = "use of bpf to read kernel RAM", + [LOCKDOWN_BPF_READ_KERNEL] = "use of bpf to read kernel RAM", [LOCKDOWN_PERF] = "unsafe use of perf", [LOCKDOWN_TRACEFS] = "use of tracefs", [LOCKDOWN_XMON_RW] = "xmon read and write access",
Re: [PATCH 5.10 04/19] bpf: Add _kernel suffix to internal lockdown_bpf_read
Hi!
Quoted 7 lines
From: Daniel Borkmann <[email protected]>
commit
71330842ff93ae67a066c1fa68d75672527312faupstream.Rename
LOCKDOWN_BPF_READintoLOCKDOWN_BPF_READ_KERNELso we have naming more consistent with aLOCKDOWN_BPF_WRITE_USERoption that we are adding.
As far as I can tell, next bpf patch does not depend on this one and we don't need it in 5.10. (Likely same situation with 5.13).
Best regards,
Pavel
Signature · 1 line
http://www.livejournal.com/~pavelmachek
Re: [PATCH 5.10 04/19] bpf: Add _kernel suffix to internal lockdown_bpf_read
Hi Pavel,
Quoted 10 lines · Pavel Machek
Quoted 7 lines
From: Daniel Borkmann <[email protected]>
commit
71330842ff93ae67a066c1fa68d75672527312faupstream.Rename
LOCKDOWN_BPF_READintoLOCKDOWN_BPF_READ_KERNELso we have naming more consistent with aLOCKDOWN_BPF_WRITE_USERoption that we are adding.As far as I can tell, next bpf patch does not depend on this one and we don't need it in 5.10. (Likely same situation with 5.13).
Yeah, it's nice to have for consistency given also small as well, but also fully okay to drop it as there shouldn't be any conflict.
Thanks,
Daniel
Greg Kroah-Hartman
maintainerRe: [PATCH 5.10 04/19] bpf: Add _kernel suffix to internal lockdown_bpf_read
Quoted 11 lines · Daniel Borkmann
Hi Pavel,
Quoted 8 lines · Pavel Machek
Quoted 7 lines
From: Daniel Borkmann <[email protected]>
commit
71330842ff93ae67a066c1fa68d75672527312faupstream.Rename
LOCKDOWN_BPF_READintoLOCKDOWN_BPF_READ_KERNELso we have naming more consistent with aLOCKDOWN_BPF_WRITE_USERoption that we are adding.
Quoted 6 lines
Quoted 2 lines
As far as I can tell, next bpf patch does not depend on this one and we don't need it in 5.10. (Likely same situation with 5.13).
Yeah, it's nice to have for consistency given also small as well, but also fully okay to drop it as there shouldn't be any conflict.
Ok, now dropped, thanks.
greg k-h
Greg Kroah-Hartman
maintainerPATCH 5/19 bpf: Add lockdown check for probe_write_user helper
In reply to Greg Kroah-HartmanFrom: Daniel Borkmann <[email protected]>
commit 51e1bb9eeaf7868db56e58f47848e364ab4c4129 upstream.
Back then, commit 96ae52279594 ("bpf: Add bpf_probe_write_user BPF helper to be called in tracers") added the bpf_probe_write_user() helper in order to allow to override user space memory. Its original goal was to have a facility to "debug, divert, and manipulate execution of semi-cooperative processes" under CAP_SYS_ADMIN. Write to kernel was explicitly disallowed since it would otherwise tamper with its integrity.
One use case was shown in cf9b1199de27 ("samples/bpf: Add test/example of using bpf_probe_write_user bpf helper") where the program DNATs traffic at the time of connect(2) syscall, meaning, it rewrites the arguments to a syscall while they're still in userspace, and before the syscall has a chance to copy the argument into kernel space. These days we have better mechanisms in BPF for achieving the same (e.g. for load-balancers), but without having to write to userspace memory.
Of course the bpf_probe_write_user() helper can also be used to abuse many other things for both good or bad purpose. Outside of BPF, there is a similar mechanism for ptrace(2) such as PTRACE_PEEK{TEXT,DATA} and PTRACE_POKE{TEXT,DATA}, but would likely require some more effort. Commit 96ae52279594 explicitly dedicated the helper for experimentation purpose only. Thus, move the helper's availability behind a newly added LOCKDOWN_BPF_WRITE_USER lockdown knob so that the helper is disabled under the "integrity" mode. More fine-grained control can be implemented also from LSM side with this change.
--- include/linux/security.h | 1 + kernel/trace/bpf_trace.c | 5 +++-- security/security.c | 1 + 3 files changed, 5 insertions(+), 2 deletions(-)
include/linux/security.h +1 -0
@@ -120,6 +120,7 @@ enum lockdown_reason {LOCKDOWN_MMIOTRACE ,LOCKDOWN_DEBUGFS ,LOCKDOWN_XMON_WR , +LOCKDOWN_BPF_WRITE_USER ,LOCKDOWN_INTEGRITY_MAX ,LOCKDOWN_KCORE , LOCKDOWN_KPROBES,
kernel/trace/bpf_trace.c +3 -2
@@ -1272,12 +1272,13 @@ bpf_tracing_func_proto(enum bpf_func_idreturn &bpf_get_numa_node_id_proto;case BPF_FUNC_perf_event_read:return &bpf_perf_event_read_proto; -case BPF_FUNC_probe_write_user: -return bpf_get_probe_write_proto ();case BPF_FUNC_current_task_under_cgroup:return &bpf_current_task_under_cgroup_proto;case BPF_FUNC_get_prandom_u32:return &bpf_get_prandom_u32_proto; +case BPF_FUNC_probe_write_user: +return security_locked_down (LOCKDOWN_BPF_WRITE_USER ) <0 ? +NULL :bpf_get_probe_write_proto ();case BPF_FUNC_probe_read_user:return &bpf_probe_read_user_proto;case BPF_FUNC_probe_read_kernel:
security/security.c +1 -0
@@ -58,6 +58,7 @@ const char *const lockdown_reasons[LOCKD [LOCKDOWN_MMIOTRACE] = "unsafe mmio", [LOCKDOWN_DEBUGFS] = "debugfs access", [LOCKDOWN_XMON_WR] = "xmon write access", + [LOCKDOWN_BPF_WRITE_USER] = "use of bpf to write user RAM", [LOCKDOWN_INTEGRITY_MAX] = "integrity", [LOCKDOWN_KCORE] = "/proc/kcore access", [LOCKDOWN_KPROBES] = "use of kprobes",
Greg Kroah-Hartman
maintainerPATCH 6/19 Revert "selftests/resctrl: Use resctrl/info for feature detection"
In reply to Greg Kroah-HartmanFrom: Reinette Chatre <[email protected]>
This reverts commit 19eaad1400eab34e97ec4467cd2ab694d1caf20c which is ee0415681eb661efa1eb2db7acc263f2c7df1e23 upstream.
This commit is not a stable candidate and was backported without needed dependencies that results in the resctrl tests unable to compile.
--- tools/testing/selftests/resctrl/resctrl.h | 6 --- tools/testing/selftests/resctrl/resctrlfs.c | 50 +++++----------------------- 2 files changed, 11 insertions(+), 45 deletions(-)
tools/testing/selftests/resctrl/resctrl.h +1 -5
@@ -28,10 +28,6 @@#define RESCTRL_PATH "/sys/fs/resctrl"#define PHYS_ID_PATH "/sys/devices/system/cpu/cpu"#define CBM_MASK_PATH "/sys/fs/resctrl/info" -#define L3_PATH "/sys/fs/resctrl/info/L3" -#define MB_PATH "/sys/fs/resctrl/info/MB" -#define L3_MON_PATH "/sys/fs/resctrl/info/L3_MON" -#define L3_MON_FEATURES_PATH "/sys/fs/resctrl/info/L3_MON/mon_features"#define PARENT_EXIT (err_msg) \ do { \
@@ -83,7 +79,7 @@ int remount_resctrlfs(bool mum_resctrlfsint get_resource_id (int cpu_no,int *resource_id);int umount_resctrlfs (void );int validate_bw_report_request (char *bw_report); -bool validate_resctrl_feature_request (const char *resctrl_val); +bool validate_resctrl_feature_request (char *resctrl_val);char *fgrep (FILE *inf,const char *str);int taskset_benchmark (pid_t bm_pid,int cpu_no);void run_benchmark (int signum,siginfo_t *info,void *ucontext);
tools/testing/selftests/resctrl/resctrlfs.c +10 -40
66 lines not on this page · raw message
Greg Kroah-Hartman
maintainerPATCH 7/19 mm: make zone_to_nid() and zone_set_nid() available for DISCONTIGMEM
In reply to Greg Kroah-HartmanFrom: Mike Rapoport <[email protected]>
Since the commit ce6ee46e0f39 ("mm/page_alloc: fix memory map initialization for descending nodes") initialization of the memory map relies on availability of zone_to_nid() and zone_set_nid methods to link struct page to a node.
But in 5.10 zone_to_nid() is only defined for NUMA, but not for DISCONTIGMEM which causes crashes on m68k systems with two memory banks.
For instance on ARAnyM with both ST-RAM and FastRAM atari_defconfig build produces the following crash:
Unable to handle kernel access at virtual address (ptrval) Oops: 00000000 Modules linked in: PC: [<0005fbbc>] bpf_prog_alloc_no_stats+0x5c/0xba SR: 2200 SP: (ptrval) a2: 016daa90 d0: 0000000c d1: 00000200 d2: 00000001 d3: 00000cc0 d4: 016d1f80 d5: 00034da6 a0: 305c2800 a1: 305c2a00
Process swapper (pid: 1, task=(ptrval))
Frame format=7 eff addr=31800000 ssw=0445 faddr=31800000 wb 1 stat/addr/data: 0000 00000000 00000000
wb 2 stat/addr/data: 0000 00000000 00000000
wb 3 stat/addr/data: 00c5 31800000 00000001 push data: 00000000 00000000 00000000 00000000 Stack from 3058fec8:
00000dc0 00000000 004addc2 3058ff16 0005fc34 00000238 00000000 00000210
004addc2 3058ff16 00281ae0 00000238 00000000 00000000 004addc2 004bc7ec
004aea9e 0048b0c0 3058ff16 00460042 004ba4d2 3058ff8c 004ade6a 0000007e
0000210e 0000007e 00000002 016d1f80 00034da6 000020b4 00000000 004b4764
004bc7ec 00000000 004b4760 004bc7c0 004b4744 001e4cb2 00010001 016d1fe5
016d1ff0 004994d2 003e1589 016d1f80 00412b8c 0000007e 00000001 00000001
Call Trace: [<004addc2>] sock_init+0x0/0xaa
[<0005fc34>] bpf_prog_alloc+0x1a/0x66
[<004addc2>] sock_init+0x0/0xaa
[<00281ae0>] bpf_prog_create+0x2e/0x7c
[<004addc2>] sock_init+0x0/0xaa
[<004aea9e>] ptp_classifier_init+0x22/0x44
[<004ade6a>] sock_init+0xa8/0xaa
[<0000210e>] do_one_initcall+0x5a/0x150
[<00034da6>] parse_args+0x0/0x208
[<000020b4>] do_one_initcall+0x0/0x150
[<001e4cb2>] strcpy+0x0/0x1c
[<00010001>] stwotoxd+0x5/0x1c
[<004994d2>] kernel_init_freeable+0x154/0x1a6
[<001e4cb2>] strcpy+0x0/0x1c
[<0049951a>] kernel_init_freeable+0x19c/0x1a6
[<004addc2>] sock_init+0x0/0xaa
[<00321510>] kernel_init+0x0/0xd8
[<00321518>] kernel_init+0x8/0xd8
[<00321510>] kernel_init+0x0/0xd8
[<00002890>] ret_from_kernel_thread+0xc/0x14
Code: 204b 200b 4cdf 180c 4e75 700c e0aa 3682 <2748> 001c 214b 0140 022b
ffbf 0002 206b 001c 2008 0680 0000 0108 2140 0108 2140
Disabling lock debugging due to kernel taint
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000bUsing CONFIG_NEED_MULTIPLE_NODES rather than CONFIG_NUMA to guard definitions of zone_to_nid() and zone_set_nid() fixes the issue.
--- include/linux/mmzone.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
include/linux/mmzone.h +2 -2
@@ -445,7 +445,7 @@ struct zone {*/ long lowmem_reserve[MAX_NR_ZONES ]; -#ifdef CONFIG_NUMA +#ifdef CONFIG_NEED_MULTIPLE_NODES int node;#endif struct pglist_data *zone_pgdat;
@@ -896,7 +896,7 @@ static inline bool populated_zone(structreturn zone->present_pages; } -#ifdef CONFIG_NUMA +#ifdef CONFIG_NEED_MULTIPLE_NODES static inline int zone_to_nid (struct zone *zone) {return zone->node;
Greg Kroah-Hartman
maintainerPATCH 8/19 arm64: dts: renesas: rzg2: Add usb2_clksel to RZ/G2 M/N/H
In reply to Greg Kroah-HartmanFrom: Adam Ford <[email protected]>
commit e1076ce07b7736aed269c5d8154f2442970d9137 upstream
Per the reference manual for the RZ/G Series, 2nd Generation, the RZ/G2M, RZ/G2N, and RZ/G2H have a bit that can be set to choose between a crystal oscillator and an external oscillator.
Because only boards that need this should enable it, it's marked as disabled by default for backwards compatibility with existing boards.
--- arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 15 +++++++++++++++ arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 15 +++++++++++++++ arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 15 +++++++++++++++ 3 files changed, 45 insertions(+)
arch/arm64/boot/dts/renesas/r8a774a1.dtsi +15 -0
@@ -836,6 +836,21 @@ status = "disabled"; }; + usb2_clksel: clock-controller@e6590630 { + compatible = "renesas,r8a774a1-rcar-usb2-clock-sel", + "renesas,rcar-gen3-usb2-clock-sel"; + reg = <0 0xe6590630 0 0x02>; + clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, + <&usb_extal_clk>, <&usb3s0_clk>; + clock-names = "ehci_ohci", "hs-usb-if", + "usb_extal", "usb_xtal"; + #clock-cells = <0>; + power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>; + resets = <&cpg 703>, <&cpg 704>; + reset-names = "ehci_ohci", "hs-usb-if"; + status = "disabled"; + }; + usb_dmac0: dma-controller@e65a0000 { compatible = "renesas,r8a774a1-usb-dmac", "renesas,usb-dmac";
arch/arm64/boot/dts/renesas/r8a774b1.dtsi +15 -0
@@ -709,6 +709,21 @@ status = "disabled"; }; + usb2_clksel: clock-controller@e6590630 { + compatible = "renesas,r8a774b1-rcar-usb2-clock-sel", + "renesas,rcar-gen3-usb2-clock-sel"; + reg = <0 0xe6590630 0 0x02>; + clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, + <&usb_extal_clk>, <&usb3s0_clk>; + clock-names = "ehci_ohci", "hs-usb-if", + "usb_extal", "usb_xtal"; + #clock-cells = <0>; + power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>; + resets = <&cpg 703>, <&cpg 704>; + reset-names = "ehci_ohci", "hs-usb-if"; + status = "disabled"; + }; + usb_dmac0: dma-controller@e65a0000 { compatible = "renesas,r8a774b1-usb-dmac", "renesas,usb-dmac";
arch/arm64/boot/dts/renesas/r8a774e1.dtsi +15 -0
@@ -890,6 +890,21 @@ status = "disabled"; }; + usb2_clksel: clock-controller@e6590630 { + compatible = "renesas,r8a774e1-rcar-usb2-clock-sel", + "renesas,rcar-gen3-usb2-clock-sel"; + reg = <0 0xe6590630 0 0x02>; + clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, + <&usb_extal_clk>, <&usb3s0_clk>; + clock-names = "ehci_ohci", "hs-usb-if", + "usb_extal", "usb_xtal"; + #clock-cells = <0>; + power-domains = <&sysc R8A774E1_PD_ALWAYS_ON>; + resets = <&cpg 703>, <&cpg 704>; + reset-names = "ehci_ohci", "hs-usb-if"; + status = "disabled"; + }; + usb_dmac0: dma-controller@e65a0000 { compatible = "renesas,r8a774e1-usb-dmac", "renesas,usb-dmac";
Greg Kroah-Hartman
maintainerPATCH 9/19 arm64: dts: renesas: beacon: Fix USB extal reference
In reply to Greg Kroah-HartmanFrom: Adam Ford <[email protected]>
commit 56bc54496f5d6bc638127bfc9df3742cbf0039e7 upstream
The USB extal clock reference isn't associated to a crystal, it's associated to a programmable clock, so remove the extal reference, add the usb2_clksel. Since usb_extal is referenced by the versaclock, reference it here so the usb2_clksel can get the proper clock speed of 50MHz.
--- arch/arm64/boot/dts/renesas/beacon-renesom-som.dtsi | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
arch/arm64/boot/dts/renesas/beacon-renesom-som.dtsi +4 -2
@@ -295,8 +295,10 @@ status = "okay"; }; -&usb_extal_clk { - clock-frequency = <50000000>; +&usb2_clksel { + clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, + <&versaclock5 3>, <&usb3s0_clk>; + status = "okay"; }; &usb3s0_clk {
Greg Kroah-Hartman
maintainerPATCH 10/19 arm64: dts: renesas: beacon: Fix USB ref clock references
In reply to Greg Kroah-HartmanFrom: Adam Ford <[email protected]>
commit ebc666f39ff67a01e748c34d670ddf05a9e45220 upstream
The RZ/G2 boards expect there to be an external clock reference for USB2 EHCI controllers. For the Beacon boards, this reference clock is controlled by a programmable versaclock. Because the RZ/G2 family has a special clock driver when using an external clock, the third clock reference in the EHCI node needs to point to this special clock, called usb2_clksel.
Since the usb2_clksel does not keep the usb_extal clock enabled, the 4th clock entry for the EHCI nodes needs to reference it to keep the clock running and make USB functional.
--- arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi +2 -2
@@ -271,12 +271,12 @@ &ehci0 { dr_mode = "otg"; status = "okay"; - clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>; + clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, <&usb2_clksel>, <&versaclock5 3>; }; &ehci1 { status = "okay"; - clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>; + clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>, <&usb2_clksel>, <&versaclock5 3>; }; &hdmi0 {
Greg Kroah-Hartman
maintainerPATCH 11/19 vboxsf: Honor excl flag to the dir-inode create op
In reply to Greg Kroah-HartmanFrom: Hans de Goede <[email protected]>
commit cc3ddee97cff034cea4d095de4a484c92a219bf5 upstream
Honor the excl flag to the dir-inode create op, instead of behaving as if it is always set.
Note the old behavior still worked most of the time since a non-exclusive open only calls the create op, if there is a race and the file is created between the dentry lookup and the calling of the create call.
While at it change the type of the is_dir parameter to the vboxsf_dir_create() helper from an int to a bool, to be consistent with the use of bool for the excl parameter.
--- fs/vboxsf/dir.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-)
fs/vboxsf/dir.c +9 -7
@@ -253,7 +253,7 @@ static int vboxsf_dir_instantiate(struct }static int vboxsf_dir_create (struct inode *parent,struct dentry *dentry, -umode_t mode,int is_dir) +umode_t mode,bool is_dir,bool excl) {struct vboxsf_inode *sf_parent_i =VBOXSF_I (parent);struct vboxsf_sbi *sbi =VBOXSF_SBI (parent->i_sb);
@@ -261,10 +261,12 @@ static int vboxsf_dir_create(struct inodint err; params.handle =SHFL_HANDLE_NIL ; - params.create_flags =SHFL_CF_ACT_CREATE_IF_NEW | -SHFL_CF_ACT_FAIL_IF_EXISTS | -SHFL_CF_ACCESS_READWRITE | - (is_dir ?SHFL_CF_DIRECTORY :0 ); + params.create_flags =SHFL_CF_ACT_CREATE_IF_NEW |SHFL_CF_ACCESS_READWRITE ; +if (is_dir) + params.create_flags |=SHFL_CF_DIRECTORY ; +if (excl) + params.create_flags |=SHFL_CF_ACT_FAIL_IF_EXISTS ; + params.info.attr.mode = (mode &0777 ) | (is_dir ?SHFL_TYPE_DIRECTORY :SHFL_TYPE_FILE ); params.info.attr.additional =SHFLFSOBJATTRADD_NOTHING ;
@@ -291,13 +293,13 @@ static int vboxsf_dir_create(struct inodstatic int vboxsf_dir_mkfile (struct inode *parent,struct dentry *dentry,umode_t mode,bool excl) { -return vboxsf_dir_create (parent, dentry, mode,0 ); +return vboxsf_dir_create (parent, dentry, mode, false, excl); }static int vboxsf_dir_mkdir (struct inode *parent,struct dentry *dentry,umode_t mode) { -return vboxsf_dir_create (parent, dentry, mode,1 ); +return vboxsf_dir_create (parent, dentry, mode, true, true); }static int vboxsf_dir_unlink (struct inode *parent,struct dentry *dentry)
Greg Kroah-Hartman
maintainerPATCH 12/19 vboxsf: Make vboxsf_dir_create() return the handle for the created file
In reply to Greg Kroah-HartmanFrom: Hans de Goede <[email protected]>
commit ab0c29687bc7a890d1a86ac376b0b0fd78b2d9b6 upstream
Make vboxsf_dir_create() optionally return the vboxsf-handle for the created file. This is a preparation patch for adding atomic_open support.
--- fs/vboxsf/dir.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-)
fs/vboxsf/dir.c +11 -7
@@ -253,7 +253,7 @@ static int vboxsf_dir_instantiate(struct }static int vboxsf_dir_create (struct inode *parent,struct dentry *dentry, -umode_t mode,bool is_dir,bool excl) +umode_t mode,bool is_dir,bool excl,u64 *handle_ret) {struct vboxsf_inode *sf_parent_i =VBOXSF_I (parent);struct vboxsf_sbi *sbi =VBOXSF_SBI (parent->i_sb);
@@ -278,28 +278,32 @@ static int vboxsf_dir_create(struct inodif (params.result !=SHFL_FILE_CREATED )return -EPERM ; -vboxsf_close (sbi->root, params.handle); - err =vboxsf_dir_instantiate (parent, dentry, ¶ms.info);if (err) -return err; + goto out;/* parent directory access/change time changed */ sf_parent_i->force_restat =1 ; -return 0 ; +out: +if (err ==0 && handle_ret) + *handle_ret = params.handle; +else +vboxsf_close (sbi->root, params.handle); + +return err; }static int vboxsf_dir_mkfile (struct inode *parent,struct dentry *dentry,umode_t mode,bool excl) { -return vboxsf_dir_create (parent, dentry, mode, false, excl); +return vboxsf_dir_create (parent, dentry, mode, false, excl,NULL ); }static int vboxsf_dir_mkdir (struct inode *parent,struct dentry *dentry,umode_t mode) { -return vboxsf_dir_create (parent, dentry, mode, true, true); +return vboxsf_dir_create (parent, dentry, mode, true, true,NULL ); }static int vboxsf_dir_unlink (struct inode *parent,struct dentry *dentry)
Re: [PATCH 5.10 12/19] vboxsf: Make vboxsf_dir_create() return the handle for the created file
Hi!
Quoted 5 lines
commit
ab0c29687bc7a890d1a86ac376b0b0fd78b2d9b6upstreamMake
vboxsf_dir_create()optionally return the vboxsf-handle for the created file. This is a preparation patch for addingatomic_opensupport.
Follow up commits using this functionality are in 5.13 but not in 5.10, so I believe we don't need this in 5.10, either?
(Plus someone familiar with the code should check if we need "vboxsf:
Honor excl flag to the dir-inode create op" in 5.10; it may have same problem).
Best regards,
Pavel
Signature · 1 line
http://www.livejournal.com/~pavelmachek
Greg Kroah-Hartman
maintainerRe: [PATCH 5.10 12/19] vboxsf: Make vboxsf_dir_create() return the handle for the created file
Quoted 10 lines · Pavel Machek
Hi!
Quoted 5 lines
commit
ab0c29687bc7a890d1a86ac376b0b0fd78b2d9b6upstreamMake
vboxsf_dir_create()optionally return the vboxsf-handle for the created file. This is a preparation patch for addingatomic_opensupport.Follow up commits using this functionality are in 5.13 but not in 5.10, so I believe we don't need this in 5.10, either?
It was asked to be backported, so I'll leave it in for now, thanks.
greg k-h
Re: [PATCH 5.10 12/19] vboxsf: Make vboxsf_dir_create() return the handle for the created file
In reply to Pavel MachekHi,
Quoted 8 lines · Pavel Machek
Hi!
Quoted 5 lines
commit
ab0c29687bc7a890d1a86ac376b0b0fd78b2d9b6upstreamMake
vboxsf_dir_create()optionally return the vboxsf-handle for the created file. This is a preparation patch for addingatomic_opensupport.
Quoted 6 lines
Follow up commits using this functionality are in 5.13 but not in 5.10, so I believe we don't need this in 5.10, either?
(Plus someone familiar with the code should check if we need "vboxsf:
Honor excl flag to the dir-inode create op" in 5.10; it may have same problem).
Actually those follow up commits fix an actual bug, so I was expecting the person who did the backport to also submit the rest of the set.
FWIW having these patches in but not the cannot hurt.
Hopefully the rest applies cleanly, I don't know.
To be clear I'm talking about also adding the following to patches to 5.10.y:
02f840f90764 ("vboxsf: Add vboxsf_[create|release]_sf_handle() helpers") 52dfd86aa568 ("vboxsf: Add support for the atomic_open directory-inode op")
I have no idea of these will apply cleanly.
Regards,
Hans
Greg Kroah-Hartman
maintainerRe: [PATCH 5.10 12/19] vboxsf: Make vboxsf_dir_create() return the handle for the created file
Quoted 25 lines · Hans de Goede
Hi,
Quoted 8 lines · Pavel Machek
Hi!
Quoted 5 lines
commit
ab0c29687bc7a890d1a86ac376b0b0fd78b2d9b6upstreamMake
vboxsf_dir_create()optionally return the vboxsf-handle for the created file. This is a preparation patch for addingatomic_opensupport.Quoted 6 lines
Follow up commits using this functionality are in 5.13 but not in 5.10, so I believe we don't need this in 5.10, either?
(Plus someone familiar with the code should check if we need "vboxsf:
Honor excl flag to the dir-inode create op" in 5.10; it may have same problem).Actually those follow up commits fix an actual bug, so I was expecting the person who did the backport to also submit the rest of the set.
FWIW having these patches in but not the cannot hurt.
Hopefully the rest applies cleanly, I don't know.
Quoted 7 lines
To be clear I'm talking about also adding the following to patches to 5.10.y:
02f840f90764("vboxsf: Add vboxsf_[create|release]_sf_handle() helpers")52dfd86aa568("vboxsf: Add support for theatomic_opendirectory-inode op")I have no idea of these will apply cleanly.
They do, now queued up, thanks.
greg k-h
Re: [PATCH 5.10 12/19] vboxsf: Make vboxsf_dir_create() return the handle for the created file
In reply to Hans de GoedeQuoted 15 lines · Hans de Goede
Hi,
Quoted 11 lines · Pavel Machek
Hi!
Quoted 5 lines
commit
ab0c29687bc7a890d1a86ac376b0b0fd78b2d9b6upstreamMake
vboxsf_dir_create()optionally return the vboxsf-handle for the created file. This is a preparation patch for addingatomic_opensupport.Follow up commits using this functionality are in 5.13 but not in 5.10, so I believe we don't need this in 5.10, either?
Quoted 6 lines
Quoted 3 lines
(Plus someone familiar with the code should check if we need "vboxsf:
Honor excl flag to the dir-inode create op" in 5.10; it may have same problem).Actually those follow up commits fix an actual bug, so I was expecting the person who did the backport to also submit the rest of the set.
I only track Greg's failed messages when I find time for stable and this one was one of those. So, no idea who has originally requested this and why were the other two not requested.
Signature · 2 lines
Regards Sudip
Re: [PATCH 5.10 12/19] vboxsf: Make vboxsf_dir_create() return the handle for the created file
Hi,
Quoted 20 lines · Sudip Mukherjee
Quoted 19 lines · Hans de Goede
Hi,
Quoted 14 lines · Pavel Machek
Hi!
Quoted 5 lines
commit
ab0c29687bc7a890d1a86ac376b0b0fd78b2d9b6upstreamMake
vboxsf_dir_create()optionally return the vboxsf-handle for the created file. This is a preparation patch for addingatomic_opensupport.Follow up commits using this functionality are in 5.13 but not in 5.10, so I believe we don't need this in 5.10, either?
(Plus someone familiar with the code should check if we need "vboxsf:
Honor excl flag to the dir-inode create op" in 5.10; it may have same problem).
Quoted 6 lines
Quoted 2 lines
Actually those follow up commits fix an actual bug, so I was expecting the person who did the backport to also submit the rest of the set.
I only track Greg's failed messages when I find time for stable and this one was one of those. So, no idea who has originally requested this and why were the other two not requested.
I understand, thank you for backporting the 2 failing commits.
Regards,
Hans
Greg Kroah-Hartman
maintainerPATCH 13/19 USB:ehci:fix Kunpeng920 ehci hardware problem
In reply to Greg Kroah-HartmanFrom: Longfang Liu <[email protected]>
commit 26b75952ca0b8b4b3050adb9582c8e2f44d49687 upstream.
Kunpeng920's EHCI controller does not have SBRN register. Reading the SBRN register when the controller driver is initialized will get 0.
When rebooting the EHCI driver, ehci_shutdown() will be called. if the sbrn flag is 0, ehci_shutdown() will return directly. The sbrn flag being 0 will cause the EHCI interrupt signal to not be turned off after reboot. this interrupt that is not closed will cause an exception to the device sharing the interrupt.
Therefore, the EHCI controller of Kunpeng920 needs to skip the read operation of the SBRN register.
--- drivers/usb/host/ehci-pci.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/usb/host/ehci-pci.c +3 -0
@@ -297,6 +297,9 @@ static int ehci_pci_setup(struct usb_hcdif (pdev->vendor ==PCI_VENDOR_ID_STMICRO && pdev->device ==PCI_DEVICE_ID_STMICRO_USB_HOST ) ;/* ConneXT has no sbrn register */ +else if (pdev->vendor ==PCI_VENDOR_ID_HUAWEI + && pdev->device ==0xa239 ) + ;/* HUAWEI Kunpeng920 USB EHCI has no sbrn register */ else pci_read_config_byte (pdev,0x60 , &ehci->sbrn);
Greg Kroah-Hartman
maintainerPATCH 14/19 ALSA: pcm: Fix mmap breakage without explicit buffer setup
In reply to Greg Kroah-HartmanFrom: Takashi Iwai <[email protected]>
commit dc0dc8a73e8e4dc33fba93dfe23356cc5a500c57 upstream.
The recent fix c4824ae7db41 ("ALSA: pcm: Fix mmap capability check") restricts the mmap capability only to the drivers that properly set up the buffers, but it caused a regression for a few drivers that manage the buffer on its own way.
For those with UNKNOWN buffer type (i.e. the uninitialized / unused substream->dma_buffer), just assume that the driver handles the mmap properly and blindly trust the hardware info bit.
--- sound/core/pcm_native.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
sound/core/pcm_native.c +4 -1
@@ -251,7 +251,10 @@ static bool hw_support_mmap(struct snd_pswitch (substream->dma_buffer.dev.type) {case SNDRV_DMA_TYPE_UNKNOWN : -return false; +/* we can't know the device, so just assume that the driver does +* everything right +*/ +return true;case SNDRV_DMA_TYPE_CONTINUOUS :case SNDRV_DMA_TYPE_VMALLOC :return true;
Greg Kroah-Hartman
maintainerPATCH 15/19 ALSA: hda/realtek: fix mute/micmute LEDs for HP ProBook 650 G8 Notebook PC
In reply to Greg Kroah-HartmanFrom: Jeremy Szu <[email protected]>
commit d07149aba2ef423eae94a9cc2a6365d0cdf6fd51 upstream.
The HP ProBook 650 G8 Notebook PC is using ALC236 codec which is using 0x02 to control mute LED and 0x01 to control micmute LED. Therefore, add a quirk to make it works.
--- sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+)
sound/pci/hda/patch_realtek.c +1 -0
@@ -8357,6 +8357,7 @@ static const struct snd_pci_quirk alc269SND_PCI_QUIRK (0x103c ,0x87f4 ,"HP" ,ALC287_FIXUP_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x87f5 ,"HP" ,ALC287_FIXUP_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x87f7 ,"HP Spectre x360 14" ,ALC245_FIXUP_HP_X360_AMP ), +SND_PCI_QUIRK (0x103c ,0x8805 ,"HP ProBook 650 G8 Notebook PC" ,ALC236_FIXUP_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x880d ,"HP EliteBook 830 G8 Notebook PC" ,ALC285_FIXUP_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x8846 ,"HP EliteBook 850 G8 Notebook PC" ,ALC285_FIXUP_HP_GPIO_LED ), SND_PCI_QUIRK(0x103c, 0x8847, "HP EliteBook x360 830 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED),
Greg Kroah-Hartman
maintainerPATCH 16/19 ALSA: hda: Add quirk for ASUS Flow x13
In reply to Greg Kroah-HartmanFrom: Luke D Jones <[email protected]>
commit 739d0959fbed23838a96c48fbce01dd2f6fb2c5f upstream.
The ASUS GV301QH sound appears to work well with the quirk for ALC294_FIXUP_ASUS_DUAL_SPK.
--- sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+)
sound/pci/hda/patch_realtek.c +1 -0
@@ -8390,6 +8390,7 @@ static const struct snd_pci_quirk alc269SND_PCI_QUIRK (0x1043 ,0x16e3 ,"ASUS UX50" ,ALC269_FIXUP_STEREO_DMIC ),SND_PCI_QUIRK (0x1043 ,0x1740 ,"ASUS UX430UA" ,ALC295_FIXUP_ASUS_DACS ),SND_PCI_QUIRK (0x1043 ,0x17d1 ,"ASUS UX431FL" ,ALC294_FIXUP_ASUS_DUAL_SPK ), +SND_PCI_QUIRK (0x1043 ,0x1662 ,"ASUS GV301QH" ,ALC294_FIXUP_ASUS_DUAL_SPK ),SND_PCI_QUIRK (0x1043 ,0x1881 ,"ASUS Zephyrus S/M" ,ALC294_FIXUP_ASUS_GX502_PINS ),SND_PCI_QUIRK (0x1043 ,0x18b1 ,"Asus MJ401TA" ,ALC256_FIXUP_ASUS_HEADSET_MIC ), SND_PCI_QUIRK(0x1043, 0x18f1, "Asus FX505DT", ALC256_FIXUP_ASUS_HEADSET_MIC),
Greg Kroah-Hartman
maintainerPATCH 17/19 ppp: Fix generating ppp unit id when ifname is not specified
In reply to Greg Kroah-HartmanFrom: Pali Rohár <[email protected]>
commit 3125f26c514826077f2a4490b75e9b1c7a644c42 upstream.
When registering new ppp interface via PPPIOCNEWUNIT ioctl then kernel has to choose interface name as this ioctl API does not support specifying it.
Kernel in this case register new interface with name "ppp<id>" where <id> is the ppp unit id, which can be obtained via PPPIOCGUNIT ioctl. This applies also in the case when registering new ppp interface via rtnl without supplying IFLA_IFNAME.
PPPIOCNEWUNIT ioctl allows to specify own ppp unit id which will kernel assign to ppp interface, in case this ppp id is not already used by other ppp interface.
In case user does not specify ppp unit id then kernel choose the first free ppp unit id. This applies also for case when creating ppp interface via rtnl method as it does not provide a way for specifying own ppp unit id.
If some network interface (does not have to be ppp) has name "ppp<id>" with this first free ppp id then PPPIOCNEWUNIT ioctl or rtnl call fails.
And registering new ppp interface is not possible anymore, until interface which holds conflicting name is renamed. Or when using rtnl method with custom interface name in IFLA_IFNAME.
As list of allocated / used ppp unit ids is not possible to retrieve from kernel to userspace, userspace has no idea what happens nor which interface is doing this conflict.
So change the algorithm how ppp unit id is generated. And choose the first number which is not neither used as ppp unit id nor in some network interface with pattern "ppp<id>".
This issue can be simply reproduced by following pppd call when there is no ppp interface registered and also no interface with name pattern "ppp<id>":
pppd ifname ppp1 +ipv6 noip noauth nolock local nodetach pty "pppd +ipv6 noip noauth nolock local nodetach notty"
Or by creating the one ppp interface (which gets assigned ppp unit id 0), renaming it to "ppp1" and then trying to create a new ppp interface (which will always fails as next free ppp unit id is 1, but network interface with name "ppp1" exists).
This patch fixes above described issue by generating new and new ppp unit id until some non-conflicting id with network interfaces is generated.
--- drivers/net/ppp/ppp_generic.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-)
drivers/net/ppp/ppp_generic.c +15 -4
@@ -283,7 +283,7 @@ static struct channel *ppp_find_channel(static int ppp_connect_channel (struct channel *pch,int unit);static int ppp_disconnect_channel (struct channel *pch);static void ppp_destroy_channel (struct channel *pch); -static int unit_get (struct idr *p,void *ptr); +static int unit_get (struct idr *p,void *ptr,int min);static int unit_set (struct idr *p,void *ptr,int n);static void unit_put (struct idr *p,int n);static void *unit_find (struct idr *p,int n);
@@ -1045,9 +1045,20 @@ static int ppp_unit_register(struct pppmutex_lock (&pn->all_ppp_mutex);if (unit <0 ) { - ret =unit_get (&pn->units_idr, ppp); + ret =unit_get (&pn->units_idr, ppp,0 );if (ret <0 ) goto err; +if (!ifname_is_set) { +while (1 ) { +snprintf (ppp->dev->name,IFNAMSIZ ,"ppp%i" , ret); +if (!__dev_get_by_name (ppp->ppp_net, ppp->dev->name)) +break ; +unit_put (&pn->units_idr, ret); + ret =unit_get (&pn->units_idr, ppp, ret +1 ); +if (ret <0 ) + goto err; + } + } }else {/* Caller asked for a specific unit number. Fail with -EEXIST * if unavailable. For backward compatibility, return -EEXIST
@@ -3378,9 +3389,9 @@ static int unit_set(struct idr *p, void }/* get new free unit number and associate pointer with it */ -static int unit_get (struct idr *p,void *ptr) +static int unit_get (struct idr *p,void *ptr,int min) { -return idr_alloc (p, ptr,0 ,0 ,GFP_KERNEL ); +return idr_alloc (p, ptr, min,0 ,GFP_KERNEL ); }/* put unit number back to a pool */
Greg Kroah-Hartman
maintainerPATCH 18/19 ovl: prevent private clone if bind mount is not allowed
In reply to Greg Kroah-HartmanFrom: Miklos Szeredi <[email protected]>
commit 427215d85e8d1476da1a86b8d67aceb485eb3631 upstream.
Add the following checks from __do_loopback() to clone_private_mount() as well:
- verify that the mount is in the current namespace
- verify that there are no locked children
--- fs/namespace.c | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-)
fs/namespace.c +28 -14
@@ -1919,6 +1919,20 @@ void drop_collected_mounts(struct vfsmounamespace_unlock (); } +static bool has_locked_children (struct mount *mnt,struct dentry *dentry) +{ +struct mount *child; + +list_for_each_entry (child, &mnt->mnt_mounts, mnt_child) { +if (!is_subdir (child->mnt_mountpoint, dentry)) +continue ; + +if (child->mnt.mnt_flags &MNT_LOCKED ) +return true; + } +return false; +} +/** * clone_private_mount - create a private clone of a path *
@@ -1933,10 +1947,19 @@ struct vfsmount *clone_private_mount(construct mount *old_mnt =real_mount (path->mnt);struct mount *new_mnt; +down_read (&namespace_sem);if (IS_MNT_UNBINDABLE (old_mnt)) -return ERR_PTR (-EINVAL ); + goto invalid; + +if (!check_mnt (old_mnt)) + goto invalid; + +if (has_locked_children (old_mnt, path->dentry)) + goto invalid; new_mnt =clone_mnt (old_mnt, path->dentry,CL_PRIVATE ); +up_read (&namespace_sem); +if (IS_ERR (new_mnt))return ERR_CAST (new_mnt);
@@ -1944,6 +1967,10 @@ struct vfsmount *clone_private_mount(con new_mnt->mnt_ns =MNT_NS_INTERNAL ;return &new_mnt->mnt; + +invalid: +up_read (&namespace_sem); +return ERR_PTR (-EINVAL ); }EXPORT_SYMBOL_GPL (clone_private_mount);
@@ -2295,19 +2322,6 @@ static int do_change_type(struct path *preturn err; } -static bool has_locked_children (struct mount *mnt,struct dentry *dentry) -{ -struct mount *child; -list_for_each_entry (child, &mnt->mnt_mounts, mnt_child) { -if (!is_subdir (child->mnt_mountpoint, dentry)) -continue ; - -if (child->mnt.mnt_flags &MNT_LOCKED ) -return true; - } -return false; -} -static struct mount *__do_loopback (struct path *old_path,int recurse) {struct mount *mnt =ERR_PTR (-EINVAL ), *old =real_mount (old_path->mnt);
Greg Kroah-Hartman
maintainerPATCH 19/19 net: xilinx_emaclite: Do not print real IOMEM pointer
In reply to Greg Kroah-HartmanFrom: YueHaibing <[email protected]>
commit d0d62baa7f505bd4c59cd169692ff07ec49dde37 upstream.
Printing kernel pointers is discouraged because they might leak kernel memory layout. This fixes smatch warning:
drivers/net/ethernet/xilinx/xilinx_emaclite.c:1191 xemaclite_of_probe() warn:
argument 4 to %08lX specifier is cast from pointer
--- drivers/net/ethernet/xilinx/xilinx_emaclite.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
drivers/net/ethernet/xilinx/xilinx_emaclite.c +2 -3
@@ -1191,9 +1191,8 @@ static int xemaclite_of_probe(struct pla }dev_info (dev, -"Xilinx EmacLite at 0x%08X mapped to 0x%08X, irq=%d\n" , - (unsigned int __force )ndev->mem_start, - (unsigned int __force )lp->base_addr, ndev->irq); +"Xilinx EmacLite at 0x%08X mapped to 0x%p, irq=%d\n" , + (unsigned int __force )ndev->mem_start, lp->base_addr, ndev->irq);return 0 ; error:
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.59 release. There are 19 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 Sun, 15 Aug 2021 15:05:12 +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.10.59-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
Compiled and booted on my test system. No dmesg regressions.
thanks,
-- Shuah
Hi Greg,
Quoted 7 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.59 release. There are 19 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 Sun, 15 Aug 2021 15:05:12 +0000. Anything received after that time might be too late.
Build test:
mips (gcc version 11.1.1 20210723): 63 configs -> no failure arm (gcc version 11.1.1 20210723): 105 configs -> no new failure arm64 (gcc version 11.1.1 20210723): 3 configs -> no failure x86_64 (gcc version 10.2.1 20210110): 4 configs -> no failure
Boot test:x86_64: Booted on my test laptop. No regression.x86_64: Booted on qemu. No regression. [1]
arm64: Booted on rpi4b (4GB model). No regression. [2]
[1]. https://openqa.qa.codethink.co.uk/tests/29
[2]. https://openqa.qa.codethink.co.uk/tests/30
--
Regards
Sudip
Quoted 10 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.59 release. There are 19 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 Sun, 15 Aug 2021 15:05:12 +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.10.59-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.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.10.59-rc1
* git: https://gitlab.com/Linaro/lkft/mirrors/stable/linux-stable-rc
* git branch: linux-5.10.y
* git commit: ed2493daa915286093123bc53c2172d717bc5d82
* git describe: v5.10.57-155-ged2493daa915
* test details:
https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.10.y/build/v5.10.57-155-ged2493daa915
## No regressions (compared to v5.10.57-155-g81212a8abbf6)
## No fixes (compared to v5.10.57-155-g81212a8abbf6)
## Test result summary
total: 82479, pass: 69458, fail: 306, skip: 11842, xfail: 873
## Build Summary
* arc: 10 total, 10 passed, 0 failed
* arm: 194 total, 194 passed, 0 failed
* arm64: 28 total, 28 passed, 0 failed
* i386: 26 total, 26 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
* x86_64: 28 total, 28 passed, 0 failed
## Test suites summary
* fwts
* kselftest-android
* kselftest-arm64
* 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-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-timens
* kselftest-timers
* kselftest-tmpfs
* kselftest-tpm2
* kselftest-user
* kselftest-vm
* 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
* 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.10.59 release. There are 19 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 Sun, 15 Aug 2021 15:05:12 +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.10.59-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
5.10.59-rc1 Successfully Compiled and booted on my Raspberry PI 4b (8g) (bcm2711)
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.59 release. There are 19 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 Sun, 15 Aug 2021 15:05:12 +0000. Anything received after that time might be too late.
Build results:
total: 159 pass: 159 fail: 0 Qemu test results: total: 472 pass: 472 fail: 0
Guenter
Hi!
Quoted 7 lines
This is the start of the stable review cycle for the 5.10.59 release. There are 19 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 Sun, 15 Aug 2021 15:05:12 +0000. Anything received after that time might be too late.
CIP testing did not find any kernel problems here: (but we have some infrastructure problems)
https://gitlab.com/cip-project/cip-testing/linux-stable-rc-ci/-/tree/linux-5.10.y
Best regards,
Pavel
Signature · 2 lines
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.10.59 release. There are 19 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 Sun, 15 Aug 2021 15:05:12 +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.10.59-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.10.y
and the diffstat can be found below.thanks,
greg k-h
Tested on arm64 and x86 for 5.10.59-rc1,
Kernel repo:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Branch: linux-5.10.y
Version: 5.10.59-rc1
Commit: ed2493daa915286093123bc53c2172d717bc5d82
Compiler: gcc version 7.3.0 (GCC)
arm64:
--------------------------------------------------------------------
Testcase Result Summary:
total: 8907
passed: 8907
failed: 0
timeout: 0
--------------------------------------------------------------------
x86:
--------------------------------------------------------------------
Testcase Result Summary:
total: 8907
passed: 8907
failed: 0
timeout: 0
--------------------------------------------------------------------