umber-kernel/scripts
Kees Cook 67f2df3b82 mm/slab: Plumb kmem_buckets into __do_kmalloc_node()
Introduce CONFIG_SLAB_BUCKETS which provides the infrastructure to
support separated kmalloc buckets (in the following kmem_buckets_create()
patches and future codetag-based separation). Since this will provide
a mitigation for a very common case of exploits, it is recommended to
enable this feature for general purpose distros. By default, the new
Kconfig will be enabled if CONFIG_SLAB_FREELIST_HARDENED is enabled (and
it is added to the hardening.config Kconfig fragment).

To be able to choose which buckets to allocate from, make the buckets
available to the internal kmalloc interfaces by adding them as the
second argument, rather than depending on the buckets being chosen from
the fixed set of global buckets. Where the bucket is not available,
pass NULL, which means "use the default system kmalloc bucket set"
(the prior existing behavior), as implemented in kmalloc_slab().

To avoid adding the extra argument when !CONFIG_SLAB_BUCKETS, only the
top-level macros and static inlines use the buckets argument (where
they are stripped out and compiled out respectively). The actual extern
functions can then be built without the argument, and the internals
fall back to the global kmalloc buckets unconditionally.

Co-developed-by: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Kees Cook <kees@kernel.org>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
2024-07-03 12:24:19 +02:00
..
atomic locking/atomic: scripts: Clarify ordering of conditional atomics 2024-02-20 09:55:09 +01:00
basic
clang-tools gen_compile_commands: fix invalid escape sequence warning 2024-02-15 06:57:19 +09:00
coccinelle Coccinelle: pm_runtime: Fix grammar in comment 2024-05-20 21:31:33 +02:00
dtc kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00
dummy-tools
gcc-plugins gcc-plugins/stackleak: Avoid .head.text section 2024-04-03 14:35:49 -07:00
gdb Mainly singleton patches, documented in their respective changelogs. 2024-05-19 14:02:03 -07:00
genksyms kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00
kconfig kconfig: use sym_get_choice_menu() in sym_check_prop() 2024-05-16 03:18:41 +09:00
ksymoops
mod Kbuild updates for v6.10 2024-05-18 12:39:20 -07:00
package kbuild: buildtar: install riscv compressed images as vmlinuz 2024-05-10 04:34:52 +09:00
selinux
tracing
.gitignore
Kbuild.include kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00
Kconfig.include kbuild: Add -Wa,--fatal-warnings to as-instr invocation 2024-02-16 16:07:07 -08:00
Lindent
Makefile LoongArch: rust: Switch to use built-in rustc target 2024-05-14 12:24:18 +08:00
Makefile.asm-generic kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00
Makefile.btf kbuild,bpf: Switch to using --btf_features for pahole v1.26 and later 2024-05-09 14:44:35 -07:00
Makefile.build Kbuild updates for v6.10 2024-05-18 12:39:20 -07:00
Makefile.clang
Makefile.clean kbuild: use $(src) instead of $(srctree)/$(src) for source directory 2024-05-10 04:34:52 +09:00
Makefile.compiler kbuild: Add -Wa,--fatal-warnings to as-instr invocation 2024-02-16 16:07:07 -08:00
Makefile.debug kbuild: rust: use `-Zdebuginfo-compression` 2024-04-02 17:41:22 +02:00
Makefile.defconf kbuild: defconf: use SRCARCH to find merged configs 2024-01-28 01:13:37 +09:00
Makefile.dtbinst kbuild: simplify dtbs_install by reading the list of compiled DTBs 2024-02-19 18:20:39 +09:00
Makefile.extrawarn kbuild: enable -Wcast-function-type-strict unconditionally 2024-05-19 14:36:16 -07:00
Makefile.gcc-plugins
Makefile.headersinst
Makefile.host kbuild: use $(obj)/ instead of $(src)/ for common pattern rules 2024-05-10 04:33:45 +09:00
Makefile.kasan
Makefile.kcov
Makefile.kcsan
Makefile.kmsan
Makefile.lib Kbuild updates for v6.10 2024-05-18 12:39:20 -07:00
Makefile.modfinal kbuild: use GCOV_PROFILE and KCSAN_SANITIZE in scripts/Makefile.modfinal 2024-05-14 23:36:12 +09:00
Makefile.modinst
Makefile.modpost Kbuild updates for v6.10 2024-05-18 12:39:20 -07:00
Makefile.package kbuild: unexport abs_srctree and abs_objtree 2024-03-10 17:27:17 +09:00
Makefile.randstruct
Makefile.ubsan ubsan: Reintroduce signed overflow sanitizer 2024-02-20 20:44:49 -08:00
Makefile.userprogs
Makefile.vdsoinst more s390 updates for 6.10 merge window 2024-05-21 12:09:36 -07:00
Makefile.vmlinux Makefile: remove redundant tool coverage variables 2024-05-14 23:35:48 +09:00
Makefile.vmlinux_o x86/bugs: Rename CONFIG_CPU_SRSO => CONFIG_MITIGATION_SRSO 2024-01-10 10:52:29 +01:00
as-version.sh
asn1_compiler.c
bloat-o-meter
bootgraph.pl
bpf_doc.py scripts/bpf_doc: Use silent mode when exec make cmd 2024-03-15 14:46:31 +01:00
cc-can-link.sh
cc-version.sh
check-git
check-sysctl-docs scripts: check-sysctl-docs: handle per-namespace sysctls 2024-02-23 12:13:09 +01:00
check-uapi.sh check-uapi: Introduce check-uapi.sh 2023-12-29 22:25:20 +09:00
check-variable-fonts.sh docs: scripts/check-variable-fonts.sh: Improve commands for detection 2024-05-02 10:14:52 -06:00
check_extable.sh
checkdeclares.pl
checkincludes.pl
checkkconfigsymbols.py
checkpatch.pl scripts: checkpatch: check unused parameters for function-like macro 2024-05-11 15:51:44 -07:00
checkstack.pl scripts/checkstack.pl: fix no space expression between sp and offset 2023-12-29 12:22:28 -08:00
checksyscalls.sh
checkversion.pl
cleanfile
cleanpatch
coccicheck
config
const_structs.checkpatch const_structs.checkpatch: add lcd_ops 2024-05-03 10:45:55 +01:00
decode_stacktrace.sh scripts/decode_stacktrace.sh: optionally use LLVM utilities 2024-01-12 15:20:46 -08:00
decodecode scripts/decodecode: add support for LoongArch 2023-12-29 12:22:25 -08:00
depmod.sh
dev-needs.sh
diffconfig
documentation-file-ref-check
export_report.pl
extract-ikconfig
extract-module-sig.pl
extract-sys-certs.pl
extract-vmlinux
extract_xc3028.pl
faddr2line
file-size.sh
find-unused-docs.sh
gcc-x86_32-has-stack-protector.sh
gcc-x86_64-has-stack-protector.sh
gen-randstruct-seed.sh
generate_initcall_order.pl
generate_rust_analyzer.py kbuild: use the upstream `alloc` crate 2024-04-16 22:03:14 +02:00
generate_rust_target.rs RISC-V Patches for the 6.10 Merge Window, Part 1 2024-05-22 09:56:00 -07:00
get_abi.pl scripts/get_abi.pl: ignore some temp files 2024-01-03 14:02:17 -07:00
get_dvb_firmware
get_feat.pl
get_maintainer.pl get_maintainer: remove stray punctuation when cleaning file emails 2023-12-31 10:57:42 -08:00
gfp-translate
git.orderFile scripts: Introduce a default git.orderFile 2023-12-29 22:25:20 +09:00
head-object-list.txt
headerdep.pl
headers_install.sh m68k: Avoid CONFIG_COLDFIRE switch in uapi header 2024-05-07 08:55:23 +10:00
insert-sys-cert.c
install.sh
jobserver-exec
kallsyms.c scripts/kallysms: always include __start and __stop symbols 2024-04-25 20:55:50 -07:00
kernel-doc mm/slab: Plumb kmem_buckets into __do_kmalloc_node() 2024-07-03 12:24:19 +02:00
ld-version.sh
leaking_addresses.pl leaking_addresses: Provide mechanism to scan binary files 2024-02-29 13:38:03 -08:00
link-vmlinux.sh kbuild: Fix changing ELF file type for output of gen_btf for big endian 2024-02-15 06:56:40 +09:00
make_fit.py arm64: boot: Support Flat Image Tree 2024-04-12 15:48:32 +01:00
makelst
markup_oops.pl
min-tool-version.sh rust: upgrade to Rust 1.78.0 2024-05-05 20:17:25 +02:00
misc-check
mkcompile_h
mksysmap kallsyms: ignore ARMv4 thunks along with others 2024-02-15 22:44:56 +09:00
mkuboot.sh
module.lds.S The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
modules-check.sh
nsdeps
objdiff
objdump-func
orc_hash.sh
pahole-version.sh
parse-maintainers.pl
patch-kernel
profile2linkerlist.pl
prune-kernel
recordmcount.c
recordmcount.h
recordmcount.pl riscv: remove MCOUNT_NAME workaround 2024-02-22 15:38:54 -08:00
relocs_check.sh
remove-stale-files
rust_is_available.sh
rust_is_available_bindgen_libclang.h
rust_is_available_test.py
rustdoc_test_builder.rs
rustdoc_test_gen.rs
setlocalversion
show_delta
sign-file.c
sorttable.c
sorttable.h
spdxcheck-test.sh
spdxcheck.py scripts/spdxcheck: Add count of missing files to stats output 2024-05-04 19:00:54 +02:00
spdxexclude
spelling.txt
sphinx-pre-install scripts: sphinx-pre-install: Add pyyaml hint to other distros 2024-04-02 10:07:51 -06:00
split-man.pl
stackdelta
stackusage
subarch.include
syscallhdr.sh
syscallnr.sh
syscalltbl.sh
tags.sh scripts/tags.sh: remove find_sources 2024-01-04 17:01:15 +01:00
test_fortify.sh
tools-support-relr.sh
unifdef.c scripts/unifdef: avoid constexpr keyword 2024-04-23 00:09:41 +09:00
ver_linux
xen-hypercalls.sh
xz_wrap.sh