linux-stable/include/linux
Daniel Borkmann 41e8ab428a bpf: Fix reg_set_min_max corruption of fake_reg
[ Upstream commit 9242480126 ]

Juan reported that after doing some changes to buzzer [0] and implementing
a new fuzzing strategy guided by coverage, they noticed the following in
one of the probes:

  [...]
  13: (79) r6 = *(u64 *)(r0 +0)         ; R0=map_value(ks=4,vs=8) R6_w=scalar()
  14: (b7) r0 = 0                       ; R0_w=0
  15: (b4) w0 = -1                      ; R0_w=0xffffffff
  16: (74) w0 >>= 1                     ; R0_w=0x7fffffff
  17: (5c) w6 &= w0                     ; R0_w=0x7fffffff R6_w=scalar(smin=smin32=0,smax=umax=umax32=0x7fffffff,var_off=(0x0; 0x7fffffff))
  18: (44) w6 |= 2                      ; R6_w=scalar(smin=umin=smin32=umin32=2,smax=umax=umax32=0x7fffffff,var_off=(0x2; 0x7ffffffd))
  19: (56) if w6 != 0x7ffffffd goto pc+1
  REG INVARIANTS VIOLATION (true_reg2): range bounds violation u64=[0x7fffffff, 0x7ffffffd] s64=[0x7fffffff, 0x7ffffffd] u32=[0x7fffffff, 0x7ffffffd] s32=[0x7fffffff, 0x7ffffffd] var_off=(0x7fffffff, 0x0)
  REG INVARIANTS VIOLATION (false_reg1): range bounds violation u64=[0x7fffffff, 0x7ffffffd] s64=[0x7fffffff, 0x7ffffffd] u32=[0x7fffffff, 0x7ffffffd] s32=[0x7fffffff, 0x7ffffffd] var_off=(0x7fffffff, 0x0)
  REG INVARIANTS VIOLATION (false_reg2): const tnum out of sync with range bounds u64=[0x0, 0xffffffffffffffff] s64=[0x8000000000000000, 0x7fffffffffffffff] u32=[0x0, 0xffffffff] s32=[0x80000000, 0x7fffffff] var_off=(0x7fffffff, 0x0)
  19: R6_w=0x7fffffff
  20: (95) exit

  from 19 to 21: R0=0x7fffffff R6=scalar(smin=umin=smin32=umin32=2,smax=umax=smax32=umax32=0x7ffffffe,var_off=(0x2; 0x7ffffffd)) R7=map_ptr(ks=4,vs=8) R9=ctx() R10=fp0 fp-24=map_ptr(ks=4,vs=8) fp-40=mmmmmmmm
  21: R0=0x7fffffff R6=scalar(smin=umin=smin32=umin32=2,smax=umax=smax32=umax32=0x7ffffffe,var_off=(0x2; 0x7ffffffd)) R7=map_ptr(ks=4,vs=8) R9=ctx() R10=fp0 fp-24=map_ptr(ks=4,vs=8) fp-40=mmmmmmmm
  21: (14) w6 -= 2147483632             ; R6_w=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,smin32=0x80000012,smax32=14,var_off=(0x2; 0xfffffffd))
  22: (76) if w6 s>= 0xe goto pc+1      ; R6_w=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,smin32=0x80000012,smax32=13,var_off=(0x2; 0xfffffffd))
  23: (95) exit

  from 22 to 24: R0=0x7fffffff R6_w=14 R7=map_ptr(ks=4,vs=8) R9=ctx() R10=fp0 fp-24=map_ptr(ks=4,vs=8) fp-40=mmmmmmmm
  24: R0=0x7fffffff R6_w=14 R7=map_ptr(ks=4,vs=8) R9=ctx() R10=fp0 fp-24=map_ptr(ks=4,vs=8) fp-40=mmmmmmmm
  24: (14) w6 -= 14                     ; R6_w=0
  [...]

What can be seen here is a register invariant violation on line 19. After
the binary-or in line 18, the verifier knows that bit 2 is set but knows
nothing about the rest of the content which was loaded from a map value,
meaning, range is [2,0x7fffffff] with var_off=(0x2; 0x7ffffffd). When in
line 19 the verifier analyzes the branch, it splits the register states
in reg_set_min_max() into the registers of the true branch (true_reg1,
true_reg2) and the registers of the false branch (false_reg1, false_reg2).

Since the test is w6 != 0x7ffffffd, the src_reg is a known constant.
Internally, the verifier creates a "fake" register initialized as scalar
to the value of 0x7ffffffd, and then passes it onto reg_set_min_max(). Now,
for line 19, it is mathematically impossible to take the false branch of
this program, yet the verifier analyzes it. It is impossible because the
second bit of r6 will be set due to the prior or operation and the
constant in the condition has that bit unset (hex(fd) == binary(1111 1101).

When the verifier first analyzes the false / fall-through branch, it will
compute an intersection between the var_off of r6 and of the constant. This
is because the verifier creates a "fake" register initialized to the value
of the constant. The intersection result later refines both registers in
regs_refine_cond_op():

  [...]
  t = tnum_intersect(tnum_subreg(reg1->var_off), tnum_subreg(reg2->var_off));
  reg1->var_off = tnum_with_subreg(reg1->var_off, t);
  reg2->var_off = tnum_with_subreg(reg2->var_off, t);
  [...]

Since the verifier is analyzing the false branch of the conditional jump,
reg1 is equal to false_reg1 and reg2 is equal to false_reg2, i.e. the reg2
is the "fake" register that was meant to hold a constant value. The resulting
var_off of the intersection says that both registers now hold a known value
of var_off=(0x7fffffff, 0x0) or in other words: this operation manages to
make the verifier think that the "constant" value that was passed in the
jump operation now holds a different value.

Normally this would not be an issue since it should not influence the true
branch, however, false_reg2 and true_reg2 are pointers to the same "fake"
register. Meaning, the false branch can influence the results of the true
branch. In line 24, the verifier assumes R6_w=0, but the actual runtime
value in this case is 1. The fix is simply not passing in the same "fake"
register location as inputs to reg_set_min_max(), but instead making a
copy. Moving the fake_reg into the env also reduces stack consumption by
120 bytes. With this, the verifier successfully rejects invalid accesses
from the test program.

  [0] https://github.com/google/buzzer

Fixes: 67420501e8 ("bpf: generalize reg_set_min_max() to handle non-const register comparisons")
Reported-by: Juan José López Jaimez <jjlopezjaimez@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/r/20240613115310.25383-1-daniel@iogearbox.net
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-06-27 13:52:20 +02:00
..
amba
atomic locking/atomic: scripts: fix ${atomic}_sub_and_test() kerneldoc 2024-06-21 14:40:31 +02:00
avf
bcma
byteorder
can
cdx
ceph
clk
comedi
crush
decompress
device
dma
dsa
extcon
firmware firmware: qcom: uefisecapp: Fix memory related IO errors and crashes 2024-04-09 10:05:03 -05:00
fpga fpga: region: add owner module and take its refcount 2024-06-12 11:39:13 +02:00
framer net: wan: framer: Add missing static inline qualifiers 2024-03-27 10:25:54 +00:00
fsl
gpio gpiolib: swnode: Remove wrong header inclusion 2024-04-17 22:48:14 +02:00
greybus
habanalabs
hsi
i3c
iio
input
io_uring
irqchip
isdn
lockd
mailbox
mdio
mfd - New Device Support 2024-03-14 10:29:47 -07:00
mlx4
mlx5 net/mlx5: Fix MTMP register capability offset in MCAM register 2024-06-12 11:39:47 +02:00
mmc mmc: core: Add mmc_gpiod_set_cd_config() function 2024-06-16 13:51:00 +02:00
mtd This pull request contains updates for UBI and UBIFS: 2024-03-21 15:09:29 -07:00
mux
net/intel
netfilter
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
pcs
pds
perf
phy USB/Thunderbolt changes for 6.9-rc1 2024-03-21 12:35:20 -07:00
pinctrl
platform_data platform-drivers-x86 for v6.9-1 2024-03-14 10:44:09 -07:00
power
pse-pd net: pse-pd: Use EOPNOTSUPP error code instead of ENOTSUPP 2024-06-21 14:40:24 +02:00
qed
raid
regulator regulator: pickable ranges: don't always cache vsel 2024-06-12 11:39:39 +02:00
remoteproc
reset
rpmsg
rtc
sched bcachefs updates for 6.9 2024-03-15 09:00:09 -07:00
soc TTY/Serial driver update for 6.9-rc1 2024-03-21 12:44:10 -07:00
soundwire soundwire updates for 6.9 2024-03-15 12:22:52 -07:00
spi sound updates for 6.9-rc1 2024-03-14 11:10:43 -07:00
ssb
sunrpc nfsd-6.9 fixes: 2024-04-22 12:20:09 -07:00
surface_aggregator
ulpi
unaligned
usb USB/Thunderbolt changes for 6.9-rc1 2024-03-21 12:35:20 -07:00
8250_pci.h
acct.h
acpi.h ACPI: bus: Indicate support for IRQ ResourceSource thru _OSC 2024-05-30 09:44:14 +02:00
acpi_amd_wbrf.h
acpi_dma.h
acpi_iort.h
acpi_mdio.h
acpi_pmtmr.h
acpi_viot.h
adb.h
adfs_fs.h
adreno-smmu-priv.h
adxl.h
aer.h
agp_backend.h
agpgart.h
ahci-remap.h
ahci_platform.h
aio.h
alarmtimer.h
alcor_pci.h
align.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
amd-pmf-io.h
anon_inodes.h
aperture.h
apm-emulation.h
apm_bios.h
apple-gmux.h
arch_topology.h
args.h
arm-cci.h
arm-smccc.h
arm_ffa.h
arm_sdei.h
armada-37xx-rwtm-mailbox.h
array_size.h
ascii85.h
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
asn1_encoder.h
assoc_array.h
assoc_array_priv.h
async.h
async_tx.h
ata.h
ata_platform.h
atalk.h
ath9k_platform.h
atm.h
atm_tcp.h
atmdev.h
atmel-isc-media.h
atmel-ssc.h
atmel_pdc.h
atomic.h
attribute_container.h
audit.h
audit_arch.h
auto_dev-ioctl.h
auto_fs.h
auxiliary_bus.h
auxvec.h
average.h
backing-dev-defs.h
backing-dev.h
backing-file.h
backlight.h
badblocks.h
balloon_compaction.h
base64.h
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
binfmts.h
bio.h
bit_spinlock.h
bitfield.h
bitmap-str.h
bitmap.h lib/bitmap: Fix bitmap_scatter() and bitmap_gather() kernel doc 2024-03-20 20:18:27 -07:00
bitops.h bitops: add missing prototype check 2024-05-30 09:44:15 +02:00
bitrev.h
bits.h
blk-cgroup.h
blk-crypto-profile.h
blk-crypto.h
blk-integrity.h
blk-mq-pci.h
blk-mq-virtio.h
blk-mq.h for-6.9/block-20240310 2024-03-11 11:43:44 -07:00
blk-pm.h
blk_types.h for-6.9/block-20240310 2024-03-11 11:43:44 -07:00
blkdev.h block: add a disk_has_partscan helper 2024-05-25 16:30:56 +02:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootconfig.h bootconfig: use memblock_free_late to free xbc memory to buddy 2024-04-14 22:00:43 +09:00
bootmem_info.h
bottom_half.h
bpf-cgroup-defs.h
bpf-cgroup.h
bpf-netns.h
bpf.h bpf: support deferring bpf_link dealloc to after RCU grace period 2024-03-28 18:47:45 -07:00
bpf_lirc.h
bpf_local_storage.h
bpf_lsm.h
bpf_mem_alloc.h
bpf_mprog.h
bpf_trace.h
bpf_types.h bpf: Introduce bpf_arena. 2024-03-11 15:37:23 -07:00
bpf_verifier.h bpf: Fix reg_set_min_max corruption of fake_reg 2024-06-27 13:52:20 +02:00
bpfptr.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btf.h
btf_ids.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h
build-salt.h
build_bug.h
buildid.h
bvec.h
c2port.h
cache.h
cacheflush.h
cacheinfo.h
capability.h
cb710.h
cc_platform.h x86/cc: Add cc_platform_set/_clear() helpers 2024-04-04 10:40:27 +02:00
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cfi.h
cfi_types.h
cgroup-defs.h
cgroup.h
cgroup_api.h
cgroup_rdma.h
cgroup_refcnt.h
cgroup_subsys.h
circ_buf.h
cleanup.h
clk-provider.h
clk.h clk: Provide !COMMON_CLK dummy for devm_clk_rate_exclusive_get() 2024-03-28 15:35:38 -07:00
clkdev.h
clockchips.h
clocksource.h
clocksource_ids.h
closure.h
cma.h
cn_proc.h
cnt32_to_63.h
coda.h
compaction.h
compat.h
compiler-clang.h
compiler-gcc.h Core x86 changes for v6.9: 2024-03-11 19:53:15 -07:00
compiler-version.h
compiler.h compiler.h: Add missing quote in macro comment 2024-04-09 09:06:50 -07:00
compiler_attributes.h s390 updates for 6.9 merge window 2024-03-12 10:14:22 -07:00
compiler_types.h kmsan: compiler_types: declare __no_sanitize_or_inline 2024-05-05 17:28:06 -07:00
completion.h
component.h
configfs.h
connector.h
console.h
console_struct.h
consolemap.h
const.h
container.h
container_of.h
context_tracking.h
context_tracking_irq.h
context_tracking_state.h
cookie.h
cordic.h
coredump.h
coresight-pmu.h
coresight-stm.h
coresight.h
count_zeros.h
counter.h counter: linux/counter.h: fix Excess kernel-doc description warning 2024-06-12 11:39:07 +02:00
cper.h
cpu.h cpu: Ignore "mitigations" kernel parameter if CPU_MITIGATIONS=n 2024-04-25 15:47:39 +02:00
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpu_smt.h
cpufeature.h
cpufreq.h ARM: late SoC changes for 6.9 2024-03-19 11:57:26 -07:00
cpuhotplug.h
cpuidle.h
cpuidle_haltpoll.h
cpumask.h
cpumask_api.h
cpuset.h cgroup/cpuset: Make cpuset hotplug processing synchronous 2024-06-27 13:52:15 +02:00
crash_core.h kexec/kdump: make struct crash_mem available without CONFIG_CRASH_DUMP 2024-03-17 13:34:00 +11:00
crash_dump.h
crash_reserve.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc4.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
crc32poly.h
crc64.h
cred.h
crypto.h
cs5535.h
ctype.h
cuda.h
cxl-event.h
damon.h
dasd_mod.h
davinci_emac.h
dax.h
dca.h
dcache.h vfs-6.9.misc 2024-03-11 09:38:17 -07:00
dccp.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
delayed_call.h
dev_printk.h dev_printk: Add and use dev_no_printk() 2024-05-30 09:44:42 +02:00
devcoredump.h
devfreq-event.h
devfreq.h
devfreq_cooling.h
device-mapper.h
device.h driver core: Introduce device_link_wait_removal() 2024-03-26 15:32:32 -05:00
device_cgroup.h
devm-helpers.h
devpts_fs.h
dfl.h
digsig.h
dim.h
dio.h
dirent.h
dlm.h
dlm_plock.h
dm-bufio.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dm-verity-loadpin.h
dm9000.h
dma-buf.h
dma-direct.h
dma-direction.h
dma-fence-array.h
dma-fence-chain.h
dma-fence-unwrap.h
dma-fence.h Reapply "drm/qxl: simplify qxl_fence_wait" 2024-05-06 13:28:59 -07:00
dma-heap.h
dma-map-ops.h
dma-mapping.h
dma-resv.h
dmaengine.h
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dpll.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd.h
drbd_config.h
drbd_genl.h
drbd_genl_api.h
drbd_limits.h
ds2782_battery.h
dtlk.h
dtpm.h
dw_apb_timer.h
dynamic_debug.h
dynamic_queue_limits.h
earlycpio.h
ecryptfs.h
edac.h
edd.h
eeprom_93cx6.h
eeprom_93xx46.h
efi-bgrt.h
efi.h - Sumanth Korikkar has taught s390 to allocate hotplug-time page frames 2024-03-14 17:43:30 -07:00
efi_embedded_fw.h
efs_vh.h
einj-cxl.h EINJ: Add CXL error type support 2024-03-12 23:08:29 -07:00
eisa.h
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote-lto.h
elfnote.h
enclosure.h
energy_model.h PM: EM: fix wrong utilization estimation in em_cpu_energy() 2024-04-04 19:27:53 +02:00
entry-common.h
entry-kvm.h
err.h
errname.h
errno.h
error-injection.h
errqueue.h
errseq.h
etherdevice.h netkit: Fix pkt_type override upon netkit pass verdict 2024-06-12 11:39:48 +02:00
ethtool.h
ethtool_netlink.h
eventfd.h
eventpoll.h
evm.h
export-internal.h
export.h
exportfs.h
ext2_fs.h
extable.h
extcon-provider.h
extcon.h
f2fs_fs.h f2fs: fix to truncate meta inode pages forcely 2024-03-12 18:25:17 -07:00
f75375s.h
falloc.h
fanotify.h
fault-inject-usercopy.h
fault-inject.h
fb.h drm/omapdrm: Fix console with deferred ops 2024-05-30 09:44:42 +02:00
fbcon.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
fiemap.h
file.h
fileattr.h
filelock.h
filter.h bpf: verifier: prevent userspace memory access 2024-04-26 09:45:18 -07:00
find.h
fips.h
firewire.h
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_proportions.h
font.h fbcon: Increase maximum font width x height to 64 x 128 2024-03-16 08:29:48 +01:00
fortify-string.h kasan, fortify: properly rename memintrinsics 2024-06-12 11:39:44 +02:00
fprobe.h
freezer.h
fs.h libfs: Add simple_offset_rename() API 2024-05-30 09:44:06 +02:00
fs_api.h
fs_context.h
fs_parser.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_types.h
fscache-cache.h
fscache.h
fscrypt.h
fsi-occ.h
fsi-sbefifo.h
fsi.h
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsldma.h
fsnotify.h
fsnotify_backend.h
fsverity.h
ftrace.h tracing: Support to dump instance traces by ftrace_dump_on_oops 2024-03-18 10:33:06 -04:00
ftrace_irq.h
futex.h
fw_table.h lib/firmware_table: Provide buffer length argument to cdat_table_parse() 2024-03-13 00:03:21 -07:00
fwnode.h
fwnode_mdio.h
gameport.h
gcd.h
genalloc.h
generic-radix-tree.h lib/generic-radix-tree.c: Make nodes more reasonably sized 2024-03-13 21:22:26 -04:00
genetlink.h
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h - Sumanth Korikkar has taught s390 to allocate hotplug-time page frames 2024-03-14 17:43:30 -07:00
gfp_api.h
gfp_types.h memblock tests: fix undefined reference to `BIT' 2024-04-04 11:08:33 +03:00
glob.h
gnss.h
goldfish.h
gpio-pxa.h
gpio.h
gpio_keys.h
greybus.h
group_cpus.h
hardirq.h
hash.h
hashtable.h
hashtable_api.h
hdlc.h
hdlcdrv.h
hdmi.h
hex.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h
hid_bpf.h
hidden.h
hiddev.h
hidraw.h
highmem-internal.h
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hisi_acc_qm.h
hmm.h
host1x.h
host1x_context_bus.h
hp_sdc.h
hpet.h
hrtimer.h
hrtimer_api.h
hrtimer_defs.h
hrtimer_types.h
hte.h
huge_mm.h
hugetlb.h
hugetlb_cgroup.h
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h Drivers: hv: vmbus: Track decrypted status in vmbus_gpadl 2024-04-10 21:33:32 +00:00
hypervisor.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-atr.h
i2c-dev.h
i2c-mux.h
i2c-smbus.h
i2c.h
i8042.h
i8253.h
i8254.h
icmp.h
icmpv6.h
idle_inject.h
idr.h
ieee80211.h wifi: ieee80211: fix ieee80211_mle_basic_sta_prof_size_ok() 2024-05-30 09:44:12 +02:00
ieee802154.h
if_arp.h
if_bridge.h
if_eql.h
if_ether.h
if_fddi.h
if_hsr.h
if_link.h
if_ltalk.h
if_macvlan.h
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_rmnet.h
if_tap.h
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h
igmp.h
ihex.h
ima.h
imx-media.h
in.h
in6.h
indirect_call_wrapper.h
inet.h
inet_diag.h
inetdevice.h
init.h
init_ohci1394_dma.h
init_syscalls.h
init_task.h
initrd.h
inotify.h
input.h Input: make input_class constant 2024-03-10 14:38:04 -07:00
instruction_pointer.h
instrumentation.h
instrumented.h
int_log.h
integrity.h
intel-ish-client-if.h
intel_rapl.h
intel_tcc.h
intel_th.h
intel_tpmi.h
interconnect-clk.h
interconnect-provider.h
interconnect.h
interrupt.h genirq: Introduce IRQF_COND_ONESHOT and use it in pinctrl-amd 2024-03-25 23:45:21 +01:00
interval_tree.h
interval_tree_generic.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io-pgtable.h
io.h mm: Introduce vmap_page_range() to map pages in PCI address space 2024-03-11 16:58:10 +01:00
io_uring.h
io_uring_types.h io_uring: fix cancellation overwriting req->flags 2024-06-21 14:40:11 +02:00
ioam6.h
ioam6_genl.h
ioam6_iptunnel.h
iocontext.h
iomap.h
iommu-helper.h
iommu.h iommu: Return right value in iommu_sva_bind_device() 2024-06-21 14:40:19 +02:00
iommufd.h
iopoll.h
ioport.h
ioprio.h
ioremap.h
iosys-map.h
iov_iter.h
iova.h
iova_bitmap.h
ip.h
ipack.h
ipc.h
ipc_namespace.h
ipmi.h
ipmi_smi.h
ipv6.h
ipv6_route.h
irq.h
irq_poll.h
irq_sim.h
irq_work.h
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h
irqdomain_defs.h
irqflags.h irqflags: Explicitly ignore lockdep_hrtimer_exit() argument 2024-04-08 16:34:18 +02:00
irqflags_types.h
irqhandler.h
irqnr.h
irqreturn.h
isa-dma.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
ism.h
iversion.h
jbd2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label.h
jump_label_ratelimit.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan-checks.h
kasan-enabled.h
kasan-tags.h
kasan.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kcov.h kcov, usb: disable interrupts in kcov_remote_start_usb_softirq 2024-06-21 14:40:11 +02:00
kcsan-checks.h
kcsan.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel-page-flags.h
kernel.h tracing: Support to dump instance traces by ftrace_dump_on_oops 2024-03-18 10:33:06 -04:00
kernel_read_file.h
kernel_stat.h
kernelcapi.h
kernfs.h
kexec.h kexec: fix the unexpected kexec_dprintk() macro 2024-06-21 14:40:33 +02:00
key-type.h
key.h
keyboard.h
keyctl.h
kfence.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemleak.h
kmod.h
kmsan-checks.h
kmsan.h
kmsan_string.h
kmsan_types.h
kmsg_dump.h
kobj_map.h
kobject.h
kobject_api.h
kobject_ns.h
kprobes.h kprobe/ftrace: bail out if ftrace was killed 2024-06-27 13:52:17 +02:00
kref.h
kref_api.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h mm/ksm: fix ksm_zero_pages accounting 2024-06-16 13:51:06 +02:00
kstrtox.h
kthread.h
ktime.h
ktime_api.h
kvm_dirty_ring.h
kvm_host.h S390: 2024-03-15 13:03:13 -07:00
kvm_irqfd.h
kvm_para.h
kvm_types.h
l2tp.h
lantiq.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-class-flash.h
led-class-multicolor.h
led-lm3530.h
leds-bd2802.h
leds-expresswire.h
leds-lp3944.h
leds-lp3952.h
leds-pca9532.h
leds-regulator.h
leds-ti-lmu-common.h
leds.h
libata.h scsi: sd: Fix TCG OPAL unlock on system resume 2024-03-25 15:46:12 -04:00
libfdt.h
libfdt_env.h
libgcc.h
libnvdimm.h
libps2.h
license.h
limits.h
linear_range.h
linkage.h
linkmode.h
linux_logo.h
lis3lv02d.h
list.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
litex.h
livepatch.h
livepatch_sched.h
llc.h
llist.h
llist_api.h
local_lock.h
local_lock_internal.h
lockdep.h
lockdep_api.h
lockdep_types.h
lockref.h
log2.h
logic_iomem.h
logic_pio.h
lp.h
lru_cache.h
lsm_audit.h
lsm_hook_defs.h lsm: use 32-bit compatible data types in LSM syscalls 2024-03-14 11:31:26 -04:00
lsm_hooks.h
lwq.h
lz4.h
lzo.h
mailbox_client.h
mailbox_controller.h
map_benchmark.h
maple.h
maple_tree.h
marvell_phy.h
math.h
math64.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdev.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio.h
mei_aux.h
mei_cl_bus.h
mem_encrypt.h
memblock.h
memcontrol.h
memfd.h
memory-tiers.h
memory.h cxl for v6.9 2024-03-16 10:04:12 -07:00
memory_hotplug.h
mempolicy.h
mempool.h mempool: kvmalloc pool 2024-03-13 18:38:13 -04:00
memregion.h
memremap.h
memstick.h
mhi.h
mhi_ep.h
micrel_phy.h
microchipphy.h
migrate.h
migrate_mode.h
mii.h
mii_timestamper.h
min_heap.h
minmax.h
misc_cgroup.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm.h mm: support page_mapcount() on page_has_type() pages 2024-04-24 19:34:26 -07:00
mm_api.h
mm_inline.h
mm_types.h mm/ksm: fix ksm_zero_pages accounting 2024-06-16 13:51:06 +02:00
mm_types_task.h
mman.h prctl: generalize PR_SET_MDWE support check to be per-arch 2024-03-26 11:07:22 -07:00
mmap_lock.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h
mnt_idmapping.h
mnt_namespace.h
mod_devicetable.h
module.h
module_signature.h
module_symbol.h
moduleloader.h
moduleparam.h
most.h
mount.h
moxtet.h
mpage.h
mpi.h
mpls.h
mpls_iptunnel.h
mroute.h
mroute6.h
mroute_base.h
msdos_fs.h
msdos_partition.h
msg.h
msi.h
msi_api.h
mtio.h
mutex.h
mutex_api.h
mutex_types.h
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
namei.h
nd.h
ndctl.h
net.h
net_tstamp.h
netdev_features.h
netdevice.h net: move dev->state into net_device_read_txrx group 2024-03-19 10:47:47 +01:00
netfilter.h
netfilter_bridge.h
netfilter_defs.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter_netdev.h
netfs.h
netlink.h
netpoll.h
nfs.h
nfs3.h
nfs4.h
nfs_fs.h nfs: fix UAF in direct writes 2024-03-09 09:14:51 -05:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_iostat.h
nfs_page.h
nfs_ssc.h
nfs_xdr.h nfs: remove unused NFS_CALL macro 2024-03-09 09:14:50 -05:00
nfsacl.h
nitro_enclaves.h
nl802154.h
nls.h
nmi.h watchdog/core: remove sysctl handlers from public header 2024-03-12 13:09:23 -07:00
node.h base/node / ACPI: Enumerate node access class for 'struct access_coordinate' 2024-03-12 12:34:11 -07:00
nodemask.h
nodemask_types.h
nospec.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb.h
ntb_transport.h
nubus.h
numa.h x86/numa: Fix SRAT lookup of CFMWS ranges with numa_fill_memblks() 2024-05-30 09:44:33 +02:00
nvme-auth.h
nvme-fc-driver.h
nvme-fc.h
nvme-keyring.h
nvme-rdma.h
nvme-tcp.h
nvme.h for-6.9/block-20240310 2024-03-11 11:43:44 -07:00
nvmem-consumer.h
nvmem-provider.h
nvram.h
objagg.h
objpool.h
objtool.h
objtool_types.h
of.h ARM: late SoC changes for 6.9 2024-03-19 11:57:26 -07:00
of_address.h
of_clk.h
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
of_graph.h
of_iommu.h
of_irq.h
of_mdio.h
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h
oid_registry.h Revert "crypto: pkcs7 - remove sha1 support" 2024-03-22 19:42:20 +08:00
olpc-ec.h
omap-dma.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once.h
once_lite.h
oom.h
openvswitch.h
osq_lock.h
overflow.h overflow: Change DEFINE_FLEX to take __counted_by member 2024-03-22 16:25:31 -07:00
packing.h
padata.h
page-flags-layout.h
page-flags.h mm: turn folio_test_hugetlb into a PageType 2024-04-24 19:34:26 -07:00
page-isolation.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h
page_reporting.h
page_table_check.h
pageblock-flags.h
pagemap.h filemap: add helper mapping_max_folio_size() 2024-06-16 13:51:04 +02:00
pagevec.h mm: increase folio batch size 2024-03-26 11:07:20 -07:00
pagewalk.h
panic.h
panic_notifier.h
parman.h
parport.h
parport_pc.h
parser.h
part_stat.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci-acpi.h
pci-ats.h
pci-doe.h
pci-ecam.h
pci-ep-cfs.h
pci-epc.h
pci-epf.h
pci-p2pdma.h
pci.h PCI: Do not wait for disconnected devices when resuming 2024-06-27 13:52:19 +02:00
pci_hotplug.h
pci_ids.h VFIO: Add the SPR_DSA and SPR_IAX devices to the denylist 2024-05-17 12:18:09 +02:00
pcs-lynx.h
pcs-rzn1-miic.h
pe.h
peci-cpu.h
peci.h peci: linux/peci.h: fix Excess kernel-doc description warning 2024-04-11 17:06:06 +02:00
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
percpu_counter.h
perf_event.h
perf_event_api.h
perf_regs.h
personality.h
pfn.h
pfn_t.h
pgtable.h
pgtable_api.h
phonet.h
phy.h
phy_fixed.h
phy_led_triggers.h
phylib_stubs.h
phylink.h
pid.h pidfs: remove config option 2024-03-13 12:53:53 -07:00
pid_namespace.h
pid_types.h
pidfs.h pidfs: remove config option 2024-03-13 12:53:53 -07:00
pim.h
pipe_fs_i.h
pkeys.h
pktcdvd.h
pl320-ipc.h
platform_device.h
platform_profile.h
pldmfw.h
plist.h
plist_types.h
pm-trace.h
pm.h
pm_clock.h
pm_domain.h OPP: Fix required_opp_tables for multiple genpds using same table 2024-06-27 13:52:19 +02:00
pm_opp.h cpufreq: Move dev_pm_opp_{init|free}_cpufreq_table() to pm_opp.h 2024-03-11 10:39:24 +05:30
pm_qos.h
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h
pmbus.h
pmu.h
pnp.h
poison.h
poll.h
polynomial.h
posix-clock.h
posix-timers.h
posix-timers_types.h
posix_acl.h
posix_acl_xattr.h
power_supply.h
powercap.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps_kernel.h
pr.h
prandom.h
preempt.h
prefetch.h
prime_numbers.h
printk.h printk: Let no_printk() use _printk() 2024-05-30 09:44:42 +02:00
prmt.h
proc_fs.h
proc_ns.h
processor.h
profile.h profiling: Remove create_prof_cpu_mask(). 2024-04-27 11:17:48 -07:00
projid.h
property.h
pruss_driver.h
psci.h
pseudo_fs.h
psi.h
psi_types.h
psp-platform-access.h
psp-sev.h
psp-tee.h
psp.h
pstore.h
pstore_blk.h
pstore_ram.h
pstore_zone.h
ptdump.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptp_kvm.h
ptp_mock.h
ptp_pch.h
ptr_ring.h
ptrace.h
ptrace_api.h
purgatory.h
pvclock_gtod.h
pwm.h
pwm_backlight.h
pxa2xx_ssp.h
pxa168_eth.h
qnx6_fs.h
quota.h
quotaops.h
radix-tree.h
raid_class.h
ramfs.h
random.h
randomize_kstack.h randomize_kstack: Improve entropy diffusion 2024-04-03 14:45:03 -07:00
range.h
ras.h
ratelimit.h
ratelimit_types.h
rational.h
rbtree.h
rbtree_augmented.h
rbtree_latch.h
rbtree_types.h
rcu_node_tree.h
rcu_notifier.h
rcu_segcblist.h
rcu_sync.h
rculist.h
rculist_bl.h
rculist_nulls.h
rcupdate.h rcu: add a helper to report consolidated flavor QS 2024-03-20 21:05:42 -07:00
rcupdate_trace.h
rcupdate_wait.h
rcuref.h
rcutiny.h
rcutree.h
rcuwait.h
rcuwait_api.h
reboot-mode.h
reboot.h
reciprocal_div.h
ref_tracker.h
refcount.h
refcount_api.h
refcount_types.h
regmap.h regmap: Add regmap_read_bypassed() 2024-04-08 14:09:58 +01:00
regset.h
relay.h
remoteproc.h
resctrl.h
reset-controller.h
reset.h
resource.h
resource_ext.h
restart_block.h
resume_user_mode.h
rethook.h
rfkill.h
rhashtable-types.h
rhashtable.h
ring_buffer.h tracing/ring-buffer: Fix wait_on_pipe() race 2024-03-12 12:44:48 -04:00
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
rmi.h
rndis.h
rodata_test.h
root_dev.h
rpmsg.h
rseq.h
rslib.h
rtc.h
rtmutex.h
rtnetlink.h
rtsx_common.h
rtsx_pci.h
rtsx_usb.h
rv.h
rw_hint.h
rwbase_rt.h locking: Make rwsem_assert_held_write_nolockdep() build with PREEMPT_RT=y 2024-04-08 16:39:16 +02:00
rwlock.h
rwlock_api_smp.h
rwlock_rt.h
rwlock_types.h
rwsem.h locking: Make rwsem_assert_held_write_nolockdep() build with PREEMPT_RT=y 2024-04-08 16:39:16 +02:00
sbitmap.h
scatterlist.h
scc.h
sched.h bcachefs updates for 6.9 2024-03-15 09:00:09 -07:00
sched_clock.h
scmi_protocol.h Power management updates for 6.9-rc1 2024-03-13 11:40:06 -07:00
scpi_protocol.h
screen_info.h
scs.h
sctp.h
scx200.h
scx200_gpio.h
seccomp.h
seccomp_types.h
secretmem.h mm/secretmem: fix GUP-fast succeeding on secretmem folios 2024-04-05 11:21:29 -07:00
securebits.h
security.h lsm: use 32-bit compatible data types in LSM syscalls 2024-03-14 11:31:26 -04:00
sed-opal-key.h
sed-opal.h
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
selection.h
sem.h
sem_types.h
semaphore.h
seq_buf.h
seq_file.h
seq_file_net.h
seqlock.h
seqlock_api.h
seqlock_types.h
serdev.h
serial.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
serial_max3100.h
serial_s3c.h
serial_sci.h
serio.h
set_memory.h
sfp.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
shdma-base.h
shm.h
shmem_fs.h mm/shmem: inline shmem_is_huge() for disabled transparent hugepages 2024-04-16 15:39:51 -07:00
shrinker.h
signal.h
signal_types.h
signalfd.h
siox.h
siphash.h
sizes.h
skb_array.h
skbuff.h inet: introduce dst_rtable() helper 2024-06-12 11:39:55 +02:00
skmsg.h bpf, skmsg: Fix NULL pointer dereference in sk_psock_skb_ingress_enqueue 2024-04-08 09:18:22 +02:00
slab.h mm/slab: make __free(kfree) accept error pointers 2024-05-01 17:30:06 +02:00
slimbus.h
sm501-regs.h
sm501.h
smc91x.h
smp.h Misc cleanups, including a large series from Thomas Gleixner to 2024-03-11 19:37:56 -07:00
smp_types.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h net: remove {revc,send}msg_copy_msghdr() from exports 2024-03-14 16:48:53 -07:00
sockptr.h net: add copy_safe_from_sockptr() helper 2024-04-09 17:00:16 -07:00
softirq.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
spinlock_api.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_rt.h
spinlock_types.h
spinlock_types_raw.h
spinlock_types_up.h
spinlock_up.h
splice.h
spmi.h
sprintf.h
sram.h
srcu.h
srcutiny.h
srcutree.h
ssbi.h
stackdepot.h stackdepot: rename pool_index to pool_index_plus_1 2024-04-05 11:21:31 -07:00
stackleak.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_call.h
static_call_types.h
static_key.h
stdarg.h
stddef.h
stm.h
stmmac.h net: stmmac: move the EST lock to struct stmmac_priv 2024-05-30 09:44:40 +02:00
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string.h hardening updates for v6.9-rc1 2024-03-12 14:49:30 -07:00
string_choices.h
string_helpers.h
stringhash.h
stringify.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
surface_acpi_notify.h
suspend.h
svga.h
sw842.h
swab.h
swait.h
swait_api.h
swap.h - Sumanth Korikkar has taught s390 to allocate hotplug-time page frames 2024-03-14 17:43:30 -07:00
swap_cgroup.h
swap_slots.h
swapfile.h
swapops.h mm,swapops: update check in is_pfn_swap_entry for hwpoison entries 2024-04-16 15:39:50 -07:00
swiotlb.h
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys.h
sys_soc.h
syscall_user_dispatch.h
syscall_user_dispatch_types.h
syscalls.h lsm: use 32-bit compatible data types in LSM syscalls 2024-03-14 11:31:26 -04:00
syscalls_api.h
syscore_ops.h
sysctl.h
sysfb.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting.h
task_io_accounting_ops.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
tee_drv.h
tegra-icc.h
termios_internal.h
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h
thread_info.h
threads.h
thunderbolt.h
ti-emif-sram.h
ti_wilink_st.h
tick.h Core x86 changes for v6.9: 2024-03-11 19:53:15 -07:00
tifm.h
timb_dma.h
timb_gpio.h
time.h
time32.h
time64.h
time_namespace.h
timecounter.h time/timecounter: Fix inline documentation 2024-04-01 10:36:34 +02:00
timekeeper_internal.h
timekeeping.h time/timekeeping: Fix kernel-doc warnings and typos 2024-04-01 10:36:34 +02:00
timer.h timers: Fix kernel-doc format and add Return values 2024-04-01 10:36:35 +02:00
timer_types.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timerqueue_types.h
timex.h
tnum.h
topology.h
torture.h
toshiba.h
tpm.h
tpm_command.h
tpm_eventlog.h
trace.h
trace_clock.h
trace_events.h tracing: Use EVENT_NULL_STR macro instead of open coding "(null)" 2024-03-18 10:33:04 -04:00
trace_recursion.h
trace_seq.h
tracefs.h eventfs/tracing: Add callback for release of an eventfs_inode 2024-05-04 04:25:37 -04:00
tracepoint-defs.h
tracepoint.h tracepoints: Use WARN() and not WARN_ON() for warnings 2024-03-18 10:33:06 -04:00
transport_class.h
ts-nbus.h
tsacct_kern.h
tsm.h
tty.h
tty_buffer.h
tty_driver.h tty: add the option to have a tty reject a new ldisc 2024-06-27 13:52:18 +02:00
tty_flip.h
tty_ldisc.h
tty_port.h
typecheck.h
types.h
u64_stats_sync.h u64_stats: fix u64_stats_init() for lockdep when used repeatedly in one file 2024-04-05 22:31:37 -07:00
u64_stats_sync_api.h
uacce.h
uaccess.h
ubsan.h
ucs2_string.h
udp.h net: change maximum number of UDP segments to 128 2024-04-14 17:05:08 +01:00
uidgid.h
uidgid_types.h
uio.h
uio_driver.h
umh.h
unicode.h
units.h
uprobes.h
usb.h
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_events.h
user_namespace.h
userfaultfd_k.h
usermode_driver.h
util_macros.h
uts.h
utsname.h
uuid.h
vbox_utils.h
vdpa.h vDPA: report virtio-block capacity to user space 2024-03-19 02:45:51 -04:00
verification.h
vermagic.h
vexpress.h
vfio.h vfio: Introduce interface to flush virqfd inject workqueue 2024-03-11 13:08:52 -06:00
vfio_pci_core.h
vfs.h
vga_switcheroo.h
vgaarb.h
vhost_iotlb.h
via-core.h
via.h
via_i2c.h
videodev2.h
virtio.h virtio: store owner from modules with register_virtio_driver() 2024-04-08 04:11:04 -04:00
virtio_anchor.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h
virtio_dma_buf.h
virtio_net.h
virtio_pci_admin.h
virtio_pci_legacy.h
virtio_pci_modern.h
virtio_ring.h
virtio_vsock.h
vm_event_item.h
vmalloc.h - Sumanth Korikkar has taught s390 to allocate hotplug-time page frames 2024-03-14 17:43:30 -07:00
vmcore_info.h
vmpressure.h
vmstat.h
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt.h
vt_buffer.h
vt_kern.h
vtime.h
w1.h
wait.h
wait_api.h
wait_bit.h
watch_queue.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wm97xx.h
wmi.h platform/x86: wmi: Do not instantiate older WMI drivers multiple times 2024-03-12 12:47:35 +02:00
wordpart.h
workqueue.h
workqueue_api.h
workqueue_types.h
writeback.h
ww_mutex.h
wwan.h
xarray.h
xattr.h
xxhash.h
xz.h
yam.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zstd.h
zstd_errors.h
zstd_lib.h
zswap.h
zutil.h