6.0.1-rc1 review
Subsystems (2)
Greg Kroah-Hartman
maintainercover 6.0.1-rc1 review
This is the start of the stable review cycle for the 6.0.1 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 Wed, 12 Oct 2022 07:03:19 +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/v6.x/stable-review/patch-6.0.1-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-6.0.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <[email protected]>
Linux 6.0.1-rc1
Tetsuo Handa <[email protected]>
Bluetooth: use hdev->workqueue when queuing hdev->{cmd,ncmd}_timer worksJules Irenge <[email protected]>
bpf: Fix resetting logic for unreferenced kptrs
Daniel Golle <[email protected]>
net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear
Kumar Kartikeya Dwivedi <[email protected]>
bpf: Gate dynptr API behind CAP_BPF
Palmer Dabbelt <[email protected]>
RISC-V: Print SSTC in canonical order
Mario Limonciello <[email protected]>
gpiolib: acpi: Add a quirk for Asus UM325UAZ
Mario Limonciello <[email protected]>
gpiolib: acpi: Add support to ignore programming an interrupt
Johan Hovold <[email protected]>
USB: serial: ftdi_sio: fix 300 bps rate for SIO
Tadeusz Struk <[email protected]>
usb: mon: make mmapped memory read only
Aleksa Savic <[email protected]>
hwmon: (aquacomputer_d5next) Fix Quadro fan speed offsets
Shuah Khan <[email protected]>
docs: update mediator information in CoC docs
Kees Cook <[email protected]>
hardening: Remove Clang's enable flag for -ftrivial-auto-var-init=zero
Sami Tolvanen <[email protected]>
Makefile.extrawarn: Move -Wcast-function-type-strict to W=1
Bart Van Assche <[email protected]>
sparc: Unbreak the build
Al Viro <[email protected]>
fix coredump breakage
Dongliang Mu <[email protected]>
fs: fix UAF/GPF bug in nilfs_mdt_destroy
Jalal Mostafa <[email protected]>
xsk: Inherit need_wakeup flag for shared sockets
-------------
Diffstat:
.../process/code-of-conduct-interpretation.rst | 2 +- Makefile | 8 ++--- arch/riscv/kernel/cpu.c | 2 +- arch/sparc/include/asm/smp_32.h | 15 ++++----- arch/sparc/kernel/leon_smp.c | 12 ++++--- arch/sparc/kernel/sun4d_smp.c | 12 ++++--- arch/sparc/kernel/sun4m_smp.c | 10 +++--- arch/sparc/mm/srmmu.c | 29 ++++++++--------- drivers/gpio/gpiolib-acpi.c | 38 +++++++++++++++++++--- drivers/hwmon/aquacomputer_d5next.c | 2 +- drivers/net/ethernet/mediatek/mtk_ppe.c | 2 +- drivers/usb/mon/mon_bin.c | 5 +++ drivers/usb/serial/ftdi_sio.c | 3 +- fs/coredump.c | 3 +- fs/inode.c | 7 ++-- include/net/xsk_buff_pool.h | 2 +- kernel/bpf/helpers.c | 28 ++++++++-------- kernel/bpf/syscall.c | 2 +- net/bluetooth/hci_core.c | 15 +++++++-- net/bluetooth/hci_event.c | 6 ++-- net/xdp/xsk.c | 4 +-- net/xdp/xsk_buff_pool.c | 5 +-- scripts/Makefile.extrawarn | 1 + security/Kconfig.hardening | 14 +++++--- 24 files changed, 141 insertions(+), 86 deletions(-)
Greg Kroah-Hartman
maintainerPATCH 1/17 xsk: Inherit need_wakeup flag for shared sockets
From: Jalal Mostafa <[email protected]>
commit 60240bc26114543fcbfcd8a28466e67e77b20388 upstream.
The flag for need_wakeup is not set for xsks with XDP_SHARED_UMEM flag and of different queue ids and/or devices. They should inherit the flag from the first socket buffer pool since no flags can be specified once XDP_SHARED_UMEM is specified.
--- include/net/xsk_buff_pool.h | 2 +- net/xdp/xsk.c | 4 ++-- net/xdp/xsk_buff_pool.c | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-)
include/net/xsk_buff_pool.h +1 -1
@@ -95,7 +95,7 @@ struct xsk_buff_pool *xp_create_and_assi struct xdp_umem *umem);int xp_assign_dev (struct xsk_buff_pool *pool,struct net_device *dev,u16 queue_id,u16 flags); -int xp_assign_dev_shared (struct xsk_buff_pool *pool,struct xdp_umem *umem, +int xp_assign_dev_shared (struct xsk_buff_pool *pool,struct xdp_sock *umem_xs,struct net_device *dev,u16 queue_id);int xp_alloc_tx_descs (struct xsk_buff_pool *pool,struct xdp_sock *xs);void xp_destroy (struct xsk_buff_pool *pool);
net/xdp/xsk.c +2 -2
@@ -954,8 +954,8 @@ static int xsk_bind(struct socket *sock, goto out_unlock; } - err =xp_assign_dev_shared (xs->pool, umem_xs->umem, - dev, qid); + err =xp_assign_dev_shared (xs->pool, umem_xs, dev, + qid);if (err) {xp_destroy (xs->pool); xs->pool =NULL ;
net/xdp/xsk_buff_pool.c +3 -2
@@ -212,17 +212,18 @@ err_unreg_pool:return err; } -int xp_assign_dev_shared (struct xsk_buff_pool *pool,struct xdp_umem *umem, +int xp_assign_dev_shared (struct xsk_buff_pool *pool,struct xdp_sock *umem_xs,struct net_device *dev,u16 queue_id) {u16 flags; +struct xdp_umem *umem = umem_xs->umem;/* One fill and completion ring required for each queue id. */ if (!pool->fq || !pool->cq)return -EINVAL ; flags = umem->zc ?XDP_ZEROCOPY :XDP_COPY ; -if (pool->uses_need_wakeup) +if (umem_xs->pool->uses_need_wakeup) flags |=XDP_USE_NEED_WAKEUP ;return xp_assign_dev (pool, dev, queue_id, flags);
Greg Kroah-Hartman
maintainerPATCH 2/17 fs: fix UAF/GPF bug in nilfs_mdt_destroy
In reply to Greg Kroah-HartmanFrom: Dongliang Mu <[email protected]>
commit 2e488f13755ffbb60f307e991b27024716a33b29 upstream.
In alloc_inode, inode_init_always() could return -ENOMEM if security_inode_alloc() fails, which causes inode->i_private uninitialized. Then nilfs_is_metadata_file_inode() returns true and nilfs_free_inode() wrongly calls nilfs_mdt_destroy(), which frees the uninitialized inode->i_private
and leads to crashes(e.g., UAF/GPF).
Fix this by moving security_inode_alloc just prior to this_cpu_inc(nr_inodes)
--- fs/inode.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
fs/inode.c +3 -4
@@ -192,8 +192,6 @@ int inode_init_always(struct super_block inode->i_wb_frn_history =0 ;#endif -if (security_inode_alloc (inode)) - goto out;spin_lock_init (&inode->i_lock);lockdep_set_class (&inode->i_lock, &sb->s_type->i_lock_key);
@@ -228,11 +226,12 @@ int inode_init_always(struct super_block inode->i_fsnotify_mask =0 ;#endif inode->i_flctx =NULL ; + +if (unlikely (security_inode_alloc (inode))) +return -ENOMEM ;this_cpu_inc (nr_inodes);return 0 ; -out: -return -ENOMEM ; }EXPORT_SYMBOL (inode_init_always);
Greg Kroah-Hartman
maintainerPATCH 3/17 fix coredump breakage
In reply to Greg Kroah-HartmanFrom: Al Viro <[email protected]>
commit 4f526fef91b24197d489ff86789744c67f475bb4 upstream.
Let me count the ways in which I'd screwed up:
* when emitting a page, handling of gaps in coredump should happen before fetching the current file position.
* fix for a problem that occurs on rather uncommon setups (and hadn't been observed in the wild) had been sent very late in the cycle.
* ... with badly insufficient testing, introducing an easily reproducible breakage. Without giving it time to soak in -next.
--- fs/coredump.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
fs/coredump.c +2 -1
@@ -841,7 +841,7 @@ static int dump_emit_page(struct coredum };struct iov_iter iter;struct file *file = cprm->file; -loff_t pos = file->f_pos; +loff_t pos;ssize_t n;if (cprm->to_skip) {
@@ -853,6 +853,7 @@ static int dump_emit_page(struct coredumreturn 0 ;if (dump_interrupted ())return 0 ; + pos = file->f_pos;iov_iter_bvec (&iter,WRITE , &bvec,1 ,PAGE_SIZE ); n =__kernel_write_iter (cprm->file, &iter, &pos);if (n !=PAGE_SIZE )
Greg Kroah-Hartman
maintainerPATCH 4/17 sparc: Unbreak the build
In reply to Greg Kroah-HartmanFrom: Bart Van Assche <[email protected]>
commit 17006e86a7641fa3c50324cfb602f0e74dac8527 upstream.
Fix the following build errors:
arch/sparc/mm/srmmu.c: In function ‘smp_flush_page_for_dma’:arch/sparc/mm/srmmu.c:1639:13: error: cast between incompatible function types from ‘void (*)(long unsigned int)’ to ‘void (*)(long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int)’ [-Werror=cast-function-type]
1639 | xc1((smpfunc_t) local_ops->page_for_dma, page);
| ^arch/sparc/mm/srmmu.c: In function ‘smp_flush_cache_mm’:arch/sparc/mm/srmmu.c:1662:29: error: cast between incompatible function types from ‘void (*)(struct mm_struct *)’ to ‘void (*)(long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int)’ [-Werror=cast-function-type]
1662 | xc1((smpfunc_t) local_ops->cache_mm, (unsigned long) mm);
|[ ... ]
Compile-tested only.
--- arch/sparc/include/asm/smp_32.h | 15 ++++++--------- arch/sparc/kernel/leon_smp.c | 12 +++++++----- arch/sparc/kernel/sun4d_smp.c | 12 +++++++----- arch/sparc/kernel/sun4m_smp.c | 10 ++++++---- arch/sparc/mm/srmmu.c | 29 +++++++++++++---------------- 5 files changed, 39 insertions(+), 39 deletions(-)
arch/sparc/include/asm/smp_32.h +6 -9
@@ -33,9 +33,6 @@ extern volatile unsigned long cpu_callinextern cpumask_t smp_commenced_mask;extern struct linux_prom_registers smp_penguin_ctable; -typedef void (*smpfunc_t )(unsigned long ,unsigned long ,unsigned long , -unsigned long ,unsigned long ); -void cpu_panic (void );/*
@@ -57,7 +54,7 @@ void smp_bogo(struct seq_file *);void smp_info (struct seq_file *);struct sparc32_ipi_ops { -void (*cross_call)(smpfunc_t func,cpumask_t mask,unsigned long arg1, +void (*cross_call)(void *func,cpumask_t mask,unsigned long arg1,unsigned long arg2,unsigned long arg3,unsigned long arg4);void (*resched)(int cpu);
@@ -66,28 +63,28 @@ struct sparc32_ipi_ops { };extern const struct sparc32_ipi_ops *sparc32_ipi_ops; -static inline void xc0 (smpfunc_t func) +static inline void xc0 (void *func) { sparc32_ipi_ops->cross_call (func, *cpu_online_mask,0 ,0 ,0 ,0 ); } -static inline void xc1 (smpfunc_t func,unsigned long arg1) +static inline void xc1 (void *func,unsigned long arg1) { sparc32_ipi_ops->cross_call (func, *cpu_online_mask, arg1,0 ,0 ,0 ); } -static inline void xc2 (smpfunc_t func,unsigned long arg1,unsigned long arg2) +static inline void xc2 (void *func,unsigned long arg1,unsigned long arg2) { sparc32_ipi_ops->cross_call (func, *cpu_online_mask, arg1, arg2,0 ,0 ); } -static inline void xc3 (smpfunc_t func,unsigned long arg1,unsigned long arg2, +static inline void xc3 (void *func,unsigned long arg1,unsigned long arg2,unsigned long arg3) { sparc32_ipi_ops->cross_call (func, *cpu_online_mask, arg1, arg2, arg3,0 ); } -static inline void xc4 (smpfunc_t func,unsigned long arg1,unsigned long arg2, +static inline void xc4 (void *func,unsigned long arg1,unsigned long arg2,unsigned long arg3,unsigned long arg4) { sparc32_ipi_ops->cross_call(func, *cpu_online_mask,
arch/sparc/kernel/leon_smp.c +7 -5
@@ -359,7 +359,7 @@ void leonsmp_ipi_interrupt(void) } static struct smp_funcall { - smpfunc_t func; + void *func; unsigned long arg1; unsigned long arg2; unsigned long arg3;
@@ -372,7 +372,7 @@ static struct smp_funcall {static DEFINE_SPINLOCK (cross_call_lock);/* Cross calls must be serialized, at least currently. */ -static void leon_cross_call (smpfunc_t func,cpumask_t mask,unsigned long arg1, +static void leon_cross_call (void *func,cpumask_t mask,unsigned long arg1,unsigned long arg2,unsigned long arg3,unsigned long arg4) {
@@ -384,7 +384,7 @@ static void leon_cross_call(smpfunc_t fu {/* If you make changes here, make sure gcc generates proper code... */ - register smpfunc_t f asm("i0") = func; + register void *f asm("i0") = func; register unsigned long a1 asm("i1") = arg1; register unsigned long a2 asm("i2") = arg2; register unsigned long a3 asm("i3") = arg3;
@@ -444,11 +444,13 @@ static void leon_cross_call(smpfunc_t fu/* Running cross calls. */ void leon_cross_call_irq (void ) { +void (*func)(unsigned long ,unsigned long ,unsigned long ,unsigned long , +unsigned long ) = ccall_info.func;int i =smp_processor_id (); ccall_info.processors_in[i] =1 ; - ccall_info.func (ccall_info.arg1, ccall_info.arg2, ccall_info.arg3, - ccall_info.arg4, ccall_info.arg5); +func (ccall_info.arg1, ccall_info.arg2, ccall_info.arg3, ccall_info.arg4, + ccall_info.arg5); ccall_info.processors_out[i] =1 ; }
arch/sparc/kernel/sun4d_smp.c +7 -5
@@ -268,7 +268,7 @@ static void sun4d_ipi_resched(int cpu) } static struct smp_funcall { - smpfunc_t func; + void *func; unsigned long arg1; unsigned long arg2; unsigned long arg3;
@@ -281,7 +281,7 @@ static struct smp_funcall {static DEFINE_SPINLOCK (cross_call_lock);/* Cross calls must be serialized, at least currently. */ -static void sun4d_cross_call (smpfunc_t func,cpumask_t mask,unsigned long arg1, +static void sun4d_cross_call (void *func,cpumask_t mask,unsigned long arg1,unsigned long arg2,unsigned long arg3,unsigned long arg4) {
@@ -296,7 +296,7 @@ static void sun4d_cross_call(smpfunc_t f* If you make changes here, make sure * gcc generates proper code... */ - register smpfunc_t f asm("i0") = func; + register void *f asm("i0") = func; register unsigned long a1 asm("i1") = arg1; register unsigned long a2 asm("i2") = arg2; register unsigned long a3 asm("i3") = arg3;
@@ -353,11 +353,13 @@ static void sun4d_cross_call(smpfunc_t f/* Running cross calls. */ void smp4d_cross_call_irq (void ) { +void (*func)(unsigned long ,unsigned long ,unsigned long ,unsigned long , +unsigned long ) = ccall_info.func;int i =hard_smp_processor_id (); ccall_info.processors_in[i] =1 ; - ccall_info.func (ccall_info.arg1, ccall_info.arg2, ccall_info.arg3, - ccall_info.arg4, ccall_info.arg5); +func (ccall_info.arg1, ccall_info.arg2, ccall_info.arg3, ccall_info.arg4, + ccall_info.arg5); ccall_info.processors_out[i] =1 ; }
arch/sparc/kernel/sun4m_smp.c +6 -4
@@ -157,7 +157,7 @@ static void sun4m_ipi_mask_one(int cpu) } static struct smp_funcall { - smpfunc_t func; + void *func; unsigned long arg1; unsigned long arg2; unsigned long arg3;
@@ -170,7 +170,7 @@ static struct smp_funcall {static DEFINE_SPINLOCK (cross_call_lock);/* Cross calls must be serialized, at least currently. */ -static void sun4m_cross_call (smpfunc_t func,cpumask_t mask,unsigned long arg1, +static void sun4m_cross_call (void *func,cpumask_t mask,unsigned long arg1,unsigned long arg2,unsigned long arg3,unsigned long arg4) {
@@ -230,11 +230,13 @@ static void sun4m_cross_call(smpfunc_t f/* Running cross calls. */ void smp4m_cross_call_irq (void ) { +void (*func)(unsigned long ,unsigned long ,unsigned long ,unsigned long , +unsigned long ) = ccall_info.func;int i =smp_processor_id (); ccall_info.processors_in[i] =1 ; - ccall_info.func (ccall_info.arg1, ccall_info.arg2, ccall_info.arg3, - ccall_info.arg4, ccall_info.arg5); +func (ccall_info.arg1, ccall_info.arg2, ccall_info.arg3, ccall_info.arg4, + ccall_info.arg5); ccall_info.processors_out[i] =1 ; }
arch/sparc/mm/srmmu.c +13 -16
@@ -1636,19 +1636,19 @@ static void __init get_srmmu_type(void)/* Local cross-calls. */ static void smp_flush_page_for_dma (unsigned long page) { -xc1 ((smpfunc_t ) local_ops->page_for_dma, page); +xc1 (local_ops->page_for_dma, page); local_ops->page_for_dma (page); }static void smp_flush_cache_all (void ) { -xc0 ((smpfunc_t ) local_ops->cache_all); +xc0 (local_ops->cache_all); local_ops->cache_all (); }static void smp_flush_tlb_all (void ) { -xc0 ((smpfunc_t ) local_ops->tlb_all); +xc0 (local_ops->tlb_all); local_ops->tlb_all (); }
@@ -1659,7 +1659,7 @@ static void smp_flush_cache_mm(struct mmcpumask_copy (&cpu_mask,mm_cpumask (mm));cpumask_clear_cpu (smp_processor_id (), &cpu_mask);if (!cpumask_empty (&cpu_mask)) -xc1 ((smpfunc_t ) local_ops->cache_mm, (unsigned long ) mm); +xc1 (local_ops->cache_mm, (unsigned long )mm); local_ops->cache_mm (mm); } }
@@ -1671,7 +1671,7 @@ static void smp_flush_tlb_mm(struct mm_scpumask_copy (&cpu_mask,mm_cpumask (mm));cpumask_clear_cpu (smp_processor_id (), &cpu_mask);if (!cpumask_empty (&cpu_mask)) { -xc1 ((smpfunc_t ) local_ops->tlb_mm, (unsigned long ) mm); +xc1 (local_ops->tlb_mm, (unsigned long )mm);if (atomic_read (&mm->mm_users) ==1 && current->active_mm == mm)cpumask_copy (mm_cpumask (mm),cpumask_of (smp_processor_id ()));
@@ -1691,8 +1691,8 @@ static void smp_flush_cache_range(structcpumask_copy (&cpu_mask,mm_cpumask (mm));cpumask_clear_cpu (smp_processor_id (), &cpu_mask);if (!cpumask_empty (&cpu_mask)) -xc3 ((smpfunc_t ) local_ops->cache_range, - (unsigned long ) vma, start, end); +xc3 (local_ops->cache_range, (unsigned long )vma, start, + end); local_ops->cache_range (vma, start, end); } }
@@ -1708,8 +1708,8 @@ static void smp_flush_tlb_range(struct vcpumask_copy (&cpu_mask,mm_cpumask (mm));cpumask_clear_cpu (smp_processor_id (), &cpu_mask);if (!cpumask_empty (&cpu_mask)) -xc3 ((smpfunc_t ) local_ops->tlb_range, - (unsigned long ) vma, start, end); +xc3 (local_ops->tlb_range, (unsigned long )vma, start, + end); local_ops->tlb_range (vma, start, end); } }
@@ -1723,8 +1723,7 @@ static void smp_flush_cache_page(structcpumask_copy (&cpu_mask,mm_cpumask (mm));cpumask_clear_cpu (smp_processor_id (), &cpu_mask);if (!cpumask_empty (&cpu_mask)) -xc2 ((smpfunc_t ) local_ops->cache_page, - (unsigned long ) vma, page); +xc2 (local_ops->cache_page, (unsigned long )vma, page); local_ops->cache_page (vma, page); } }
@@ -1738,8 +1737,7 @@ static void smp_flush_tlb_page(struct vmcpumask_copy (&cpu_mask,mm_cpumask (mm));cpumask_clear_cpu (smp_processor_id (), &cpu_mask);if (!cpumask_empty (&cpu_mask)) -xc2 ((smpfunc_t ) local_ops->tlb_page, - (unsigned long ) vma, page); +xc2 (local_ops->tlb_page, (unsigned long )vma, page); local_ops->tlb_page (vma, page); } }
@@ -1753,7 +1751,7 @@ static void smp_flush_page_to_ram(unsign* XXX This experiment failed, research further... -DaveM */ #if 1 -xc1 ((smpfunc_t ) local_ops->page_to_ram, page); +xc1 (local_ops->page_to_ram, page);#endif local_ops->page_to_ram (page); }
@@ -1764,8 +1762,7 @@ static void smp_flush_sig_insns(struct mcpumask_copy (&cpu_mask,mm_cpumask (mm));cpumask_clear_cpu (smp_processor_id (), &cpu_mask);if (!cpumask_empty (&cpu_mask)) -xc2 ((smpfunc_t ) local_ops->sig_insns, - (unsigned long ) mm, insn_addr); +xc2 (local_ops->sig_insns, (unsigned long )mm, insn_addr); local_ops->sig_insns (mm, insn_addr); }
Greg Kroah-Hartman
maintainerPATCH 5/17 Makefile.extrawarn: Move -Wcast-function-type-strict to W=1
In reply to Greg Kroah-HartmanFrom: Sami Tolvanen <[email protected]>
commit 2120635108b35ecad9c59c8b44f6cbdf4f98214e upstream.
We enable -Wcast-function-type globally in the kernel to warn about mismatching types in function pointer casts. Compilers currently warn only about ABI incompability with this flag, but Clang 16 will enable a stricter version of the check by default that checks for an exact type match. This will be very noisy in the kernel, so disable -Wcast-function-type-strict without W=1 until the new warnings have been addressed.
--- scripts/Makefile.extrawarn | 1 + 1 file changed, 1 insertion(+)
scripts/Makefile.extrawarn +1 -0
@@ -64,6 +64,7 @@ KBUILD_CFLAGS += -Wno-sign-compare KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast) KBUILD_CFLAGS += -Wno-tautological-constant-out-of-range-compare KBUILD_CFLAGS += $(call cc-disable-warning, unaligned-access) +KBUILD_CFLAGS += $(call cc-disable-warning, cast-function-type-strict) endif endif
Greg Kroah-Hartman
maintainerPATCH 6/17 hardening: Remove Clangs enable flag for -ftrivial-auto-var-init=zero
In reply to Greg Kroah-HartmanFrom: Kees Cook <[email protected]>
commit 607e57c6c62c00965ae276902c166834ce73014a upstream.
Now that Clang's -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang option is no longer required, remove it from the command line. Clang 16
and later will warn when it is used, which will cause Kconfig to think
it can't use -ftrivial-auto-var-init=zero at all. Check for whether it
is required and only use it when so.
--- Makefile | 4 ++-- security/Kconfig.hardening | 14 ++++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-)
Makefile +2 -2
@@ -831,8 +831,8 @@ endif # Initialize all stack variables with a zero value. ifdef CONFIG_INIT_STACK_ALL_ZERO KBUILD_CFLAGS += -ftrivial-auto-var-init=zero -ifdef CONFIG_CC_IS_CLANG -# https://bugs.llvm.org/show_bug.cgi?id=45497 +ifdef CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_ENABLER +# https://github.com/llvm/llvm-project/issues/44842 KBUILD_CFLAGS += -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang endif endif
security/Kconfig.hardening +10 -4
@@ -22,11 +22,17 @@ menu "Memory initialization" config CC_HAS_AUTO_VAR_INIT_PATTERN def_bool $(cc-option,-ftrivial-auto-var-init=pattern) -config CC_HAS_AUTO_VAR_INIT_ZERO - # GCC ignores the -enable flag, so we can test for the feature with - # a single invocation using the flag, but drop it as appropriate in - # the Makefile, depending on the presence of Clang. +config CC_HAS_AUTO_VAR_INIT_ZERO_BARE + def_bool $(cc-option,-ftrivial-auto-var-init=zero) + +config CC_HAS_AUTO_VAR_INIT_ZERO_ENABLER + # Clang 16 and later warn about using the -enable flag, but it + # is required before then. def_bool $(cc-option,-ftrivial-auto-var-init=zero -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang) + depends on !CC_HAS_AUTO_VAR_INIT_ZERO_BARE + +config CC_HAS_AUTO_VAR_INIT_ZERO + def_bool CC_HAS_AUTO_VAR_INIT_ZERO_BARE || CC_HAS_AUTO_VAR_INIT_ZERO_ENABLER choice prompt "Initialize kernel stack variables at function entry"
Greg Kroah-Hartman
maintainerPATCH 7/17 docs: update mediator information in CoC docs
In reply to Greg Kroah-HartmanFrom: Shuah Khan <[email protected]>
commit 8bfdfa0d6b929ede7b6189e0e546ceb6a124d05d upstream.
Update mediator information in the CoC interpretation document.
--- Documentation/process/code-of-conduct-interpretation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Documentation/process/code-of-conduct-interpretation.rst +1 -1
@@ -51,7 +51,7 @@ the Technical Advisory Board (TAB) or ot uncertain how to handle situations that come up. It will not be considered a violation report unless you want it to be. If you are uncertain about approaching the TAB or any other maintainers, please -reach out to our conflict mediator, Mishi Choudhary <[email protected]>. +reach out to our conflict mediator, Joanna Lee <[email protected]>. In the end, "be kind to each other" is really what the end goal is for everybody. We know everyone is human and we all fail at times, but the
Greg Kroah-Hartman
maintainerPATCH 8/17 hwmon: (aquacomputer_d5next) Fix Quadro fan speed offsets
In reply to Greg Kroah-HartmanFrom: Aleksa Savic <[email protected]>
commit b7f3e9650f12d1e06b94a0257bcb90279f691bf5 upstream.
The offsets for setting speeds of fans connected to Quadro are off by one. Set them to their correct values.
The offsets as shown point to registers for setting the fan control mode, which will be explored in future patches, but slipped in here. When setting fan speeds, the resulting values were overlapping, which made the fans still run in my initial testing.
--- drivers/hwmon/aquacomputer_d5next.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/hwmon/aquacomputer_d5next.c +1 -1
@@ -110,7 +110,7 @@ static u16 octo_ctrl_fan_offsets[] = { 0static u8 quadro_sensor_fan_offsets[] = {0x70 ,0x7D ,0x8A ,0x97 };/* Fan speed registers in Quadro control report (from 0-100%) */ -static u16 quadro_ctrl_fan_offsets[] = {0x36 ,0x8b ,0xe0 ,0x135 }; +static u16 quadro_ctrl_fan_offsets[] = {0x37 ,0x8c ,0xe1 ,0x136 };/* Labels for D5 Next */ static const char *const label_d5next_temp[] = {
Greg Kroah-Hartman
maintainerPATCH 9/17 usb: mon: make mmapped memory read only
In reply to Greg Kroah-HartmanFrom: Tadeusz Struk <[email protected]>
commit a659daf63d16aa883be42f3f34ff84235c302198 upstream.
Syzbot found an issue in usbmon module, where the user space client can corrupt the monitor's internal memory, causing the usbmon module to crash the kernel with segfault, UAF, etc.
The reproducer mmaps the /dev/usbmon memory to user space, and overwrites it with arbitrary data, which causes all kinds of issues.
Return an -EPERM error from mon_bin_mmap() if the flag VM_WRTIE is set. Also clear VM_MAYWRITE to make it impossible to change it to writable later.
--- drivers/usb/mon/mon_bin.c | 5 +++++ 1 file changed, 5 insertions(+)
drivers/usb/mon/mon_bin.c +5 -0
@@ -1268,6 +1268,11 @@ static int mon_bin_mmap(struct file *fil {/* don't do anything here: "fault" will set up page table entries */ vma->vm_ops = &mon_bin_vm_ops; + +if (vma->vm_flags &VM_WRITE ) +return -EPERM ; + + vma->vm_flags &= ~VM_MAYWRITE ; vma->vm_flags |=VM_DONTEXPAND |VM_DONTDUMP ; vma->vm_private_data = filp->private_data;mon_bin_vma_open (vma);
Greg Kroah-Hartman
maintainerPATCH 10/17 USB: serial: ftdi_sio: fix 300 bps rate for SIO
In reply to Greg Kroah-HartmanFrom: Johan Hovold <[email protected]>
commit 7bd7ad3c310cd6766f170927381eea0aa6f46c69 upstream.
The 300 bps rate of SIO devices has been mapped to 9600 bps since 2003... Let's fix the regression.
--- drivers/usb/serial/ftdi_sio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/usb/serial/ftdi_sio.c +1 -2
@@ -1319,8 +1319,7 @@ static u32 get_ftdi_divisor(struct tty_scase 38400 : div_value = ftdi_sio_b38400;break ;case 57600 : div_value = ftdi_sio_b57600;break ;case 115200 : div_value = ftdi_sio_b115200;break ; - }/* baud */ -if (div_value ==0 ) { +default :dev_dbg (dev,"%s - Baudrate (%d) requested is not supported\n" , __func__, baud); div_value = ftdi_sio_b9600;
Greg Kroah-Hartman
maintainerPATCH 11/17 gpiolib: acpi: Add support to ignore programming an interrupt
In reply to Greg Kroah-HartmanFrom: Mario Limonciello <[email protected]>
commit 6b6af7bd5718f4e45a9b930533aec1158387d552 upstream.
gpiolib-acpi already had support for ignoring a pin for wakeup, but if an OEM configures a floating pin as an interrupt source then stopping it from being a wakeup won't do much good to stop the interrupt storm.
Add support for a module parameter and quirk infrastructure to ignore interrupts as well.
--- drivers/gpio/gpiolib-acpi.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-)
drivers/gpio/gpiolib-acpi.c +20 -4
@@ -32,9 +32,16 @@ MODULE_PARM_DESC(ignore_wake,"controller@pin combos on which to ignore the ACPI wake flag " "ignore_wake=controller@pin[,controller@pin[,...]]"); +static char *ignore_interrupt; +module_param (ignore_interrupt, charp,0444 ); +MODULE_PARM_DESC (ignore_interrupt, +"controller@pin combos on which to ignore interrupt " +"ignore_interrupt=controller@pin[,controller@pin[,...]]" ); +struct acpi_gpiolib_dmi_quirk {bool no_edge_events_on_boot;char *ignore_wake; +char *ignore_interrupt; };/**
@@ -317,14 +324,15 @@ static struct gpio_desc *acpi_request_owreturn desc; } -static bool acpi_gpio_in_ignore_list (const char *controller_in,unsigned int pin_in) +static bool acpi_gpio_in_ignore_list (const char *ignore_list,const char *controller_in, +unsigned int pin_in) {const char *controller, *pin_str;unsigned int pin;char *endp;int len; - controller = ignore_wake; + controller = ignore_list;while (controller) { pin_str =strchr (controller,'@' );if (!pin_str)
@@ -348,7 +356,7 @@ static bool acpi_gpio_in_ignore_list(conreturn false; err: -pr_err_once ("Error: Invalid value for gpiolib_acpi.ignore_wake: %s\n" , ignore_wake); +pr_err_once ("Error: Invalid value for gpiolib_acpi.ignore_...: %s\n" , ignore_list);return false; }
@@ -360,7 +368,7 @@ static bool acpi_gpio_irq_is_wake(structif (agpio->wake_capable !=ACPI_WAKE_CAPABLE )return false; -if (acpi_gpio_in_ignore_list (dev_name (parent), pin)) { +if (acpi_gpio_in_ignore_list (ignore_wake,dev_name (parent), pin)) {dev_info (parent,"Ignoring wakeup on pin %u\n" , pin);return false; }
@@ -427,6 +435,11 @@ static acpi_status acpi_gpiochip_alloc_e goto fail_unlock_irq; } +if (acpi_gpio_in_ignore_list (ignore_interrupt,dev_name (chip->parent), pin)) { +dev_info (chip->parent,"Ignoring interrupt on pin %u\n" , pin); +return AE_OK ; + } + event =kzalloc (sizeof (*event),GFP_KERNEL );if (!event) goto fail_unlock_irq;
@@ -1585,6 +1598,9 @@ static int __init acpi_gpio_setup_paramsif (ignore_wake ==NULL && quirk && quirk->ignore_wake) ignore_wake = quirk->ignore_wake; +if (ignore_interrupt ==NULL && quirk && quirk->ignore_interrupt) + ignore_interrupt = quirk->ignore_interrupt; +return 0 ; }
Greg Kroah-Hartman
maintainerPATCH 12/17 gpiolib: acpi: Add a quirk for Asus UM325UAZ
In reply to Greg Kroah-HartmanFrom: Mario Limonciello <[email protected]>
commit 0ea76c401f9245ac209f1b1ce03a7e1fb9de36e5 upstream.
Asus UM325UAZ has GPIO 18 programmed as both an interrupt and a wake source, but confirmed with internal team on this design this pin is floating and shouldn't have been programmed. This causes lots of spurious IRQs on the system and horrendous battery life.
Add a quirk to ignore attempts to program this pin on this system.
--- drivers/gpio/gpiolib-acpi.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
drivers/gpio/gpiolib-acpi.c +14 -0
@@ -1576,6 +1576,20 @@ static const struct dmi_system_id gpioli .ignore_wake = "INT33FF:01@0", }, }, + { + /* + * Interrupt storm caused from edge triggered floating pin + * Found in BIOS UX325UAZ.300 + * https://bugzilla.kernel.org/show_bug.cgi?id=216208 + */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "ZenBook UX325UAZ_UM325UAZ"), + }, + .driver_data = &(struct acpi_gpiolib_dmi_quirk) { + .ignore_interrupt = "AMDI0030:00@18", + }, + }, {} /* Terminating entry */ };
Greg Kroah-Hartman
maintainerPATCH 13/17 RISC-V: Print SSTC in canonical order
In reply to Greg Kroah-HartmanFrom: Palmer Dabbelt <[email protected]>
commit 61a41d16ad20657f93613229a8b17766c51dc849 upstream.
This got out of order during a merge conflict, fix it by putting the entries in the correct order.
--- arch/riscv/kernel/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/riscv/kernel/cpu.c +1 -1
@@ -92,10 +92,10 @@ int riscv_of_parent_hartid(struct device*/ static struct riscv_isa_ext_data isa_ext_arr[] = {__RISCV_ISA_EXT_DATA (sscofpmf,RISCV_ISA_EXT_SSCOFPMF ), +__RISCV_ISA_EXT_DATA (sstc,RISCV_ISA_EXT_SSTC ),__RISCV_ISA_EXT_DATA (svpbmt,RISCV_ISA_EXT_SVPBMT ),__RISCV_ISA_EXT_DATA (zicbom,RISCV_ISA_EXT_ZICBOM ),__RISCV_ISA_EXT_DATA (zihintpause,RISCV_ISA_EXT_ZIHINTPAUSE ), -__RISCV_ISA_EXT_DATA (sstc,RISCV_ISA_EXT_SSTC ),__RISCV_ISA_EXT_DATA ("" ,RISCV_ISA_EXT_MAX ), };
Greg Kroah-Hartman
maintainerPATCH 14/17 bpf: Gate dynptr API behind CAP_BPF
In reply to Greg Kroah-HartmanFrom: Kumar Kartikeya Dwivedi <[email protected]>
commit 8addbfc7b308d591f8a5f2f6bb24d08d9d79dfbb upstream.
This has been enabled for unprivileged programs for only one kernel release, hence the expected annoyances due to this move are low. Users using ringbuf can stick to non-dynptr APIs. The actual use cases dynptr is meant to serve may not make sense in unprivileged BPF programs.
Hence, gate these helpers behind CAP_BPF and limit use to privileged BPF programs.
--- kernel/bpf/helpers.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-)
kernel/bpf/helpers.c +14 -14
@@ -1627,26 +1627,12 @@ bpf_base_func_proto(enum bpf_func_id funreturn &bpf_ringbuf_discard_proto;case BPF_FUNC_ringbuf_query:return &bpf_ringbuf_query_proto; -case BPF_FUNC_ringbuf_reserve_dynptr: -return &bpf_ringbuf_reserve_dynptr_proto; -case BPF_FUNC_ringbuf_submit_dynptr: -return &bpf_ringbuf_submit_dynptr_proto; -case BPF_FUNC_ringbuf_discard_dynptr: -return &bpf_ringbuf_discard_dynptr_proto;case BPF_FUNC_for_each_map_elem:return &bpf_for_each_map_elem_proto;case BPF_FUNC_loop:return &bpf_loop_proto;case BPF_FUNC_strncmp:return &bpf_strncmp_proto; -case BPF_FUNC_dynptr_from_mem: -return &bpf_dynptr_from_mem_proto; -case BPF_FUNC_dynptr_read: -return &bpf_dynptr_read_proto; -case BPF_FUNC_dynptr_write: -return &bpf_dynptr_write_proto; -case BPF_FUNC_dynptr_data: -return &bpf_dynptr_data_proto;default :break ; }
@@ -1675,6 +1661,20 @@ bpf_base_func_proto(enum bpf_func_id funreturn &bpf_timer_cancel_proto;case BPF_FUNC_kptr_xchg:return &bpf_kptr_xchg_proto; +case BPF_FUNC_ringbuf_reserve_dynptr: +return &bpf_ringbuf_reserve_dynptr_proto; +case BPF_FUNC_ringbuf_submit_dynptr: +return &bpf_ringbuf_submit_dynptr_proto; +case BPF_FUNC_ringbuf_discard_dynptr: +return &bpf_ringbuf_discard_dynptr_proto; +case BPF_FUNC_dynptr_from_mem: +return &bpf_dynptr_from_mem_proto; +case BPF_FUNC_dynptr_read: +return &bpf_dynptr_read_proto; +case BPF_FUNC_dynptr_write: +return &bpf_dynptr_write_proto; +case BPF_FUNC_dynptr_data: +return &bpf_dynptr_data_proto;default :break ; }
Greg Kroah-Hartman
maintainerPATCH 15/17 net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear
In reply to Greg Kroah-HartmanFrom: Daniel Golle <[email protected]>
commit ae3ed15da5889263de372ff9df2e83e16acca4cb upstream.
Setting ib1 state to MTK_FOE_STATE_UNBIND in __mtk_foe_entry_clear routine as done by commit 0e80707d94e4c8 ("net: ethernet: mtk_eth_soc:
fix typo in __mtk_foe_entry_clear") breaks flow offloading, at least on older MTK_NETSYS_V1 SoCs, OpenWrt users have confirmed the bug on MT7622 and MT7621 systems.
Felix Fietkau suggested to use MTK_FOE_STATE_INVALID instead which works well on both, MTK_NETSYS_V1 and MTK_NETSYS_V2.
Tested on MT7622 (Linksys E8450) and MT7986 (BananaPi BPI-R3).
--- drivers/net/ethernet/mediatek/mtk_ppe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/mediatek/mtk_ppe.c +1 -1
@@ -412,7 +412,7 @@ __mtk_foe_entry_clear(struct mtk_ppe *ppif (entry->hash !=0xffff ) { ppe->foe_table[entry->hash].ib1 &= ~MTK_FOE_IB1_STATE ; ppe->foe_table[entry->hash].ib1 |=FIELD_PREP (MTK_FOE_IB1_STATE , -MTK_FOE_STATE_UNBIND ); +MTK_FOE_STATE_INVALID );dma_wmb (); } entry->hash =0xffff ;
Greg Kroah-Hartman
maintainerPATCH 16/17 bpf: Fix resetting logic for unreferenced kptrs
In reply to Greg Kroah-HartmanFrom: Jules Irenge <[email protected]>
commit 9fad7fe5b29803584c7f17a2abe6c2936fec6828 upstream.
Sparse reported a warning at bpf_map_free_kptrs()
"warning: Using plain integer as NULL pointer"
During the process of fixing this warning, it was discovered that the current code erroneously writes to the pointer variable instead of deferencing and writing to the actual kptr. Hence, Sparse tool accidentally helped to uncover this problem. Fix this by doing WRITE_ONCE(*p, 0) instead of WRITE_ONCE(p, 0).
Note that the effect of this bug is that unreferenced kptrs will not be cleared during check_and_free_fields. It is not a problem if the clearing is not done during map_free stage, as there is nothing to free for them.
--- kernel/bpf/syscall.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
kernel/bpf/syscall.c +1 -1
@@ -598,7 +598,7 @@ void bpf_map_free_kptrs(struct bpf_map *if (off_desc->type ==BPF_KPTR_UNREF ) {u64 *p = (u64 *)btf_id_ptr; -WRITE_ONCE (p,0 ); +WRITE_ONCE (*p,0 );continue ; } old_ptr =xchg (btf_id_ptr,0 );
Greg Kroah-Hartman
maintainerPATCH 17/17 Bluetooth: use hdev->workqueue when queuing hdev->{cmd,ncmd}_timer works
In reply to Greg Kroah-HartmanFrom: Tetsuo Handa <[email protected]>
commit deee93d13d385103205879a8a0915036ecd83261 upstream.
syzbot is reporting attempt to schedule hdev->cmd_work work from system_wq WQ into hdev->workqueue WQ which is under draining operation [1], for commit c8efcc2589464ac7 ("workqueue: allow chained queueing during destruction") does not allow such operation.
The check introduced by commit 877afadad2dce8aa ("Bluetooth: When HCI work queue is drained, only queue chained work") was incomplete.
Use hdev->workqueue WQ when queuing hdev->{cmd,ncmd}_timer works because hci_{cmd,ncmd}_timeout() calls queue_work(hdev->workqueue). Also, protect the queuing operation with RCU read lock in order to avoid calling queue_delayed_work() after cancel_delayed_work() completed.
--- net/bluetooth/hci_core.c | 15 +++++++++++++-- net/bluetooth/hci_event.c | 6 ++++-- 2 files changed, 17 insertions(+), 4 deletions(-)
net/bluetooth/hci_core.c +13 -2
@@ -597,6 +597,15 @@ static int hci_dev_do_reset(struct hci_d/* Cancel these to avoid queueing non-chained pending work */ hci_dev_set_flag (hdev,HCI_CMD_DRAIN_WORKQUEUE ); +/* Wait for +* +* if (!hci_dev_test_flag(hdev, HCI_CMD_DRAIN_WORKQUEUE)) +* queue_delayed_work(&hdev->{cmd,ncmd}_timer) +* +* inside RCU section to see the flag or complete scheduling. +*/ +synchronize_rcu (); +/* Explicitly cancel works in case scheduled after setting the flag. */ cancel_delayed_work (&hdev->cmd_timer);cancel_delayed_work (&hdev->ncmd_timer);
@@ -4056,12 +4065,14 @@ static void hci_cmd_work(struct work_strif (res <0 )__hci_cmd_sync_cancel (hdev, -res); +rcu_read_lock ();if (test_bit (HCI_RESET , &hdev->flags) ||hci_dev_test_flag (hdev,HCI_CMD_DRAIN_WORKQUEUE ))cancel_delayed_work (&hdev->cmd_timer);else -schedule_delayed_work (&hdev->cmd_timer, -HCI_CMD_TIMEOUT ); +queue_delayed_work (hdev->workqueue, &hdev->cmd_timer, +HCI_CMD_TIMEOUT ); +rcu_read_unlock (); }else {skb_queue_head (&hdev->cmd_q, skb);queue_work (hdev->workqueue, &hdev->cmd_work);
net/bluetooth/hci_event.c +4 -2
@@ -3766,16 +3766,18 @@ static inline void handle_cmd_cnt_and_ti {cancel_delayed_work (&hdev->cmd_timer); +rcu_read_lock ();if (!test_bit (HCI_RESET , &hdev->flags)) {if (ncmd) {cancel_delayed_work (&hdev->ncmd_timer);atomic_set (&hdev->cmd_cnt,1 ); }else {if (!hci_dev_test_flag (hdev,HCI_CMD_DRAIN_WORKQUEUE )) -schedule_delayed_work (&hdev->ncmd_timer, -HCI_NCMD_TIMEOUT ); +queue_delayed_work (hdev->workqueue, &hdev->ncmd_timer, +HCI_NCMD_TIMEOUT ); } } +rcu_read_unlock (); } static u8 hci_cc_le_read_buffer_size_v2(struct hci_dev *hdev, void *data,
Works on Arch Linux
Quoted 108 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.0.1 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 Wed, 12 Oct 2022 07:03:19 +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/v6.x/stable-review/patch-6.0.1-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.0.y
and the diffstat can be found below.thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:Greg Kroah-Hartman <[email protected]>
Linux 6.0.1-rc1Tetsuo Handa <[email protected]>
Bluetooth: use hdev->workqueue when queuing hdev->{cmd,ncmd}_timer worksJules Irenge <[email protected]>
bpf: Fix resetting logic for unreferenced kptrsDaniel Golle <[email protected]>
net: ethernet:mtk_eth_soc: fix state in__mtk_foe_entry_clearKumar Kartikeya Dwivedi <[email protected]>
bpf: Gate dynptr API behindCAP_BPFPalmer Dabbelt <[email protected]>
RISC-V: Print SSTC in canonical orderMario Limonciello <[email protected]>
gpiolib: acpi: Add a quirk for Asus UM325UAZMario Limonciello <[email protected]>
gpiolib: acpi: Add support to ignore programming an interruptJohan Hovold <[email protected]>
USB: serial:ftdi_sio: fix 300 bps rate for SIOTadeusz Struk <[email protected]>
usb: mon: make mmapped memory read onlyAleksa Savic <[email protected]>
hwmon: (aquacomputer_d5next) Fix Quadro fan speed offsetsShuah Khan <[email protected]>
docs: update mediator information in CoC docsKees Cook <[email protected]>
hardening: Remove Clang's enable flag for -ftrivial-auto-var-init=zeroSami Tolvanen <[email protected]>
Makefile.extrawarn: Move -Wcast-function-type-strict to W=1Bart Van Assche <[email protected]>
sparc: Unbreak the buildAl Viro <[email protected]>
fix coredump breakageDongliang Mu <[email protected]>
fs: fix UAF/GPF bug innilfs_mdt_destroyJalal Mostafa <[email protected]>
xsk: Inheritneed_wakeupflag for shared sockets-------------
Diffstat:
.../process/code-of-conduct-interpretation.rst | 2 +- Makefile | 8 ++--- arch/riscv/kernel/cpu.c | 2 +- arch/sparc/include/asm/smp_32.h | 15 ++++----- arch/sparc/kernel/leon_smp.c | 12 ++++--- arch/sparc/kernel/sun4d_smp.c | 12 ++++--- arch/sparc/kernel/sun4m_smp.c | 10 +++--- arch/sparc/mm/srmmu.c | 29 ++++++++--------- drivers/gpio/gpiolib-acpi.c | 38 +++++++++++++++++++--- drivers/hwmon/aquacomputer_d5next.c | 2 +- drivers/net/ethernet/mediatek/mtk_ppe.c | 2 +- drivers/usb/mon/mon_bin.c | 5 +++ drivers/usb/serial/ftdi_sio.c | 3 +- fs/coredump.c | 3 +- fs/inode.c | 7 ++-- include/net/xsk_buff_pool.h | 2 +- kernel/bpf/helpers.c | 28 ++++++++-------- kernel/bpf/syscall.c | 2 +- net/bluetooth/hci_core.c | 15 +++++++-- net/bluetooth/hci_event.c | 6 ++-- net/xdp/xsk.c | 4 +-- net/xdp/xsk_buff_pool.c | 5 +-- scripts/Makefile.extrawarn | 1 + security/Kconfig.hardening | 14 +++++--- 24 files changed, 141 insertions(+), 86 deletions(-)
Hi!
Quoted 3 lines
Works on Arch Linux
Tested-by Luna Jernberg <[email protected]>
Can we get more details, like list of architectures you build it on and list of machines or at least architectures you test it on?
Best regards,
Pavel
Signature · 2 lines
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
model name : Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz
so amd64 an older HP desktop machine i got from my brother that now serves life as my Arch Linux homeserver
Quoted 15 lines · Pavel Machek
Hi!
Quoted 3 lines
Works on Arch Linux
Tested-by Luna Jernberg <[email protected]>Can we get more details, like list of architectures you build it on and list of machines or at least architectures you test it on?
Best regards,
Pavel
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Hey Greg,
Ran tests and boot tested on my system, no regressions found
Quoted 10 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.0.1 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 Wed, 12 Oct 2022 07:03:19 +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/v6.x/stable-review/patch-6.0.1-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.0.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.
NOTE:
Following kernel crash reported on arm64 db410c. This reported [1] on Linux next-20220614 and not a new issue. However, We will investigate this device's specific issues.
[ 10.387800] Internal error: Oops: 8600000f [#1] PREEMPT SMP [ 10.492941] Internal error: Oops: 96000006 [#2] PREEMPT SMP [ 10.880744] Internal error: Oops: 96000006 [#3] PREEMPT SMP [ 11.575707] Internal error: Oops: 96000006 [#4] PREEMPT SMP
Crash log:
[ 10.348663] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 [ 10.369488] Mem abort info: [ 10.369630] ESR = 0x0000000096000006 [ 10.371870] EC = 0x25: DABT (current EL), IL = 32 bits [ 10.373514] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 [ 10.381921] Mem abort info: [ 10.382116] SET = 0, FnV = 0 [ 10.387666] Unable to handle kernel execute from non-executable memory at virtual address ffff00000213afc8 [ 10.387683] Mem abort info: [ 10.387690] ESR = 0x000000008600000f [ 10.387699] EC = 0x21: IABT (current EL), IL = 32 bits [ 10.387709] SET = 0, FnV = 0 [ 10.387718] EA = 0, S1PTW = 0 [ 10.387726] FSC = 0x0f: level 3 permission fault [ 10.387735] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000081f4a000 [ 10.387747] [ffff00000213afc8] pgd=18000000bfef7003, p4d=18000000bfef7003, pud=18000000bfef6003, pmd=18000000bfef3003, pte=006800008213af07 [ 10.387800] Internal error: Oops: 8600000f [#1] PREEMPT SMP [ 10.387807] Modules linked in: venus_enc(+) videobuf2_dma_contig
qcom_wcnss_pil adv7511 cec snd_soc_lpass_apq8016 snd_soc_lpass_cpu snd_soc_msm8916_digital snd_soc_lpass_platform qrtr qcom_q6v5_mss snd_soc_apq8016_sbc qcom_pil_info snd_soc_qcom_common qcom_spmi_vadc qcom_q6v5 snd_soc_msm8916_analog qcom_spmi_temp_alarm qcom_pon qcom_sysmon rtc_pm8xxx msm qcom_vadc_common qcom_camss qcom_common venus_core qcom_glink_smem qmi_helpers videobuf2_dma_sg v4l2_fwnode gpu_sched i2c_qcom_cci v4l2_mem2mem qcom_rng v4l2_async qnoc_msm8916 drm_dp_aux_bus qcom_stats mdt_loader drm_display_helper videobuf2_memops videobuf2_v4l2 videobuf2_common crct10dif_ce icc_smd_rpm display_connector drm_kms_helper rmtfs_mem socinfo fuse drm
[ 10.387979] CPU: 1 PID: 278 Comm: systemd-udevd Not tainted 6.0.1-rc1 #1 [ 10.387988] Hardware name: Qualcomm Technologies, Inc. APQ 8016 SBC (DT) [ 10.387993] pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 10.388003] pc : 0xffff00000213afc8 [ 10.388013] lr : sysfs_kf_seq_show+0xb4/0x130
ref:
[1] https://lore.kernel.org/linux-arm-kernel/YqnfRyJkhPCVBmDz@FVFF77S0Q05N/T/
[2] https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-6.0.y/build/v6.0-18-g6556cadf037c/testrun/12319851/suite/log-parser-boot/tests/
## Build
* kernel: 6.0.1-rc1
* git: https://gitlab.com/Linaro/lkft/mirrors/stable/linux-stable-rc
* git branch: linux-6.0.y
* git commit: 6556cadf037c53a554c4eadd80a3bd652f38b208
* git describe: v6.0-18-g6556cadf037c
* test details:
https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-6.0.y/build/v6.0-18-g6556cadf037c
## No Test Regressions (compared to v6.0)
## No Metric Regressions (compared to v6.0)
## No Test Fixes (compared to v6.0)
## No Metric Fixes (compared to v6.0)
## Test result summary
total: 114438, pass: 102109, fail: 1135, skip: 11045, xfail: 149
## Build Summary
* arc: 10 total, 10 passed, 0 failed
* arm: 333 total, 329 passed, 4 failed
* arm64: 65 total, 65 passed, 0 failed
* i386: 55 total, 55 passed, 0 failed
* mips: 56 total, 55 passed, 1 failed
* parisc: 12 total, 12 passed, 0 failed
* powerpc: 69 total, 63 passed, 6 failed
* riscv: 27 total, 27 passed, 0 failed
* s390: 21 total, 21 passed, 0 failed
* sh: 24 total, 24 passed, 0 failed
* sparc: 12 total, 12 passed, 0 failed
* x86_64: 58 total, 58 passed, 0 failed
## Test suites summary
* fwts
* igt-gpu-tools
* kselftest-android
* kselftest-drivers-dma-buf
* kselftest-efivarfs
* kselftest-filesystems
* kselftest-filesystems-binderfs
* kselftest-firmware
* kselftest-fpu
* kselftest-net
* kselftest-net-forwarding
* kselftest-netfilter
* kselftest-nsfs
* kselftest-openat2
* kselftest-pid_namespace
* kselftest-pidfd
* kselftest-proc
* kselftest-pstore
* kselftest-tc-testing
* kselftest-timens
* kselftest-timers
* kselftest-tmpfs
* kselftest-tpm2
* kselftest-user
* kselftest-vm
* kunit
* kvm-unit-tests
* libgpiod
* libhugetlbfs
* log-parser-boot
* log-parser-test
* ltp-cap_bounds
* ltp-commands
* ltp-containers
* ltp-controllers
* ltp-cpuhotplug
* ltp-crypto
* ltp-cve
* ltp-dio
* ltp-fcntl-locktests
* ltp-filecaps
* ltp-fs
* ltp-fs_bind
* ltp-fs_perms_simple
* ltp-fsx
* ltp-hugetlb
* ltp-io
* ltp-ipc
* ltp-math
* ltp-mm
* ltp-nptl
* ltp-open-posix-tests
* ltp-pty
* ltp-sched
* ltp-securebits
* ltp-smoke
* ltp-syscalls
* ltp-tracing
* network-basic-tests
* packetdrill
* rcutorture
* v4l2-compliance
* vdso
--
Linaro LKFT
https://lkft.linaro.org
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.0.1 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 Wed, 12 Oct 2022 07:03:19 +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/v6.x/stable-review/patch-6.0.1-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.0.y
and the diffstat can be found below.thanks,
greg k-h
Tested rc1 against the Fedora build system (aarch64, armv7, ppc64le, s390x, x86_64), and boot tested x86_64. No regressions noted.
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.0.1 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 Wed, 12 Oct 2022 07:03:19 +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/v6.x/stable-review/patch-6.0.1-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.0.y
and the diffstat can be found below.thanks,
greg k-h
On ARCH_BRCMSTB using 32-bit and 64-bit ARM kernels, build tested on BMIPS_GENERIC:
Signature · 1 line
Florian
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.0.1 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 Wed, 12 Oct 2022 07:03:19 +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/v6.x/stable-review/patch-6.0.1-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.0.y
and the diffstat can be found below.thanks,
greg k-h
Compiled and booted on my test system. No dmesg regressions.
thanks,
-- Shuah
Quoted 10 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.0.1 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 Wed, 12 Oct 2022 07:03:19 +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/v6.x/stable-review/patch-6.0.1-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.0.y
and the diffstat can be found below.thanks,
greg k-h
Hi Greg,
Compiled and booted on my test system Lenovo P50s: Intel Core i7 No emergency and critical messages in the dmesg
./perf bench sched all
# Running sched/messaging benchmark...
# 20 sender and receiver processes per group
# 10 groups == 400 processes run
Total time: 0.676 [sec]
# Running sched/pipe benchmark...
# Executed 1000000 pipe operations between two processes
Total time: 8.978 [sec]
8.978893 usecs/op
111372 ops/secThanks
-Zan
Quoted 7 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.0.1 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 Wed, 12 Oct 2022 07:03:19 +0000. Anything received after that time might be too late.
6.0.1-rc1 compiled and booted on my x86_64 test system. No errors or regressions.
Thanks,
-srw
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.0.1 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 Wed, 12 Oct 2022 07:03:19 +0000. Anything received after that time might be too late.
Build results:
total: 149 pass: 149 fail: 0 Qemu test results: total: 490 pass: 490 fail: 0
Guenter
Quoted 7 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.0.1 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 Wed, 12 Oct 2022 07:03:19 +0000. Anything received after that time might be too late.
Hi Greg,
6.0.1-rc1 tested.
Run tested on:
- Intel Alder Lake x86_64 (nuc12 i7-1260P)
In addition - build tested for:
- Allwinner A64
- Allwinner H3
- Allwinner H5
- Allwinner H6
- NXP iMX6
- NXP iMX8
- Qualcomm Dragonboard
- Rockchip RK3288
- Rockchip RK3328
- Rockchip RK3399pro
- Samsung Exynos5422
--
Rudi
Quoted 5 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.0.1 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.
Successfully cross-compiled for arm64 (bcm2711_defconfig, GCC 10.2.0) and powerpc (ps3_defconfig, GCC 12.1.0).
Signature · 1 line
An old man doll... just what I always wanted! - Clara
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.0.1 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 Wed, 12 Oct 2022 07:03:19 +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/v6.x/stable-review/patch-6.0.1-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.0.y
and the diffstat can be found below.thanks,
greg k-h
No new regressions for Tegra ...
Test results for stable-v6.0:
11 builds: 11 pass, 0 fail
28 boots: 28 pass, 0 fail
130 tests: 128 pass, 2 failLinux version: 6.0.1-rc1-g6556cadf037c
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-a04Test failures: tegra194-p2972-0000: boot.py
tegra210-p3450-0000: devices
A fix is available for the tegra210 failure and the other is a new kernel warning that is being discussed but nothing critical.
Jon
Signature · 1 line
nvpublic
Hi Greg,
Quoted 7 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.0.1 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 Wed, 12 Oct 2022 07:03:19 +0000. Anything received after that time might be too late.
Build test (gcc version 12.2.1 20220925):
mips: 52 configs -> no failure
arm: 100 configs -> no failure
arm64: 3 configs -> no failurex86_64: 4 configs -> no failure alpha allmodconfig -> no failure csky allmodconfig -> no failure powerpc allmodconfig -> no failure riscv allmodconfig -> no failure s390 allmodconfig -> no failure xtensa allmodconfig -> no failure
Boot test:x86_64: Booted on my test laptop. No regression.
Signature · 2 lines
Regards Sudip
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.0.1 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 Wed, 12 Oct 2022 07:03:19 +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/v6.x/stable-review/patch-6.0.1-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.0.y
and the diffstat can be found below.thanks,
greg k-h
Built and booted successfully on RISC-V RV64 (HiFive Unmatched).