twx-linux/include/linux
Daniel Borkmann 353050be4c bpf: Fix toctou on read-only map's constant scalar tracking
Commit a23740ec43ba ("bpf: Track contents of read-only maps as scalars") is
checking whether maps are read-only both from BPF program side and user space
side, and then, given their content is constant, reading out their data via
map->ops->map_direct_value_addr() which is then subsequently used as known
scalar value for the register, that is, it is marked as __mark_reg_known()
with the read value at verification time. Before a23740ec43ba, the register
content was marked as an unknown scalar so the verifier could not make any
assumptions about the map content.

The current implementation however is prone to a TOCTOU race, meaning, the
value read as known scalar for the register is not guaranteed to be exactly
the same at a later point when the program is executed, and as such, the
prior made assumptions of the verifier with regards to the program will be
invalid which can cause issues such as OOB access, etc.

While the BPF_F_RDONLY_PROG map flag is always fixed and required to be
specified at map creation time, the map->frozen property is initially set to
false for the map given the map value needs to be populated, e.g. for global
data sections. Once complete, the loader "freezes" the map from user space
such that no subsequent updates/deletes are possible anymore. For the rest
of the lifetime of the map, this freeze one-time trigger cannot be undone
anymore after a successful BPF_MAP_FREEZE cmd return. Meaning, any new BPF_*
cmd calls which would update/delete map entries will be rejected with -EPERM
since map_get_sys_perms() removes the FMODE_CAN_WRITE permission. This also
means that pending update/delete map entries must still complete before this
guarantee is given. This corner case is not an issue for loaders since they
create and prepare such program private map in successive steps.

However, a malicious user is able to trigger this TOCTOU race in two different
ways: i) via userfaultfd, and ii) via batched updates. For i) userfaultfd is
used to expand the competition interval, so that map_update_elem() can modify
the contents of the map after map_freeze() and bpf_prog_load() were executed.
This works, because userfaultfd halts the parallel thread which triggered a
map_update_elem() at the time where we copy key/value from the user buffer and
this already passed the FMODE_CAN_WRITE capability test given at that time the
map was not "frozen". Then, the main thread performs the map_freeze() and
bpf_prog_load(), and once that had completed successfully, the other thread
is woken up to complete the pending map_update_elem() which then changes the
map content. For ii) the idea of the batched update is similar, meaning, when
there are a large number of updates to be processed, it can increase the
competition interval between the two. It is therefore possible in practice to
modify the contents of the map after executing map_freeze() and bpf_prog_load().

One way to fix both i) and ii) at the same time is to expand the use of the
map's map->writecnt. The latter was introduced in fc9702273e2e ("bpf: Add mmap()
support for BPF_MAP_TYPE_ARRAY") and further refined in 1f6cb19be2e2 ("bpf:
Prevent re-mmap()'ing BPF map as writable for initially r/o mapping") with
the rationale to make a writable mmap()'ing of a map mutually exclusive with
read-only freezing. The counter indicates writable mmap() mappings and then
prevents/fails the freeze operation. Its semantics can be expanded beyond
just mmap() by generally indicating ongoing write phases. This would essentially
span any parallel regular and batched flavor of update/delete operation and
then also have map_freeze() fail with -EBUSY. For the check_mem_access() in
the verifier we expand upon the bpf_map_is_rdonly() check ensuring that all
last pending writes have completed via bpf_map_write_active() test. Once the
map->frozen is set and bpf_map_write_active() indicates a map->writecnt of 0
only then we are really guaranteed to use the map's data as known constants.
For map->frozen being set and pending writes in process of still being completed
we fall back to marking that register as unknown scalar so we don't end up
making assumptions about it. With this, both TOCTOU reproducers from i) and
ii) are fixed.

Note that the map->writecnt has been converted into a atomic64 in the fix in
order to avoid a double freeze_mutex mutex_{un,}lock() pair when updating
map->writecnt in the various map update/delete BPF_* cmd flavors. Spanning
the freeze_mutex over entire map update/delete operations in syscall side
would not be possible due to then causing everything to be serialized.
Similarly, something like synchronize_rcu() after setting map->frozen to wait
for update/deletes to complete is not possible either since it would also
have to span the user copy which can sleep. On the libbpf side, this won't
break d66562fba1ce ("libbpf: Add BPF object skeleton support") as the
anonymous mmap()-ed "map initialization image" is remapped as a BPF map-backed
mmap()-ed memory where for .rodata it's non-writable.

Fixes: a23740ec43ba ("bpf: Track contents of read-only maps as scalars")
Reported-by: w1tcher.bupt@gmail.com
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2021-11-15 20:47:07 -08:00
..
amba
atomic
avf virtchnl: Use the BIT() macro for capability/offload flags 2021-10-29 13:11:53 -07:00
bcma
byteorder
can can: dev: add can_tdc_get_relative_tdco() helper function 2021-10-24 16:24:29 +02:00
ceph
clk
crush
decompress x86/boot/compressed: Avoid duplicate malloc() implementations 2021-10-27 11:07:59 +02:00
device driver core: Provide device_match_acpi_handle() helper 2021-10-20 19:38:29 +02:00
dma
dsa net: dsa: felix: fix broken VLAN-tagged PTP under VLAN-aware bridge 2021-11-03 14:22:00 +00:00
extcon
firmware gpio updates for v5.16 2021-11-08 11:55:21 -08:00
fpga
fsl
gpio gpio: Allow per-parent interrupt data 2021-10-27 00:16:00 +02:00
greybus
hsi
i3c
iio
input
irqchip
isdn
lockd
mailbox
mdio
mfd - Remove Drivers 2021-11-08 12:07:52 -08:00
mlx4
mlx5 Linux 5.15 2021-11-01 14:49:20 -03:00
mmc MMC core: 2021-11-01 18:55:12 -07:00
mtd
mux mux: add support for delay after muxing 2021-10-21 20:02:42 +01:00
net/intel
netfilter
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
pcs
perf
phy
pinctrl
platform_data chrome platform changes for 5.16 2021-11-10 11:36:43 -08:00
power
qed
raid
regulator regulator: tps62360: replacing legacy gpio interface for gpiod 2021-10-21 14:18:42 +01:00
remoteproc
reset
rpmsg
rtc
sched Merge branch 'exit-cleanups-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2021-11-10 16:15:54 -08:00
soc The usual collection of clk driver updates and new driver additions. In 2021-11-03 21:18:44 -07:00
soundwire
spi gpio updates for v5.16 2021-11-08 11:55:21 -08:00
ssb
sunrpc A slow cycle for nfsd: mainly cleanup, including Neil's patch dropping 2021-11-10 16:45:54 -08:00
surface_aggregator HID: surface-hid: Use correct event registry for managing HID events 2021-10-22 10:54:51 +02:00
ulpi
unaligned
usb Revert "usb: core: hcd: Add support for deferring roothub registration" 2021-11-05 08:41:02 +01:00
8250_pci.h
a.out.h
acct.h
acpi_dma.h
acpi_iort.h
acpi_mdio.h
acpi_pmtmr.h
acpi_viot.h
acpi.h More ACPI updates for 5.16-rc1 2021-11-10 11:52:40 -08:00
adb.h
adfs_fs.h
adreno-smmu-priv.h
adxl.h
aer.h
agp_backend.h
agpgart.h
ahci_platform.h
ahci-remap.h
aio.h
alarmtimer.h
alcor_pci.h
align.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
anon_inodes.h
apm_bios.h
apm-emulation.h
apple_bl.h
apple-gmux.h
apple-mailbox.h mailbox: apple: Add driver for Apple mailboxes 2021-10-29 22:34:31 -05:00
arch_topology.h
arm_ffa.h
arm_sdei.h
arm-cci.h
arm-smccc.h
armada-37xx-rwtm-mailbox.h
ascii85.h
asn1_ber_bytecode.h
asn1_decoder.h
asn1_encoder.h
asn1.h
assoc_array_priv.h
assoc_array.h
async_tx.h
async.h
ata_platform.h
ata.h libata: support concurrent positioning ranges log 2021-10-26 21:01:48 -06:00
atalk.h
ath9k_platform.h
atm_tcp.h
atm.h
atmdev.h
atmel_pdc.h
atmel-isc-media.h
atmel-mci.h
atmel-ssc.h
atomic.h
attribute_container.h
audit_arch.h
audit.h audit/stable-5.16 PR 20211101 2021-11-01 21:17:39 -07:00
auto_dev-ioctl.h
auto_fs.h
auxiliary_bus.h
auxvec.h
average.h
backing-dev-defs.h mm: simplify bdi refcounting 2021-11-06 13:30:34 -07:00
backing-dev.h Merge branch 'akpm' (patches from Andrew) 2021-11-06 14:08:17 -07:00
backlight.h
badblocks.h
balloon_compaction.h
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
binfmts.h
bio.h block: avoid extra iter advance with async iocb 2021-10-27 06:54:58 -06:00
bit_spinlock.h
bitfield.h
bitmap.h lib: bitmap: Introduce node-aware alloc API 2021-10-26 19:30:38 -07:00
bitops.h
bitrev.h
bits.h
blk_types.h
blk-cgroup.h
blk-crypto-profile.h blk-crypto: rename blk_keyslot_manager to blk_crypto_profile 2021-10-21 10:49:32 -06:00
blk-crypto.h
blk-integrity.h
blk-mq-pci.h
blk-mq-rdma.h
blk-mq-virtio.h
blk-mq.h for-5.16/block-2021-11-09 2021-11-09 11:20:07 -08:00
blk-pm.h
blkdev.h for-5.16/inode-sync-2021-10-29 2021-11-01 10:25:27 -07:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootconfig.h
bootmem_info.h
bottom_half.h kernel.h: split out instruction pointer accessors 2021-11-09 10:02:49 -08:00
bpf_lirc.h
bpf_local_storage.h
bpf_lsm.h
bpf_trace.h
bpf_types.h Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-11-01 19:59:46 -07:00
bpf_verifier.h
bpf-cgroup.h Merge branch 'for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2021-11-02 15:37:27 -07:00
bpf-netns.h
bpf.h bpf: Fix toctou on read-only map's constant scalar tracking 2021-11-15 20:47:07 -08:00
bpfilter.h
bpfptr.h
brcmphy.h net: phy: bcm7xxx: Add EPHY entry for 7712 2021-10-24 13:42:28 +01:00
bsearch.h
bsg-lib.h
bsg.h
btf_ids.h
btf.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h
build_bug.h
build-salt.h
buildid.h
bvec.h
c2port.h
cache.h
cacheinfo.h
capability.h
cb710.h
cc_platform.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cfi.h
cgroup_rdma.h
cgroup_subsys.h
cgroup-defs.h
cgroup.h
circ_buf.h
cleancache.h
clk-provider.h
clk.h
clkdev.h
clockchips.h
clocksource_ids.h
clocksource.h
cm4000_cs.h
cma.h mm/cma: add cma_pages_valid to determine if pages are in CMA 2021-11-06 13:30:39 -07:00
cn_proc.h
cnt32_to_63.h
coda.h
compaction.h
compat.h
compiler_attributes.h An improvement for __compiletime_assert and a trivial cleanup 2021-11-07 10:38:17 -08:00
compiler_types.h An improvement for __compiletime_assert and a trivial cleanup 2021-11-07 10:38:17 -08:00
compiler-clang.h
compiler-gcc.h Merge branch 'akpm' (patches from Andrew) 2021-11-06 14:08:17 -07:00
compiler-intel.h
compiler-version.h
compiler.h
completion.h
component.h
configfs.h
connector.h
console_struct.h
console.h
consolemap.h
const.h
container_of.h linux/container_of.h: switch to static_assert 2021-11-09 10:02:49 -08:00
container.h
context_tracking_state.h
context_tracking.h
cookie.h
cordic.h
coredump.h
coresight-pmu.h
coresight-stm.h
coresight.h
count_zeros.h
counter.h counter: Fix use-after-free race condition for events_queue_size write 2021-10-21 13:02:47 +02:00
cper.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpu.h
cpufeature.h
cpufreq.h Merge branches 'pm-em' and 'powercap' 2021-11-02 19:31:28 +01:00
cpuhotplug.h Merge branches 'pm-em' and 'powercap' 2021-11-02 19:31:28 +01:00
cpuidle_haltpoll.h
cpuidle.h
cpumask.h
cpuset.h mm/page_alloc: detect allocation forbidden by cpuset and bail out early 2021-11-06 13:30:38 -07:00
crash_core.h
crash_dump.h crash_dump: remove duplicate include in crash_dump.h 2021-11-09 10:02:52 -08:00
crc4.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
crc32poly.h
crc64.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
cred.h
crypto.h
cs5535.h
ctype.h
cuda.h
damon.h mm/damon: remove return value from before_terminate callback 2021-11-06 13:30:46 -07:00
dasd_mod.h
davinci_emac.h
dax.h
dca.h
dcache.h
dccp.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h include/linux/delay.h: replace kernel.h with the necessary inclusions 2021-11-09 10:02:49 -08:00
delayacct.h
delayed_call.h
dev_printk.h
devcoredump.h
devfreq_cooling.h
devfreq-event.h
devfreq.h
device_cgroup.h
device-mapper.h blk-crypto: rename blk_keyslot_manager to blk_crypto_profile 2021-10-21 10:49:32 -06:00
device.h
devm-helpers.h
devpts_fs.h
dfl.h
digsig.h
dim.h
dio.h
dirent.h
dlm_plock.h
dlm.h
dm9000.h
dm-bufio.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dma-buf-map.h
dma-buf.h RDMA v5.16 merge window pull request 2021-11-03 08:05:59 -07:00
dma-direct.h
dma-direction.h
dma-fence-array.h
dma-fence-chain.h
dma-fence.h
dma-heap.h
dma-iommu.h
dma-map-ops.h
dma-mapping.h
dma-resv.h
dmaengine.h dmaengine: remove debugfs #ifdef 2021-10-25 12:01:14 +05:30
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd_genl_api.h
drbd_genl.h
drbd_limits.h
drbd.h
ds2782_battery.h
dtlk.h
dtpm.h powercap/drivers/dtpm: Use container_of instead of a private data field 2021-10-21 16:03:31 +02:00
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_embedded_fw.h
efi-bgrt.h
efi.h
efs_vh.h
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
entry-common.h
entry-kvm.h
err.h
errname.h
errno.h
error-injection.h
errqueue.h
errseq.h
etherdevice.h ethernet: add a helper for assigning port addresses 2021-10-19 12:46:24 +01:00
ethtool_netlink.h ethtool: fix ethtool msg len calculation for pause stats 2021-11-03 11:20:45 +00:00
ethtool.h
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extable.h
extcon-provider.h
extcon.h
f2fs_fs.h
f75375s.h
falloc.h
fanotify.h fanotify: Allow users to request FAN_FS_ERROR events 2021-10-27 12:53:45 +02:00
fault-inject-usercopy.h
fault-inject.h
fb.h
fbcon.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
fiemap.h
file.h
fileattr.h
filter.h Core: 2021-11-02 06:20:58 -07:00
fips.h
firewire.h firewire: Remove function callback casts 2021-11-01 13:44:26 -05:00
firmware-map.h
firmware.h firmware_loader: move struct builtin_fw to the only place used 2021-10-22 14:13:53 +02:00
fixp-arith.h
flat.h
flex_proportions.h
font.h
fortify-string.h fortify: strlen: Avoid shadowing previous locals 2021-10-25 15:34:41 -07:00
freelist.h
freezer.h
frontswap.h
fs_context.h
fs_enet_pd.h
fs_parser.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_types.h
fs_uart_pd.h
fs.h Networking fixes for 5.16-rc1, including fixes from bpf, can 2021-11-11 09:49:36 -08:00
fscache-cache.h
fscache.h fscache_cookie_enabled: check cookie is valid before accessing it 2021-11-03 17:44:29 +09:00
fscrypt.h
fsi-occ.h fsi: occ: Use a large buffer for responses 2021-10-22 09:50:55 +10:30
fsi-sbefifo.h
fsi.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsl-diu-fb.h
fsldma.h
fsnotify_backend.h fanotify: Pre-allocate pool of error events 2021-10-27 12:35:05 +02:00
fsnotify.h fsnotify: Support FS_ERROR event type 2021-10-27 12:34:49 +02:00
fsverity.h
ftrace_irq.h
ftrace.h ftrace: Add multi direct modify interface 2021-10-21 14:19:00 -04:00
futex.h
fwnode_mdio.h
fwnode.h include/linux/delay.h: replace kernel.h with the necessary inclusions 2021-11-09 10:02:49 -08:00
gameport.h
gcd.h
genalloc.h
generic-radix-tree.h include/linux/generic-radix-tree.h: replace kernel.h with the necessary inclusions 2021-11-09 10:02:49 -08:00
genetlink.h
genhd.h for-5.16/bdev-size-2021-11-09 2021-11-09 11:16:20 -08:00
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h Merge branch 'akpm' (patches from Andrew) 2021-11-06 14:08:17 -07:00
glob.h
gnss.h
goldfish.h
gpio_keys.h
gpio-pxa.h
gpio.h
greybus.h
hardirq.h
hash.h
hashtable.h
hdlc.h
hdlcdrv.h
hdmi.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h
hidden.h
hiddev.h
hidraw.h
highmem-internal.h
highmem.h Merge branch 'akpm' (patches from Andrew) 2021-11-06 14:08:17 -07:00
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hmm.h
host1x.h
hp_sdc.h
hpet.h
hrtimer_defs.h
hrtimer.h
htcpld.h
huge_mm.h
hugetlb_cgroup.h
hugetlb_inline.h
hugetlb.h mm,hugetlb: remove mlock ulimit for SHM_HUGETLB 2021-11-09 10:02:48 -08:00
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h Drivers: hv: vmbus: Remove unused code to check for subchannels 2021-10-28 11:26:40 +00:00
hypervisor.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-mux.h
i2c-smbus.h
i2c.h i2c: Allow an ACPI driver to manage the device's power state during probe 2021-11-03 19:03:55 +01:00
i8042.h
i8253.h
icmp.h
icmpv6.h
idle_inject.h
idr.h
ieee80211.h Core: 2021-11-02 06:20:58 -07: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
in6.h
in.h
indirect_call_wrapper.h
inet_diag.h
inet.h
inetdevice.h net: arp: introduce arp_evict_nocarrier sysctl parameter 2021-11-01 19:57:14 -07:00
init_ohci1394_dma.h
init_syscalls.h
init_task.h
init.h
initrd.h
inotify.h
input.h
instruction_pointer.h kernel.h: split out instruction pointer accessors 2021-11-09 10:02:49 -08:00
instrumentation.h
instrumented.h
integrity.h
intel_rapl.h
intel_th.h
intel-iommu.h
intel-ish-client-if.h
intel-svm.h
interconnect-provider.h
interconnect.h
interrupt.h
interval_tree_generic.h
interval_tree.h
io_uring.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h include/linux/io-mapping.h: remove fallback for writecombine 2021-11-06 13:30:36 -07:00
io-pgtable.h
io.h
ioam6_genl.h
ioam6_iptunnel.h
ioam6.h
ioasid.h
iocontext.h
iomap.h gfs2: Fix mmap + page fault deadlocks 2021-11-02 12:25:03 -07:00
iommu-helper.h
iommu.h
iopoll.h
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc_namespace.h
ipc.h
ipmi_smi.h
ipmi.h
ipv6_route.h
ipv6.h net: ndisc: introduce ndisc_evict_nocarrier sysctl parameter 2021-11-01 19:57:14 -07:00
irq_poll.h
irq_sim.h
irq_work.h
irq.h Merge branch irq/irq_cpu_offline into irq/irqchip-next 2021-10-28 13:34:57 +01:00
irqbypass.h
irqchip.h Merge branch irq/misc-5.16 into irq/irqchip-next 2021-10-28 21:11:34 +01:00
irqdesc.h irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irqdomain.h pci-v5.16-changes 2021-11-06 14:36:12 -07:00
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
iversion.h
jbd2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label_ratelimit.h
jump_label.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h sections: provide internal __is_kernel() and __is_kernel_text() helper 2021-11-09 10:02:51 -08:00
kasan-checks.h
kasan-tags.h
kasan.h Merge branch 'akpm' (patches from Andrew) 2021-11-06 14:08:17 -07:00
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kcov.h
kcsan-checks.h
kcsan.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel_read_file.h
kernel_stat.h
kernel-page-flags.h
kernel.h Merge branch 'akpm' (patches from Andrew) 2021-11-09 10:11:53 -08:00
kernelcapi.h
kernfs.h
kexec.h
key-type.h
key.h
keyboard.h
keyctl.h
kfence.h kfence: always use static branches to guard kfence_alloc() 2021-11-06 13:30:43 -07:00
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject_ns.h
kobject.h
kprobes.h
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kstrtox.h
kthread.h
ktime.h
kvm_dirty_ring.h
kvm_host.h
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-lp3944.h
leds-lp3952.h
leds-pca9532.h
leds-regulator.h
leds-ti-lmu-common.h
leds.h
libata.h SCSI misc on 20211105 2021-11-05 08:42:02 -07:00
libfdt_env.h
libfdt.h
libgcc.h
libnvdimm.h
libps2.h
license.h
limits.h
linear_range.h
linkage.h
linkmode.h
linux_logo.h
lis3lv02d.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
list.h include/linux/list.h: replace kernel.h with the necessary inclusions 2021-11-09 10:02:49 -08:00
litex.h
livepatch.h
llc.h
llist.h include/linux/llist.h: replace kernel.h with the necessary inclusions 2021-11-09 10:02:49 -08:00
local_lock_internal.h
local_lock.h
lockdep_types.h
lockdep.h locking: Remove spin_lock_flags() etc 2021-10-30 16:37:28 +02:00
lockref.h
log2.h
logic_iomem.h
logic_pio.h
lp.h
lru_cache.h
lsm_audit.h
lsm_hook_defs.h security: add sctp_assoc_established hook 2021-11-03 11:09:20 +00:00
lsm_hooks.h security: add sctp_assoc_established hook 2021-11-03 11:09:20 +00:00
lz4.h
lzo.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h
math64.h
math.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdev.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio.h net: mdio: Add helper functions for accessing MDIO devices 2021-10-24 13:40:33 +01:00
mei_cl_bus.h
mem_encrypt.h
memblock.h arm64 fixes for -rc1 2021-11-10 11:29:30 -08:00
memcontrol.h Merge branch 'akpm' (patches from Andrew) 2021-11-06 14:08:17 -07:00
memfd.h
memory_hotplug.h mm/memory_hotplug: remove stale function declarations 2021-11-06 13:30:42 -07:00
memory.h mm/memory_hotplug: remove HIGHMEM leftovers 2021-11-06 13:30:42 -07:00
mempolicy.h mm: migrate: make demotion knob depend on migration 2021-11-06 13:30:41 -07:00
mempool.h
memregion.h
memremap.h
memstick.h
mhi.h
micrel_phy.h
microchipphy.h
migrate_mode.h mm/migrate: de-duplicate migrate_reason strings 2021-11-06 13:30:41 -07:00
migrate.h mm/migrate.c: remove MIGRATE_PFN_LOCKED 2021-11-11 09:34:35 -08:00
mii_timestamper.h
mii.h
min_heap.h
minmax.h
misc_cgroup.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_inline.h
mm_types_task.h
mm_types.h Merge branch 'akpm' (patches from Andrew) 2021-11-06 14:08:17 -07:00
mm.h Merge branch 'akpm' (patches from Andrew) 2021-11-06 14:08:17 -07:00
mman.h
mmap_lock.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h mm/vmscan: throttle reclaim when no progress is being made 2021-11-06 13:30:40 -07:00
mnt_namespace.h
mod_devicetable.h
module_signature.h
module.h
moduleloader.h
moduleparam.h
most.h
mount.h
moxtet.h
mpage.h
mpi.h
mpls_iptunnel.h
mpls.h
mroute6.h
mroute_base.h
mroute.h
msdos_fs.h
msdos_partition.h
msg.h
msi.h
mtio.h
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mvebu-pmsu.h
mxm-wmi.h
namei.h
nd.h
ndctl.h
net.h
netdev_features.h
netdevice.h
netfilter_bridge.h
netfilter_defs.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter_netdev.h
netfilter.h
netfs.h
netlink.h
netpoll.h
nfs3.h
nfs4.h NFS: Move NFS protocol display macros to global header 2021-11-02 12:31:23 -04:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h NFS: Remove the nfs4_label argument from nfs_setsecurity 2021-11-05 14:54:40 -04:00
nfs_iostat.h
nfs_page.h
nfs_ssc.h
nfs_xdr.h NFS: Remove the nfs4_label from the nfs_setattrres 2021-11-05 14:54:39 -04:00
nfs.h
nfsacl.h
nitro_enclaves.h
nl802154.h
nls.h
nmi.h
node.h mm/memory_hotplug: remove CONFIG_MEMORY_HOTPLUG_SPARSE 2021-11-06 13:30:42 -07:00
nodemask.h
nospec.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb_transport.h
ntb.h
nubus.h
numa.h
nvme-fc-driver.h nvme-fc: add support for ->map_queues 2021-10-20 19:16:00 +02:00
nvme-fc.h
nvme-rdma.h nvme-rdma: limit the maximal queue size for RDMA controllers 2021-10-20 19:16:01 +02:00
nvme-tcp.h
nvme.h nvme: add new discovery log page entry definitions 2021-10-27 08:03:19 +02:00
nvmem-consumer.h
nvmem-provider.h
nvram.h
objagg.h
objtool.h
of_address.h
of_clk.h
of_device.h
of_dma.h
of_fdt.h x86/of: Kill unused early_init_dt_scan_chosen_arch() 2021-10-25 10:56:37 +02:00
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
of.h of: make of_node_check_flag() device_node parameter const 2021-10-20 13:37:25 -05:00
oid_registry.h
olpc-ec.h
omap-dma.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once_lite.h
once.h
oom.h
openvswitch.h
osq_lock.h
overflow.h
packing.h
padata.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h mm/page_owner.c: modify the type of argument "order" in some functions 2021-11-11 09:34:35 -08:00
page_ref.h
page_reporting.h
page-flags-layout.h
page-flags.h Merge branch 'akpm' (patches from Andrew) 2021-11-06 14:08:17 -07:00
page-isolation.h
pageblock-flags.h
pagemap.h Merge branch 'akpm' (patches from Andrew) 2021-11-09 10:11:53 -08:00
pagevec.h
pagewalk.h
panic_notifier.h
panic.h
parman.h
parport_pc.h
parport.h
parser.h
part_stat.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci_hotplug.h
pci_ids.h
pci-acpi.h
pci-ats.h
pci-dma-compat.h
pci-ecam.h
pci-ep-cfs.h
pci-epc.h
pci-epf.h
pci-p2pdma.h
pci.h pci-v5.16-fixes-1 2021-11-11 15:10:18 -08:00
pcs-lynx.h
pda_power.h
pe.h
percpu_counter.h
percpu-defs.h
percpu-refcount.h percpu_ref: percpu_ref_tryget_live() version holding RCU 2021-10-21 08:37:26 -06:00
percpu-rwsem.h
percpu.h percpu: add __alloc_size attributes for better bounds checking 2021-11-06 13:30:34 -07:00
perf_event.h Core: 2021-11-02 06:20:58 -07:00
perf_regs.h
personality.h
pfn_t.h
pfn.h
pgtable.h
phonet.h
phy_fixed.h
phy_led_triggers.h
phy.h net: phy: add phy_interface_t bitmap support 2021-10-26 15:10:36 +01:00
phylink.h net: phylink: use supported_interfaces for phylink validation 2021-10-26 15:10:36 +01:00
pid_namespace.h
pid.h
pim.h
pipe_fs_i.h
pkeys.h
pktcdvd.h
pl320-ipc.h
platform_device.h
platform_profile.h
pldmfw.h
plist.h include/linux/plist.h: replace kernel.h with the necessary inclusions 2021-11-09 10:02:49 -08:00
pm_clock.h
pm_domain.h
pm_opp.h
pm_qos.h
pm_runtime.h
pm_wakeirq.h PM / wakeirq: support enabling wake-up irq after runtime_suspend called 2021-10-27 20:49:32 +02:00
pm_wakeup.h
pm-trace.h
pm.h
pmbus.h
pmu.h
pnp.h
poison.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix-clock.h
posix-timers.h
power_supply.h
powercap.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
pps_kernel.h
pr.h
prandom.h
preempt.h Tracing updates for 5.16: 2021-11-01 20:05:19 -07:00
prefetch.h
prime_numbers.h
printk.h
prmt.h
proc_fs.h
proc_ns.h
processor.h
profile.h
projid.h
property.h
pruss_driver.h
psci.h
pseudo_fs.h
psi_types.h
psi.h
psp-sev.h
psp-tee.h
pstore_blk.h
pstore_ram.h
pstore_zone.h
pstore.h
ptdump.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptp_kvm.h
ptp_pch.h
ptr_ring.h
ptrace.h
purgatory.h
pvclock_gtod.h
pwm_backlight.h
pwm.h
pxa2xx_ssp.h
pxa168_eth.h
qcom_scm.h
qcom-geni-se.h
qnx6_fs.h
quota.h
quotaops.h
radix-tree.h include/linux/radix-tree.h: replace kernel.h with the necessary inclusions 2021-11-09 10:02:49 -08:00
raid_class.h
ramfs.h
random.h
randomize_kstack.h
range.h
ras.h
ratelimit_types.h
ratelimit.h
rational.h
rbtree_augmented.h
rbtree_latch.h
rbtree_types.h
rbtree.h
rcu_node_tree.h
rcu_segcblist.h
rcu_sync.h
rculist_bl.h
rculist_nulls.h
rculist.h
rcupdate_trace.h
rcupdate_wait.h
rcupdate.h
rcutiny.h
rcutree.h
rcuwait.h
reboot-mode.h
reboot.h
reciprocal_div.h
refcount.h
regmap.h
regset.h
relay.h
remoteproc.h
resctrl.h
reset-controller.h
reset.h
resource_ext.h
resource.h
restart_block.h
rfkill.h
rhashtable-types.h
rhashtable.h
ring_buffer.h
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h
rmi.h
rndis.h
rodata_test.h
root_dev.h
rpmsg.h rpmsg updates for v5.16 2021-11-10 09:05:11 -08:00
rslib.h
rtc.h
rtmutex.h
rtnetlink.h
rtsx_common.h
rtsx_pci.h
rtsx_usb.h
rwbase_rt.h
rwlock_api_smp.h locking: Remove spin_lock_flags() etc 2021-10-30 16:37:28 +02:00
rwlock_rt.h
rwlock_types.h
rwlock.h locking: Remove spin_lock_flags() etc 2021-10-30 16:37:28 +02:00
rwsem.h kernel.h: drop unneeded <linux/kernel.h> inclusion from other headers 2021-11-09 10:02:49 -08:00
s3c_adc_battery.h
sbitmap.h Merge branch 'akpm' (patches from Andrew) 2021-11-09 10:11:53 -08:00
scatterlist.h
scc.h
sched_clock.h
sched.h Merge branch 'per_signal_struct_coredumps-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2021-11-03 12:15:29 -07:00
scmi_protocol.h
scpi_protocol.h
screen_info.h
scs.h
sctp.h
scx200_gpio.h
scx200.h
sdb.h
seccomp.h
secretmem.h
securebits.h
security.h security: add sctp_assoc_established hook 2021-11-03 11:09:20 +00:00
sed-opal.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selection.h
sem.h
semaphore.h
seq_buf.h
seq_file_net.h
seq_file.h seq_file: fix passing wrong private data 2021-11-09 10:02:52 -08:00
seqlock.h
serdev.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
serial_max3100.h
serial_s3c.h
serial_sci.h
serial.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
shrinker.h
signal_types.h signal: Add SA_IMMUTABLE to ensure forced siganls do not get changed 2021-11-03 14:09:26 -05:00
signal.h Merge branch 'akpm' (patches from Andrew) 2021-11-09 10:11:53 -08:00
signalfd.h
siox.h
siphash.h
sizes.h
skb_array.h
skbuff.h net: avoid double accounting for pure zerocopy skbs 2021-11-03 11:19:49 +00:00
skmsg.h bpf, sockmap: Use stricter sk state checks in sk_lookup_assign 2021-11-09 00:56:35 +01:00
slab_def.h
slab.h mm: remove HARDENED_USERCOPY_FALLBACK 2021-11-06 13:30:43 -07:00
slimbus.h
slub_def.h mm, slub: change percpu partial accounting from objects to pages 2021-11-06 13:30:32 -07:00
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp_types.h
smp.h kernel.h: drop unneeded <linux/kernel.h> inclusion from other headers 2021-11-09 10:02:49 -08:00
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h mctp: Implement extended addressing 2021-10-26 14:58:45 +01:00
sockptr.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock_api_smp.h locking: Remove spin_lock_flags() etc 2021-10-30 16:37:28 +02:00
spinlock_api_up.h
spinlock_rt.h
spinlock_types_raw.h
spinlock_types_up.h
spinlock_types.h
spinlock_up.h locking: Remove spin_lock_flags() etc 2021-10-30 16:37:28 +02:00
spinlock.h Merge branch 'akpm' (patches from Andrew) 2021-11-09 10:11:53 -08:00
splice.h
spmi.h
sram.h
srcu.h
srcutiny.h
srcutree.h
ssbi.h
stackdepot.h lib, stackdepot: add helper to print stack entries into buffer 2021-11-09 10:02:50 -08:00
stackleak.h
stackprotector.h
stacktrace.h stacktrace: move filter_irq_stacks() to kernel/stacktrace.c 2021-11-06 13:30:43 -07:00
start_kernel.h
stat.h
statfs.h
static_call_types.h
static_call.h
static_key.h
stdarg.h
stddef.h
stm.h
stmmac.h
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string_helpers.h include/linux/string_helpers.h: add linux/string.h for strlen() 2021-11-09 10:02:50 -08:00
string.h string: uninline memcpy_and_pad 2021-11-03 11:41:25 -07:00
stringhash.h
stringify.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
surface_acpi_notify.h
suspend.h
svga.h
sw842.h
swab.h
swait.h
swap_cgroup.h
swap_slots.h
swap.h Merge branch 'akpm' (patches from Andrew) 2021-11-06 14:08:17 -07:00
swapfile.h
swapops.h
swiotlb.h
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys_soc.h
sys.h
syscall_user_dispatch.h
syscalls.h
syscore_ops.h
sysctl.h
sysfb.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting_ops.h
task_io_accounting.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
tee_drv.h
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h
thread_info.h
threads.h
thunderbolt.h
ti_wilink_st.h
ti-emif-sram.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time32.h
time64.h
time_namespace.h
time.h
timecounter.h
timekeeper_internal.h
timekeeping.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
tnum.h
topology.h
torture.h
toshiba.h
tpm_command.h
tpm_eventlog.h
tpm.h tpm: fix Atmel TPM crash caused by too frequent queries 2021-10-26 05:03:34 +03:00
trace_clock.h
trace_events.h tracing: Increase PERF_MAX_TRACE_SIZE to handle Sentinel1 and docker together 2021-10-27 12:27:17 -04:00
trace_recursion.h Tracing updates for 5.16: 2021-11-01 20:05:19 -07:00
trace_seq.h
trace.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h
transport_class.h
ts-nbus.h
tsacct_kern.h
tty_buffer.h
tty_driver.h tty: Fix extra "not" in TTY_DRIVER_REAL_RAW description 2021-10-30 11:02:00 +02:00
tty_flip.h
tty_ldisc.h
tty_port.h
tty.h
typecheck.h
types.h
u64_stats_sync.h
uacce.h
uaccess.h
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uio_driver.h
uio.h iov_iter: Introduce nofault flag to disable page faults 2021-10-24 15:26:06 +02:00
umh.h
unicode.h
units.h
uprobes.h
usb_usual.h
usb.h
usbdevice_fs.h
user_namespace.h
user-return-notifier.h
user.h
userfaultfd_k.h
usermode_driver.h
util_macros.h
uts.h
utsname.h
uuid.h
vbox_utils.h
vdpa.h vdpa: Enable user to set mac and mtu of vdpa device 2021-11-01 05:26:49 -04:00
verification.h
vermagic.h
vexpress.h
vfio_pci_core.h
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
vhost_iotlb.h
via_i2c.h
via-core.h
via-gpio.h
via.h
videodev2.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h virtio_config: introduce a new .enable_cbs method 2021-11-01 05:26:48 -04:00
virtio_console.h
virtio_dma_buf.h
virtio_net.h
virtio_pci_legacy.h virtio-pci: introduce legacy device module 2021-11-01 04:30:34 -04:00
virtio_pci_modern.h
virtio_ring.h
virtio_vsock.h
virtio.h virtio_ring: validate used buffer length 2021-11-01 05:26:48 -04:00
visorbus.h
vlynq.h
vm_event_item.h
vmacache.h
vmalloc.h mm/vmalloc: don't allow VM_NO_GUARD on vmap() 2021-11-06 13:30:36 -07:00
vme.h
vmpressure.h
vmstat.h
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt_buffer.h
vt_kern.h
vt.h
vtime.h
w1-gpio.h
w1.h
wait_bit.h
wait.h
watch_queue.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
wmi.h
workqueue.h workqueue: Introduce show_one_worker_pool and show_one_workqueue. 2021-10-20 06:19:03 -10:00
writeback.h for-5.16/block-2021-10-29 2021-11-01 09:19:50 -07:00
ww_mutex.h
wwan.h
xarray.h
xattr.h
xxhash.h
xz.h lib/xz: Add MicroLZMA decoder 2021-10-19 23:44:30 +08:00
yam.h
z2_battery.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zstd.h
zutil.h