linux-kernelorg-stable/include/linux
Andrey Ignatov 41c48f3a98 bpf: Support access to bpf map fields
There are multiple use-cases when it's convenient to have access to bpf
map fields, both `struct bpf_map` and map type specific struct-s such as
`struct bpf_array`, `struct bpf_htab`, etc.

For example while working with sock arrays it can be necessary to
calculate the key based on map->max_entries (some_hash % max_entries).
Currently this is solved by communicating max_entries via "out-of-band"
channel, e.g. via additional map with known key to get info about target
map. That works, but is not very convenient and error-prone while
working with many maps.

In other cases necessary data is dynamic (i.e. unknown at loading time)
and it's impossible to get it at all. For example while working with a
hash table it can be convenient to know how much capacity is already
used (bpf_htab.count.counter for BPF_F_NO_PREALLOC case).

At the same time kernel knows this info and can provide it to bpf
program.

Fill this gap by adding support to access bpf map fields from bpf
program for both `struct bpf_map` and map type specific fields.

Support is implemented via btf_struct_access() so that a user can define
their own `struct bpf_map` or map type specific struct in their program
with only necessary fields and preserve_access_index attribute, cast a
map to this struct and use a field.

For example:

	struct bpf_map {
		__u32 max_entries;
	} __attribute__((preserve_access_index));

	struct bpf_array {
		struct bpf_map map;
		__u32 elem_size;
	} __attribute__((preserve_access_index));

	struct {
		__uint(type, BPF_MAP_TYPE_ARRAY);
		__uint(max_entries, 4);
		__type(key, __u32);
		__type(value, __u32);
	} m_array SEC(".maps");

	SEC("cgroup_skb/egress")
	int cg_skb(void *ctx)
	{
		struct bpf_array *array = (struct bpf_array *)&m_array;
		struct bpf_map *map = (struct bpf_map *)&m_array;

		/* .. use map->max_entries or array->map.max_entries .. */
	}

Similarly to other btf_struct_access() use-cases (e.g. struct tcp_sock
in net/ipv4/bpf_tcp_ca.c) the patch allows access to any fields of
corresponding struct. Only reading from map fields is supported.

For btf_struct_access() to work there should be a way to know btf id of
a struct that corresponds to a map type. To get btf id there should be a
way to get a stringified name of map-specific struct, such as
"bpf_array", "bpf_htab", etc for a map type. Two new fields are added to
`struct bpf_map_ops` to handle it:
* .map_btf_name keeps a btf name of a struct returned by map_alloc();
* .map_btf_id is used to cache btf id of that struct.

To make btf ids calculation cheaper they're calculated once while
preparing btf_vmlinux and cached same way as it's done for btf_id field
of `struct bpf_func_proto`

While calculating btf ids, struct names are NOT checked for collision.
Collisions will be checked as a part of the work to prepare btf ids used
in verifier in compile time that should land soon. The only known
collision for `struct bpf_htab` (kernel/bpf/hashtab.c vs
net/core/sock_map.c) was fixed earlier.

Both new fields .map_btf_name and .map_btf_id must be set for a map type
for the feature to work. If neither is set for a map type, verifier will
return ENOTSUPP on a try to access map_ptr of corresponding type. If
just one of them set, it's verifier misconfiguration.

Only `struct bpf_array` for BPF_MAP_TYPE_ARRAY and `struct bpf_htab` for
BPF_MAP_TYPE_HASH are supported by this patch. Other map types will be
supported separately.

The feature is available only for CONFIG_DEBUG_INFO_BTF=y and gated by
perfmon_capable() so that unpriv programs won't have access to bpf map
fields.

Signed-off-by: Andrey Ignatov <rdna@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Link: https://lore.kernel.org/bpf/6479686a0cd1e9067993df57b4c3eef0e276fec9.1592600985.git.rdna@fb.com
2020-06-22 22:22:58 +02:00
..
amba
avf virtchnl: Add missing explicit padding to structures 2020-05-22 20:47:21 -07:00
bcma
byteorder
can can: Replace zero-length array with flexible-array 2020-06-15 23:08:31 -05:00
ceph libceph: support for alloc hint flags 2020-06-01 23:32:35 +02:00
clk
crush libceph: decode CRUSH device/bucket types and names 2020-06-01 13:22:53 +02:00
decompress
device
dma
dsa
extcon
firmware Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
fpga
fsl ARM/SoC: drivers for v5.7 2020-06-04 19:56:20 -07:00
gpio gpio: add a reusable generic gpio_chip using regmap 2020-06-03 10:48:37 +02:00
greybus
hsi
i3c
iio
input
irqchip
isdn
lockd
mailbox
mfd Devicetree updates for v5.8: 2020-06-04 20:11:25 -07:00
mlx4 RDMA 5.8 merge window pull request 2020-06-05 14:05:57 -07:00
mlx5 RDMA 5.8 merge window pull request 2020-06-05 14:05:57 -07:00
mmc mmc: sdio: Sort all SDIO IDs in common include file 2020-05-29 12:37:59 +02:00
mtd CFI changes: 2020-06-03 09:21:52 +02:00
mux
netfilter netfilter: nf_conntrack_pptp: fix compilation warning with W=1 build 2020-05-27 13:39:08 +02:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
perf
phy
pinctrl
platform_data Merge branch 'i2c/for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2020-06-13 13:12:38 -07:00
power
qed SCSI misc on 20200605 2020-06-05 15:11:50 -07:00
raid
regulator Merge series "Fix regulators coupling for Exynos5800" from Marek Szyprowski <m.szyprowski@samsung.com>: 2020-05-29 14:36:03 +01:00
remoteproc
reset
rpmsg
rtc
sched mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
soc
soundwire soundwire: disco: s/ch/channels/ 2020-05-20 17:22:30 +05:30
spi This is the bulk of pin control changes for the v5.8 2020-06-07 16:13:43 -07:00
ssb
sunrpc NFS Client Updates for Linux 5.8 2020-06-11 12:22:41 -07:00
ulpi
unaligned
usb - Some improvments for ci_hdrc_usb2.c 2020-05-26 10:27:14 +02:00
wimax
8250_pci.h
a.out.h
acct.h
acpi.h
acpi_dma.h
acpi_iort.h
acpi_pmtmr.h
adb.h
adfs_fs.h
adxl.h
aer.h
agp_backend.h
agpgart.h
ahci-remap.h
ahci_platform.h
aio.h
alarmtimer.h
alcor_pci.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
anon_inodes.h
apm-emulation.h
apm_bios.h
apple-gmux.h
apple_bl.h
arch_topology.h
arm-cci.h
arm-smccc.h firmware: smccc: Fix missing prototype warning for arm_smccc_version_init 2020-05-21 14:07:37 +01:00
arm_sdei.h
armada-37xx-rwtm-mailbox.h
ascii85.h
asn1.h
asn1_ber_bytecode.h
asn1_decoder.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_suni.h
atm_tcp.h
atmdev.h
atmel-isc-media.h
atmel-mci.h
atmel-ssc.h
atmel_pdc.h
atomic-arch-fallback.h locking/atomics: Flip fallbacks and instrumentation 2020-06-11 08:03:24 +02:00
atomic-fallback.h locking/atomics: Flip fallbacks and instrumentation 2020-06-11 08:03:24 +02:00
atomic.h locking/atomics: Flip fallbacks and instrumentation 2020-06-11 08:03:24 +02:00
attribute_container.h
audit.h
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
backing-dev-defs.h
backing-dev.h
backlight.h
badblocks.h
balloon_compaction.h
bcd.h
bch.h lib/bch: Allow easy bit swapping 2020-05-24 20:48:11 +02:00
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
binfmts.h Merge branch 'akpm' (patches from Andrew) 2020-06-04 19:18:29 -07:00
bio.h for-5.8-tag 2020-06-02 19:59:25 -07:00
bit_spinlock.h
bitfield.h
bitmap.h
bitops.h include/linux/bitops.h: avoid clang shift-count-overflow warnings 2020-06-04 19:06:25 -07:00
bitrev.h
bits.h
blk-cgroup.h
blk-crypto.h
blk-mq-pci.h
blk-mq-rdma.h
blk-mq-virtio.h
blk-mq.h blk-mq: drain I/O when all CPUs in a hctx are offline 2020-05-29 10:23:25 -06:00
blk-pm.h
blk_types.h
blkdev.h block: fix a warning when blkdev.h is included for !CONFIG_BLOCK builds 2020-05-28 08:47:13 -06:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootconfig.h
bottom_half.h
bpf-cgroup.h bpf: Add get{peer, sock}name attach types for sock_addr 2020-05-19 11:32:04 -07:00
bpf-netns.h bpf: Add link-based BPF program attachment to network namespace 2020-06-01 15:21:03 -07:00
bpf.h bpf: Support access to bpf map fields 2020-06-22 22:22:58 +02:00
bpf_lirc.h
bpf_lsm.h
bpf_trace.h
bpf_types.h bpf: Add link-based BPF program attachment to network namespace 2020-06-01 15:21:03 -07:00
bpf_verifier.h bpf: Support access to bpf map fields 2020-06-22 22:22:58 +02:00
bpfilter.h
brcmphy.h
bsearch.h lib/bsearch: Provide __always_inline variant 2020-06-11 15:14:53 +02:00
bsg-lib.h
bsg.h
btf.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h buffer_head.h: remove attach_page_buffers 2020-06-02 10:59:08 -07:00
bug.h
build-salt.h
build_bug.h
bvec.h block: Document the bio_vec properties 2020-05-19 09:40:29 -06:00
c2port.h
cache.h include/linux/cache.h: expand documentation over __read_mostly 2020-06-09 09:39:16 -07:00
cacheinfo.h
capability.h
cb710.h cb710: Replace zero-length array with flexible-array 2020-06-15 23:08:31 -05:00
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup-defs.h
cgroup.h
cgroup_rdma.h
cgroup_subsys.h
circ_buf.h
cleancache.h
clk-provider.h
clk.h
clkdev.h
clock_cooling.h
clockchips.h
clocksource.h
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
compaction.h Merge branch 'akpm' (patches from Andrew) 2020-06-03 20:24:15 -07:00
compat.h
compiler-clang.h Rebase locking/kcsan to locking/urgent 2020-06-11 20:02:46 +02:00
compiler-gcc.h Rebase locking/kcsan to locking/urgent 2020-06-11 20:02:46 +02:00
compiler-intel.h
compiler.h compiler.h: Move function attributes to compiler_types.h 2020-06-11 20:04:04 +02:00
compiler_attributes.h
compiler_types.h compiler_types.h, kasan: Use __SANITIZE_ADDRESS__ instead of CONFIG_KASAN to decide inlining 2020-06-11 20:04:04 +02:00
completion.h
component.h
configfs.h
connector.h
console.h Merge branch 'for-5.8' into for-linus 2020-06-01 10:15:16 +02:00
console_struct.h
consolemap.h
const.h
container.h
context_tracking.h context_tracking: Ensure that the critical path cannot be instrumented 2020-06-11 15:14:36 +02:00
context_tracking_state.h context_tracking: Ensure that the critical path cannot be instrumented 2020-06-11 15:14:36 +02:00
cordic.h
coredump.h
coresight-pmu.h
coresight-stm.h
coresight.h coresight: Fix support for sparsely populated ports 2020-05-19 16:31:16 +02:00
count_zeros.h
counter.h
counter_enum.h
cper.h
cpu.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufeature.h
cpufreq.h cpufreq: change '.set_boost' to act on one policy 2020-06-05 14:20:02 +02:00
cpuhotplug.h RISC-V Patches for the 5.8 Merge Window, Part 2 2020-06-11 12:55:20 -07:00
cpuidle.h
cpuidle_haltpoll.h
cpumask.h
cpuset.h
crash_core.h
crash_dump.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
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
cyclades.h
dasd_mod.h s390/dasd: remove ioctl_by_bdev calls 2020-05-21 08:22:20 -06:00
davinci_emac.h
dax.h mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
dca.h
dcache.h
dccp.h
dcookies.h
debug_locks.h lockdep: __always_inline more for noinstr 2020-06-11 15:15:28 +02:00
debugfs.h
debugobjects.h
delay.h
delayacct.h
delayed_call.h
dev_printk.h dynamic_debug: add an option to enable dynamic debug for modules only 2020-06-08 11:05:56 -07:00
devcoredump.h
devfreq-event.h
devfreq.h
devfreq_cooling.h
device-mapper.h dm: use dynamic debug instead of compile-time config option 2020-05-20 17:09:45 -04:00
device.h
device_cgroup.h Merge branch 'from-miklos' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-06-01 16:44:06 -07:00
devpts_fs.h
digsig.h
dim.h
dio.h
dirent.h
dlm.h
dlm_plock.h
dm-bufio.h dm bufio: introduce forget_buffer_locked 2020-06-05 14:59:41 -04:00
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dm9000.h
dma-buf.h drm pull for 5.8-rc1 2020-06-02 15:04:15 -07:00
dma-contiguous.h
dma-debug.h
dma-direct.h
dma-direction.h
dma-fence-array.h
dma-fence-chain.h
dma-fence.h
dma-heap.h
dma-iommu.h
dma-mapping.h dma-mapping updates for 5.8, part 2 2020-06-06 11:55:53 -07:00
dma-noncoherent.h mm: introduce include/linux/pgtable.h 2020-06-09 09:39:13 -07:00
dma-resv.h
dmaengine.h dmaengine: Replace zero-length array with flexible-array 2020-06-15 23:08:30 -05:00
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd.h
drbd_genl.h
drbd_genl_api.h
drbd_limits.h
ds2782_battery.h
dtlk.h
dw_apb_timer.h
dynamic_debug.h dynamic_debug: add an option to enable dynamic debug for modules only 2020-06-08 11:05:56 -07:00
dynamic_queue_limits.h
earlycpio.h
ecryptfs.h
edac.h
edd.h
eeprom_93cx6.h
eeprom_93xx46.h
efi-bgrt.h
efi.h More EFI changes for v5.8: 2020-05-25 15:11:14 +02:00
efi_embedded_fw.h
efs_vh.h
eisa.h
elevator.h blk-mq: remove the bio argument to ->prepare_request 2020-05-29 10:23:24 -06:00
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h elfnote: mark all .note sections SHF_ALLOC 2020-06-04 19:06:25 -07:00
enclosure.h
energy_model.h
err.h
errname.h
errno.h
error-injection.h
errqueue.h
errseq.h
etherdevice.h
ethtool.h
ethtool_netlink.h net: ethtool: Fix comment mentioning typo in IS_ENABLED() 2020-06-05 13:17:05 -07:00
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: turn off support for FAN_DIR_MODIFY 2020-05-27 18:55:54 +02:00
fault-inject.h
fb.h
fbcon.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
fiemap.h fs: move fiemap range validation into the file systems instances 2020-06-03 23:16:55 -04:00
file.h
filter.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
fips.h
firewire.h
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_proportions.h
font.h
frame.h
freezer.h
frontswap.h
fs.h for-5.8-part2-tag 2020-06-14 09:47:25 -07:00
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
fscache-cache.h FS-Cache: Replace zero-length array with flexible-array 2020-06-15 23:08:31 -05:00
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 Merge branch 'work.sysctl' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-06-10 16:05:54 -07:00
ftrace_irq.h
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
generic-radix-tree.h
genetlink.h
genhd.h for-5.8/drivers-2020-06-01 2020-06-02 15:37:03 -07:00
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h mm: rename gfpflags_to_migratetype to gfp_migratetype for same convention 2020-06-03 20:09:45 -07:00
glob.h
gnss.h
goldfish.h
gpio-pxa.h
gpio.h
gpio_keys.h
greybus.h
hardirq.h genirq: Provide __irq_enter/exit_raw() 2020-06-11 15:15:06 +02:00
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
hiddev.h
hidraw.h
highmem.h kmap: consolidate kmap_prot definitions 2020-06-04 19:06:22 -07:00
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hmm.h mm: introduce include/linux/pgtable.h 2020-06-09 09:39:13 -07:00
host1x.h
hp_sdc.h
hpet.h
hrtimer.h
hrtimer_defs.h
htcpld.h
huge_mm.h mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
hugetlb.h mm: introduce include/linux/pgtable.h 2020-06-09 09:39:13 -07:00
hugetlb_cgroup.h
hugetlb_inline.h
hw_breakpoint.h hw-breakpoints: Fix build warnings with clang 2020-06-02 20:58:55 +10:00
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h hwmon: Add notification support 2020-05-28 07:59:45 -07:00
hwspinlock.h
hyperv.h Drivers: hv: vmbus: Resolve more races involving init_vp_index() 2020-05-23 09:07:00 +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: smbus: Add a way to instantiate SPD EEPROMs automatically 2020-05-29 12:53:04 +02:00
i2c.h i2c: avoid confusing naming in header 2020-05-28 18:07:11 +02:00
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h
idle_inject.h
idr.h radix-tree: Use local_lock for protection 2020-05-28 10:31:09 +02:00
ieee80211.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-31 17:48:46 -07:00
ieee802154.h
if_arp.h
if_bridge.h
if_eql.h
if_ether.h
if_fddi.h
if_frad.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 ip*_mc_gsfget(): lift copyout of struct group_filter into callers 2020-05-20 20:31:27 -04:00
ihex.h
ima.h ima: verify mprotect change is consistent with mmap policy 2020-05-22 14:41:04 -04:00
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_task.h
initrd.h
inotify.h
input-polldev.h
input.h
instrumented.h
integrity.h
intel-iommu.h iommu/vt-d: Allocate domain info for real DMA sub-devices 2020-05-29 15:11:43 +02:00
intel-ish-client-if.h
intel-pti.h
intel-svm.h
intel_rapl.h
intel_th.h
interconnect-provider.h
interconnect.h More power management updates for 5.8-rc1 2020-06-10 14:04:39 -07:00
interrupt.h x86/entry: Unbreak __irqentry_text_start/end magic 2020-06-11 15:15:29 +02:00
interval_tree.h
interval_tree_generic.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
io-pgtable.h
io.h
ioasid.h
iocontext.h
iomap.h A lot of bug fixes and cleanups for ext4, including: 2020-06-05 16:19:28 -07:00
iommu-helper.h
iommu.h IOMMU Updates for Linux v5.8 2020-06-08 11:42:23 -07:00
iopoll.h
ioport.h Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
ioprio.h
iova.h
ip.h
ipack.h
ipc.h
ipc_namespace.h ipc/namespace.c: use a work queue to free_ipc 2020-06-08 11:05:56 -07:00
ipmi.h
ipmi_smi.h
ipv6.h
ipv6_route.h
irq.h
irq_cpustat.h
irq_poll.h
irq_sim.h
irq_work.h irq_work: Define irq_work_single() on !CONFIG_IRQ_WORK too 2020-06-02 12:34:45 +02:00
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h
irqflags.h x86/entry: Rename trace_hardirqs_off_prepare() 2020-06-11 15:15:24 +02:00
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isicom.h
iversion.h
jbd2.h ext4, jbd2: ensure panic by fix a race between jbd2 abort and ext4 error handlers 2020-06-12 14:51:41 -04:00
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label.h
jump_label_ratelimit.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h kallsyms/printk: add loglvl to print_ip_sym() 2020-06-09 09:39:10 -07:00
kasan-checks.h
kasan.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kcov.h
kcsan-checks.h
kcsan.h
kd.h
kdb.h kdb: Remove the misfeature 'KDBFLAGS' 2020-06-02 15:15:46 +01:00
kdebug.h
kdev_t.h
kern_levels.h
kernel-page-flags.h
kernel.h panic: add sysctl to dump all CPUs backtraces on oops event 2020-06-08 11:05:56 -07:00
kernel_stat.h
kernelcapi.h
kernfs.h
kexec.h kexec: Replace zero-length array with flexible-array 2020-06-15 23:08:31 -05:00
key-type.h
key.h keys: Make the KEY_NEED_* perms an enum rather than a mask 2020-05-19 15:42:22 +01:00
keyboard.h
keyctl.h
keyslot-manager.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemleak.h
kmod.h
kmsg_dump.h printk: Introduce kmsg_dump_reason_str() 2020-05-30 10:34:03 -07:00
kobj_map.h
kobject.h power supply and reset changes for the v5.8 series 2020-06-10 11:28:35 -07:00
kobject_ns.h
kprobes.h kprobes: Replace zero-length array with flexible-array 2020-06-15 23:08:31 -05:00
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h Merge branch 'akpm' (patches from Andrew) 2020-06-11 13:25:53 -07:00
ktime.h
kvm_host.h KVM: Replace zero-length array with flexible-array 2020-06-15 23:08:31 -05: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-lm3530.h
leds-bd2802.h
leds-lp3944.h
leds-lp3952.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds-ti-lmu-common.h
leds.h
libata.h libata: Replace zero-length array with flexible-array 2020-06-15 23:08:31 -05:00
libfdt.h
libfdt_env.h
libgcc.h
libnvdimm.h
libps2.h
license.h
lightnvm.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
livepatch.h
llc.h
llist.h
local_lock.h locking: Introduce local_lock() 2020-05-28 10:31:09 +02:00
local_lock_internal.h locking: Introduce local_lock() 2020-05-28 10:31:09 +02:00
lockdep.h
lockref.h
log2.h
logic_pio.h
lp.h
lru_cache.h
lsm_audit.h smack: Implement the watch_key and post_notification hooks 2020-05-19 15:47:38 +01:00
lsm_hook_defs.h Add additional LSM hooks for SafeSetID 2020-06-14 11:39:31 -07:00
lsm_hooks.h Add additional LSM hooks for SafeSetID 2020-06-14 11:39:31 -07:00
lz4.h
lzo.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h
math64.h
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdev.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio-xpcs.h
mdio.h net: mdiobus: add clause 45 mdiobus accessors 2020-05-26 15:31:45 -07:00
mei_cl_bus.h
mem_encrypt.h
memblock.h include/linux/memblock.h: fix minor typo and unclear comment 2020-06-03 20:09:49 -07:00
memcontrol.h mm: vmscan: determine anon/file pressure balance at the reclaim root 2020-06-03 20:09:49 -07:00
memfd.h
memory.h
memory_hotplug.h virtio: features, fixes 2020-06-10 13:42:09 -07:00
mempolicy.h mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
mempool.h
memregion.h
memremap.h
memstick.h memstick: Replace zero-length array with flexible-array 2020-05-28 11:22:13 +02:00
mhi.h bus: mhi: core: Remove the system error worker thread 2020-05-22 09:35:43 +02:00
mic_bus.h
micrel_phy.h
microchipphy.h
migrate.h
migrate_mode.h
mii.h
mii_timestamper.h
min_heap.h
miscdevice.h
mm-arch-hooks.h
mm.h mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
mm_inline.h
mm_types.h mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
mm_types_task.h
mman.h
mmap_lock.h mmap locking API: rename mmap_sem to mmap_lock 2020-06-09 09:39:14 -07:00
mmdebug.h
mmiotrace.h
mmu_context.h kernel: move use_mm/unuse_mm to kthread.c 2020-06-10 19:14:18 -07:00
mmu_notifier.h mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
mmzone.h mm: add comments on pglist_data zones 2020-06-10 19:14:18 -07:00
mnt_namespace.h
mod_devicetable.h Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2020-06-06 11:30:00 -07:00
module.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching 2020-06-04 11:13:03 -07:00
module_signature.h
moduleloader.h
moduleparam.h
most.h
mount.h overlayfs update for 5.8 2020-06-09 15:40:50 -07:00
moxtet.h
mpage.h fs: convert mpage_readpages to mpage_readahead 2020-06-02 10:59:07 -07:00
mpi.h
mpls.h
mpls_iptunnel.h
mroute.h
mroute6.h
mroute_base.h
msdos_fs.h
msdos_partition.h
msg.h
msi.h
mtio.h
mutex.h
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nd.h
ndctl.h
net.h dynamic_debug: add an option to enable dynamic debug for modules only 2020-06-08 11:05:56 -07:00
netdev_features.h
netdevice.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-06-13 16:27:13 -07:00
netfilter.h
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netpoll.h
nfs.h
nfs3.h
nfs4.h NFS: Replace zero-length array with flexible-array 2020-05-27 10:10:12 -04:00
nfs_fs.h nfs: set invalid blocks after NFSv4 writes 2020-06-11 13:33:48 -04:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h NFS: Replace zero-length array with flexible-array 2020-05-27 10:10:12 -04:00
nfsacl.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
nospec.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb.h NTB: correct ntb_peer_spad_addr and ntb_peer_spad_read comment typos 2020-06-05 20:02:08 -04:00
ntb_transport.h
nubus.h
numa.h
nvme-fc-driver.h
nvme-fc.h
nvme-rdma.h
nvme-tcp.h
nvme.h nvme: add Metadata Capabilities enumerations 2020-05-27 07:12:40 +02:00
nvmem-consumer.h
nvmem-provider.h
nvram.h
objagg.h
of.h
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
olpc-ec.h
omap-dma.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once.h
oom.h
openvswitch.h
oprofile.h
osq_lock.h
overflow.h
packing.h
padata.h padata: add basic support for multithreaded jobs 2020-06-03 20:09:45 -07:00
page-flags-layout.h
page-flags.h mm: Allow to offline unmovable PageOffline() pages via MEM_GOING_OFFLINE 2020-06-04 15:36:52 -04:00
page-isolation.h
page_counter.h mm/memcg: move cgroup high memory limit setting into struct page_counter 2020-06-02 10:59:09 -07:00
page_ext.h
page_idle.h
page_owner.h
page_ref.h
page_reporting.h
pageblock-flags.h
pagemap.h mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
pagevec.h
pagewalk.h
parman.h
parport.h
parport_pc.h
parser.h
part_stat.h block: use __this_cpu_add() instead of access by smp_processor_id() 2020-05-27 05:21:23 -06:00
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci-acpi.h Merge branch 'remotes/lorenzo/pci/host-generic' 2020-06-04 12:59:16 -05:00
pci-ats.h PCI/ATS: Only enable ATS for trusted devices 2020-05-27 14:35:41 +02:00
pci-dma-compat.h
pci-ecam.h
pci-ep-cfs.h
pci-epc.h PCI: endpoint: Add support to handle multiple base for mapping outbound memory 2020-05-22 12:35:07 +01:00
pci-epf.h
pci-p2pdma.h
pci.h s390 updates for the 5.8 merge window 2020-06-08 12:05:31 -07:00
pci_hotplug.h
pci_ids.h Merge branch 'x86/entry' into ras/core 2020-06-11 15:17:57 +02:00
pda_power.h
pe.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
percpu_counter.h
perf_event.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
perf_regs.h
personality.h
pfn.h
pfn_t.h
pgtable.h mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
phonet.h
phy.h net: ethtool: Allow PHY cable test TDR data to configured 2020-05-26 23:22:21 -07:00
phy_fixed.h
phy_led_triggers.h
phylink.h
pid.h Merge branch 'proc-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2020-06-04 13:54:34 -07:00
pid_namespace.h
pim.h
pipe_fs_i.h Notifications over pipes + Keyring notifications 2020-06-13 09:56:21 -07:00
pkeys.h
pktcdvd.h
pl320-ipc.h
pl353-smc.h
platform_device.h
plist.h
pm-trace.h
pm.h
pm2301_charger.h
pm_clock.h
pm_domain.h
pm_opp.h opp: Add support for parsing interconnect bandwidth 2020-05-29 10:15:08 +05:30
pm_qos.h
pm_runtime.h PM: runtime: Replace pm_runtime_callbacks_present() 2020-05-29 18:03:12 +02:00
pm_wakeirq.h
pm_wakeup.h
pmbus.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
posix-clock.h
posix-timers.h
posix_acl.h
posix_acl_xattr.h
power_supply.h power: supply: core: add POWER_SUPPLY_HEALTH_CALIBRATION_REQUIRED 2020-05-28 19:25:31 +02:00
powercap.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps-gpio.h
pps_kernel.h
pr.h
preempt.h
prefetch.h
prime_numbers.h
printk.h dynamic_debug: add an option to enable dynamic debug for modules only 2020-06-08 11:05:56 -07:00
proc_fs.h Merge branch 'proc-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2020-06-04 13:54:34 -07:00
proc_ns.h
processor.h
profile.h
projid.h
property.h Driver core patches for 5.8-rc1 2020-06-07 10:53:36 -07:00
psci.h firmware: smccc: Refactor SMCCC specific bits into separate file 2020-05-20 19:10:37 +01:00
pseudo_fs.h
psi.h
psi_types.h
psp-sev.h
psp-tee.h
pstore.h pstore/platform: Pass max_reason to kmesg dump 2020-05-30 10:34:03 -07:00
pstore_blk.h pstore/blk: Support non-block storage devices 2020-05-31 19:49:00 -07:00
pstore_ram.h pstore/ram: Introduce max_reason and convert dump_oops 2020-05-30 10:34:03 -07:00
pstore_zone.h pstore/blk: Support non-block storage devices 2020-05-31 19:49:00 -07:00
ptdump.h mm: ptdump: expand type of 'val' in note_page() 2020-06-02 10:59:10 -07:00
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptr_ring.h
ptrace.h
purgatory.h
pvclock_gtod.h
pwm.h
pwm_backlight.h
pxa2xx_ssp.h
pxa168_eth.h
qcom-geni-se.h
qcom_scm.h
qnx6_fs.h
quota.h
quotaops.h
radix-tree.h radix-tree: Use local_lock for protection 2020-05-28 10:31:09 +02:00
raid_class.h
ramfs.h
random.h
range.h
ras.h
ratelimit.h
rational.h
rbtree.h
rbtree_augmented.h
rbtree_latch.h
rcu_node_tree.h
rcu_segcblist.h
rcu_sync.h
rculist.h Merge branch 'proc-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2020-06-04 13:54:34 -07:00
rculist_bl.h
rculist_nulls.h
rcupdate.h
rcupdate_trace.h
rcupdate_wait.h
rcutiny.h rcu: Provide rcu_irq_exit_check_preempt() 2020-05-26 19:05:11 +02:00
rcutree.h rcu: Provide rcu_irq_exit_check_preempt() 2020-05-26 19:05:11 +02:00
rcuwait.h rcuwait: avoid lockdep splats from rcuwait_active() 2020-05-20 03:39:40 -04:00
reboot-mode.h
reboot.h
reciprocal_div.h
refcount.h
regmap.h regmap: provide helpers for simple bit operations 2020-06-01 11:35:18 -07:00
regset.h user_regset_copyout_zero(): use clear_user() 2020-06-03 16:59:31 -04:00
relay.h
remoteproc.h
resctrl.h
reset-controller.h
reset.h
resource.h
resource_ext.h
restart_block.h
rfkill.h
rhashtable-types.h
rhashtable.h
ring_buffer.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
rmi.h
rndis.h
rodata_test.h
root_dev.h
rpmsg.h
rslib.h
rtc.h
rtmutex.h
rtnetlink.h
rtsx_common.h
rtsx_pci.h misc: rtsx: Use pcie_capability_clear_and_set_word() for PCI_EXP_LNKCTL 2020-05-22 09:38:13 +02:00
rtsx_usb.h
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem.h
s3c_adc_battery.h
sbitmap.h
scatterlist.h
scc.h
sched.h RAS updates from Borislav Petkov: 2020-06-13 10:21:00 -07:00
sched_clock.h
scif.h
scmi_protocol.h
scpi_protocol.h
screen_info.h
scs.h
sctp.h sctp: Replace zero-length array with flexible-array 2020-06-15 23:08:32 -05:00
scx200.h
scx200_gpio.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h Add additional LSM hooks for SafeSetID 2020-06-14 11:39:31 -07:00
sed-opal.h
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
selection.h
sem.h
semaphore.h
seq_buf.h
seq_file.h include/linux/seq_file.h: introduce DEFINE_SEQ_ATTRIBUTE() helper macro 2020-06-04 19:06:26 -07:00
seq_file_net.h
seqlock.h
seqno-fence.h
serdev.h
serial.h
serial_8250.h
serial_bcm63xx.h
serial_core.h serial: 8250: Support rs485 bus termination GPIO 2020-05-29 12:42:54 +02:00
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serio.h
set_memory.h x86/{mce,mm}: Unmap the entire page if the whole page is affected and poisoned 2020-06-11 15:19:17 +02:00
sfi.h
sfi_acpi.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.h
signal_types.h
signalfd.h
siox.h
siphash.h
sirfsoc_dma.h
sizes.h
skb_array.h
skbuff.h bpf: Fix up bpf_skb_adjust_room helper's skb csum setting 2020-06-02 11:50:23 -07:00
skmsg.h bpf: Fix running sk_skb program types with ktls 2020-06-01 14:48:32 -07:00
slab.h
slab_def.h
slimbus.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h The changes in this cycle are: 2020-06-03 13:06:42 -07:00
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
splice.h
spmi.h
sram.h
srcu.h
srcutiny.h
srcutree.h
ssbi.h
stackdepot.h
stackleak.h
stackprotector.h
stacktrace.h stacktrace: cleanup inconsistent variable type 2020-06-10 19:14:18 -07:00
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
stm.h
stmmac.h
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string.h string.h: fix incompatibility between FORTIFY_SOURCE and KASAN 2020-06-03 20:09:42 -07:00
string_helpers.h
stringhash.h
stringify.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
suspend.h PM: hibernate: Restrict writes to the resume device 2020-05-27 17:55:59 +02:00
svga.h
sw842.h
swab.h
swait.h
swap.h mm: vmscan: reclaim writepage is IO cost 2020-06-03 20:09:49 -07:00
swap_cgroup.h
swap_slots.h
swapfile.h
swapops.h
swiotlb.h
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys.h
sys_soc.h
syscalls.h
syscore_ops.h
sysctl.h kernel/sysctl: support setting sysctl parameters from kernel command line 2020-06-08 11:05:56 -07:00
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 tcp: add tcp_sock_set_keepcnt 2020-05-28 11:11:45 -07:00
tee_drv.h Adds utility function in TEE subsystem for client UUID generation. This 2020-05-25 23:15:03 +02:00
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
tifm.h tifm: Replace zero-length array with flexible-array 2020-06-15 23:08:32 -05:00
timb_dma.h
timb_gpio.h
time.h
time32.h
time64.h
time_namespace.h
timecounter.h
timekeeper_internal.h
timekeeping.h
timekeeping32.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
tnum.h
topology.h
torture.h
toshiba.h
tpm.h
tpm_command.h
tpm_eventlog.h tpm: eventlog: Replace zero-length array with flexible-array member 2020-05-22 18:50:12 +03:00
trace.h
trace_clock.h
trace_events.h
trace_seq.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h
transport_class.h
ts-nbus.h
tsacct_kern.h
tty.h
tty_driver.h
tty_flip.h
tty_ldisc.h
typecheck.h
types.h
u64_stats_sync.h u64_stats: Document writer non-preemptibility requirement 2020-06-04 15:50:42 -07:00
uacce.h uacce: Remove mm_exit() op 2020-05-29 14:52:53 +02:00
uaccess.h Rebase locking/kcsan to locking/urgent 2020-06-11 20:02:46 +02:00
ucb1400.h
ucs2_string.h
udp.h
uidgid.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_namespace.h
userfaultfd_k.h
util_macros.h
uts.h
utsname.h
uuid.h
vbox_utils.h
vdpa.h vdpa: introduce get_vq_notification method 2020-06-04 15:36:51 -04:00
verification.h
vermagic.h
vexpress.h
vfio.h vfio: Selective dirty page tracking if IOMMU backed device pins pages 2020-05-28 15:53:29 -06:00
vfs.h
vga_switcheroo.h
vgaarb.h
vhost_iotlb.h
via-core.h
via-gpio.h
via.h
via_i2c.h
videodev2.h
virtio.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h
virtio_console.h
virtio_net.h net: be more gentle about silly gso requests coming from user 2020-05-28 16:31:30 -07:00
virtio_ring.h
virtio_vsock.h
visorbus.h
vlynq.h
vm_event_item.h mm: keep separate anon and file statistics on page reclaim activity 2020-06-03 20:09:48 -07:00
vmacache.h
vmalloc.h mm: remove vmalloc_sync_(un)mappings() 2020-06-02 10:59:12 -07:00
vme.h
vmpressure.h
vmstat.h Merge branch 'akpm' (patches from Andrew) 2020-06-03 20:24:15 -07:00
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h virtio: force spec specified alignment on types 2020-06-02 02:45:13 -04:00
vt.h
vt_buffer.h
vt_kern.h
vtime.h
w1-gpio.h
w1.h
wait.h
wait_bit.h
watch_queue.h pipe: Add general notification queue support 2020-05-19 15:08:24 +01:00
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
wmi.h
workqueue.h workqueue: fix a piece of comment about reserved bits for work flags 2020-06-01 11:02:28 -04:00
writeback.h A lot of bug fixes and cleanups for ext4, including: 2020-06-05 16:19:28 -07:00
ww_mutex.h
xarray.h xarray.h: correct return code documentation for xa_store_{bh,irq}() 2020-06-08 11:05:56 -07:00
xattr.h
xxhash.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h mm: rename CONFIG_PGTABLE_MAPPING to CONFIG_ZSMALLOC_PGTABLE_MAPPING 2020-06-02 10:59:10 -07:00
zstd.h
zutil.h