diff options
| author | Kumar Kartikeya Dwivedi <memxor@gmail.com> | 2026-09-04 10:43:19 +0200 |
|---|---|---|
| committer | Alexei Starovoitov <ast@kernel.org> | 2026-09-04 07:58:36 -0700 |
| commit | 6668ed271eaefaa63e686bdfbedaeb7b8e492722 (patch) | |
| tree | 58e8288fead484f6755ad0815fc74c3742663761 /arch/m68k/Kconfig | |
| download | linux-stable-6668ed271eaefaa63e686bdfbedaeb7b8e492722.tar.gz linux-stable-6668ed271eaefaa63e686bdfbedaeb7b8e492722.zip | |
selftests/bpf: Reject graph kptr use after RCU unlockgrafted
Add a sleepable verifier test that loads a graph-node local kptr in an
explicit RCU read-side critical section, then passes its node to
bpf_rbtree_remove() after the section ends.
Before the verifier fix, the stale NON_OWN_REF flag makes the node look like
a live borrowed reference and the program is accepted. After the fix, the
pointer is demoted without NON_OWN_REF and the graph kfunc argument is
rejected.
Also exercise a graph kptr loaded while a spin lock provides implicit RCU
protection. The pointer must be invalidated when the lock is released, which
guards the required ordering between non-owning-reference invalidation and
RCU demotion.
Update the existing fault-protected load test state description. The
post-unlock pointer no longer carries NON_OWN_REF, but remains readable
because the load is rewritten to use BPF_PROBE_MEM.
Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://lore.kernel.org/r/20260904084325.52250-7-memxor@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'arch/m68k/Kconfig')
| -rw-r--r-- | arch/m68k/Kconfig | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig new file mode 100644 index 000000000..11835eb59 --- /dev/null +++ b/arch/m68k/Kconfig @@ -0,0 +1,137 @@ +# SPDX-License-Identifier: GPL-2.0 +config M68K + bool + default y + select ARCH_32BIT_OFF_T + select ARCH_HAS_BINFMT_FLAT + select ARCH_HAS_CPU_CACHE_ALIASING + select ARCH_HAS_CPU_FINALIZE_INIT if MMU + select ARCH_HAS_CURRENT_STACK_POINTER + select ARCH_HAS_DMA_PREP_COHERENT if M68K_NONCOHERENT_DMA && !COLDFIRE + select ARCH_HAS_SYNC_DMA_FOR_DEVICE if M68K_NONCOHERENT_DMA + select ARCH_HAVE_NMI_SAFE_CMPXCHG if RMW_INSNS + select ARCH_MIGHT_HAVE_PC_PARPORT if ISA + select ARCH_NO_PREEMPT if !COLDFIRE + select ARCH_USE_MEMTEST if MMU_MOTOROLA + select ARCH_WANT_IPC_PARSE_VERSION + select BINFMT_FLAT_ARGVP_ENVP_ON_STACK + select DMA_DIRECT_REMAP if M68K_NONCOHERENT_DMA && !COLDFIRE + select GENERIC_ATOMIC64 + select GENERIC_CPU_DEVICES + select GENERIC_IOMAP if HAS_IOPORT && MMU && !COLDFIRE + select GENERIC_IRQ_SHOW + select GENERIC_LIB_ASHLDI3 + select GENERIC_LIB_ASHRDI3 + select GENERIC_LIB_LSHRDI3 + select GENERIC_LIB_MULDI3 + select GENERIC_PCI_IOMAP if PCI + select HAS_IOPORT if PCI || ISA || ATARI_ROM_ISA + select HAVE_ARCH_LIBGCC_H + select HAVE_ARCH_SECCOMP + select HAVE_ARCH_SECCOMP_FILTER + select HAVE_ASM_MODVERSIONS + select HAVE_DEBUG_BUGVERBOSE + select HAVE_EFFICIENT_UNALIGNED_ACCESS if !CPU_HAS_NO_UNALIGNED + select HAVE_LD_DEAD_CODE_DATA_ELIMINATION + select HAVE_MOD_ARCH_SPECIFIC + select HAVE_UID16 + select MMU_GATHER_NO_RANGE if MMU + select MODULES_USE_ELF_REL + select MODULES_USE_ELF_RELA + select NO_DMA if !MMU && !COLDFIRE + select OLD_SIGACTION + select OLD_SIGSUSPEND3 + select UACCESS_MEMCPY if !MMU + select ZONE_DMA + +config CPU_BIG_ENDIAN + def_bool y + +config ARCH_HAS_ILOG2_U32 + bool + +config ARCH_HAS_ILOG2_U64 + bool + +config GENERIC_HWEIGHT + bool + default y + +config GENERIC_CALIBRATE_DELAY + bool + default y + +config GENERIC_CSUM + bool + +config TIME_LOW_RES + bool + default y + +config NO_IOPORT_MAP + def_bool y + +config HZ + int + default 1000 if CLEOPATRA + default 100 + +config PGTABLE_LEVELS + default 2 if SUN3 || COLDFIRE + default 3 + +config MMU + bool "MMU-based Paged Memory Management Support" + default y + help + Select if you want MMU-based virtualised addressing space + support by paged memory management. If unsure, say 'Y'. + +config MMU_MOTOROLA + def_bool MMU && M68KCLASSIC + select HAVE_PAGE_SIZE_4KB + +config MMU_COLDFIRE + def_bool MMU && COLDFIRE + select HAVE_PAGE_SIZE_8KB + +config MMU_SUN3 + def_bool MMU && SUN3 + select HAVE_PAGE_SIZE_8KB + +config ARCH_SUPPORTS_KEXEC + def_bool (M68KCLASSIC || SUN3) && MMU + +config BOOTINFO_PROC + bool "Export bootinfo in procfs" + depends on KEXEC && (M68KCLASSIC || SUN3) + help + Say Y to export the bootinfo used to boot the kernel in a + "bootinfo" file in procfs. This is useful with kexec. + +menu "Platform setup" + +source "arch/m68k/Kconfig.cpu" + +source "arch/m68k/Kconfig.machine" + +source "arch/m68k/Kconfig.bus" + +endmenu + +menu "Kernel Features" + +endmenu + +if !MMU +menu "Power management options" + +config PM + bool "Power Management support" + help + Support processor power management modes + +endmenu +endif + +source "arch/m68k/Kconfig.devices" |
