twx-linux/include/linux
Alexei Starovoitov cc8b0b92a1 bpf: introduce function calls (function boundaries)
Allow arbitrary function calls from bpf function to another bpf function.

Since the beginning of bpf all bpf programs were represented as a single function
and program authors were forced to use always_inline for all functions
in their C code. That was causing llvm to unnecessary inflate the code size
and forcing developers to move code to header files with little code reuse.

With a bit of additional complexity teach verifier to recognize
arbitrary function calls from one bpf function to another as long as
all of functions are presented to the verifier as a single bpf program.
New program layout:
r6 = r1    // some code
..
r1 = ..    // arg1
r2 = ..    // arg2
call pc+1  // function call pc-relative
exit
.. = r1    // access arg1
.. = r2    // access arg2
..
call pc+20 // second level of function call
...

It allows for better optimized code and finally allows to introduce
the core bpf libraries that can be reused in different projects,
since programs are no longer limited by single elf file.
With function calls bpf can be compiled into multiple .o files.

This patch is the first step. It detects programs that contain
multiple functions and checks that calls between them are valid.
It splits the sequence of bpf instructions (one program) into a set
of bpf functions that call each other. Calls to only known
functions are allowed. In the future the verifier may allow
calls to unresolved functions and will do dynamic linking.
This logic supports statically linked bpf functions only.

Such function boundary detection could have been done as part of
control flow graph building in check_cfg(), but it's cleaner to
separate function boundary detection vs control flow checks within
a subprogram (function) into logically indepedent steps.
Follow up patches may split check_cfg() further, but not check_subprogs().

Only allow bpf-to-bpf calls for root only and for non-hw-offloaded programs.
These restrictions can be relaxed in the future.

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2017-12-17 20:34:35 +01:00
..
amba
avf
bcma
byteorder
can
ceph
clk ARM: SoC platform updates for 4.15 2017-11-16 14:05:12 -08:00
crush
decompress
dma dmaengine updates for 4.15-rc1 2017-11-14 16:49:31 -08:00
dsa net: dsa: lan9303: Correct register names in comments 2017-11-08 13:29:05 +09:00
extcon
firmware/meson
fpga
fsl
gpio Merge branch 'i2c/for-4.15' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2017-11-14 17:52:21 -08:00
hsi
i2c
iio A couple of configfs cleanups: 2017-11-14 14:44:04 -08:00
input
irqchip Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-26 14:39:20 -08:00
isdn
lockd
mailbox
mfd - New Drivers 2017-11-16 09:15:57 -08:00
mlx4 Updates for 4.15 kernel merge window 2017-11-15 14:54:53 -08:00
mlx5 Updates for 4.15 kernel merge window 2017-11-15 14:54:53 -08:00
mmc MMC core: 2017-11-13 10:17:35 -08:00
mtd This pull request contains the following core changes: 2017-11-22 20:46:06 -10:00
mux
netfilter Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
perf
phy USB/PHY patches for 4.15-rc1 2017-11-13 21:14:07 -08:00
pinctrl This is the bulk of pin control changes for the v4.15 2017-11-16 10:57:11 -08:00
platform_data This pull request contains the following core changes: 2017-11-22 20:46:06 -10:00
power
qed
raid
regulator Merge remote-tracking branches 'regulator/topic/da9211', 'regulator/topic/pfuze100' and 'regulator/topic/tps65218' into regulator-next 2017-11-10 21:33:23 +00:00
remoteproc
reset
rpmsg
rtc
sched Merge branch 'for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2017-11-15 14:29:44 -08:00
soc We have two changes to the core framework this time around. The first being a 2017-11-17 20:04:24 -08:00
spi Merge remote-tracking branches 'spi/topic/armada', 'spi/topic/axi', 'spi/topic/davinci' and 'spi/topic/fsl-dspi' into spi-next 2017-11-10 21:33:44 +00:00
ssb
sunrpc sunrpc: make the function arg as const 2017-11-27 16:45:11 -05:00
ulpi
unaligned
usb USB/PHY patches for 4.15-rc1 2017-11-13 21:14:07 -08:00
uwb
wimax
8250_pci.h
a.out.h
acct.h Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-11-17 12:54:01 -08:00
acpi_dma.h
acpi_iort.h
acpi_pmtmr.h
acpi.h ACPI / PM: Take SMART_SUSPEND driver flag into account 2017-11-06 13:57:47 +01:00
adb.h
adfs_fs.h
aer.h
agp_backend.h
agpgart.h
ahci_platform.h
ahci-remap.h
aio.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
amifd.h
amifdreg.h
anon_inodes.h
apm_bios.h
apm-emulation.h
apple_bl.h
apple-gmux.h
arch_topology.h Merge branch 'pm-cpufreq' 2017-11-13 01:34:49 +01:00
arm-cci.h
arm-smccc.h
asn1_ber_bytecode.h
asn1_decoder.h
asn1.h
assoc_array_priv.h
assoc_array.h
async_tx.h
async.h
ata_platform.h
ata.h
atalk.h
ath9k_platform.h
atm_suni.h
atm_tcp.h
atm.h
atmdev.h
atmel_pdc.h
atmel_tc.h
atmel-mci.h
atmel-ssc.h
atomic.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
attribute_container.h
audit.h audit/stable-4.15 PR 20171113 2017-11-15 13:28:48 -08:00
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
b1pcmcia.h
backing-dev-defs.h Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
backing-dev.h writeback: remove unused function parameter 2017-11-15 18:21:07 -08:00
backlight.h
badblocks.h
balloon_compaction.h virtio_balloon: fix deadlock on OOM 2017-11-14 23:57:38 +02:00
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
bfin_mac.h
binfmts.h
bio.h Merge branch 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-11-17 12:08:18 -08:00
bit_spinlock.h
bitfield.h include/linux/bitfield.h: include <linux/build_bug.h> instead of <linux/bug.h> 2017-11-17 16:10:01 -08:00
bitmap.h A relatively calm cycle for the docs tree again. 2017-11-13 08:25:06 -08:00
bitops.h This is the bulk of GPIO changes for the v4.15 kernel cycle: 2017-11-14 17:23:44 -08:00
bitrev.h
blk_types.h Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
blk-cgroup.h Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
blk-mq-pci.h
blk-mq-rdma.h
blk-mq-virtio.h
blk-mq.h Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
blkdev.h Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h mm: define memblock_virt_alloc_try_nid_raw 2017-11-15 18:21:05 -08:00
bottom_half.h
bpf_trace.h
bpf_types.h bpf, cgroup: implement eBPF-based device controller for cgroup v2 2017-11-05 23:26:51 +09:00
bpf_verifier.h bpf: introduce function calls (function boundaries) 2017-12-17 20:34:35 +01:00
bpf-cgroup.h bpf, cgroup: implement eBPF-based device controller for cgroup v2 2017-11-05 23:26:51 +09:00
bpf.h bpf/tracing: fix kernel/events/core.c compilation error 2017-12-13 22:44:10 +01:00
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
bug.h kernel debug: support resetting WARN_ONCE for all architectures 2017-11-17 16:10:01 -08:00
build_bug.h
bvec.h
c2port.h kmemcheck: remove annotations 2017-11-15 18:21:04 -08:00
cache.h
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup_rdma.h
cgroup_subsys.h
cgroup-defs.h Merge branch 'for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2017-11-15 14:29:44 -08:00
cgroup.h Merge branch 'for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2017-11-15 14:29:44 -08:00
circ_buf.h
cleancache.h
clk-provider.h Merge branch 'clk-gpio' into clk-next 2017-11-14 10:07:45 -08:00
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_psdev.h
coda.h
compaction.h
compat.h Merge branch 'misc.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-11-17 11:54:55 -08:00
compiler_types.h
compiler-clang.h include/linux/compiler-clang.h: handle randomizable anonymous structs 2017-11-17 16:10:01 -08:00
compiler-gcc.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
compiler-intel.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
compiler.h Merge branch 'linus' into core/objtool, to pick up dependent commits 2017-11-14 07:21:44 +01:00
completion.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
component.h
concap.h
configfs.h
connector.h
console_struct.h
console.h
consolemap.h
container.h
context_tracking_state.h
context_tracking.h
cordic.h
coredump.h
coresight-pmu.h
coresight-stm.h
coresight.h
count_zeros.h
cper.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpu.h Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-13 18:23:19 -08:00
cpufeature.h
cpufreq.h x86 / CPU: Always show current CPU frequency in /proc/cpuinfo 2017-11-15 19:46:50 +01:00
cpuhotplug.h arm64 updates for 4.15 2017-11-15 10:56:56 -08:00
cpuidle.h
cpumask.h Merge branch 'linus' into sched/core, to pick up fixes 2017-11-08 10:17:15 +01:00
cpuset.h
crash_core.h
crash_dump.h
crc4.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
cred.h
crypto.h
cryptohash.h
cs5535.h
ctype.h
cuda.h
cyclades.h TTY/Serial patches for 4.15-rc1 2017-11-13 21:05:31 -08:00
davinci_emac.h
dax.h libnvdimm for 4.15 2017-11-17 09:51:57 -08:00
dca.h
dcache.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
dccp.h
dcookies.h
debug_locks.h
debugfs.h debugfs: Remove redundant license text 2017-11-07 20:25:03 +01:00
debugobjects.h
delay.h
delayacct.h
delayed_call.h
dell-led.h
devcoredump.h
devfreq_cooling.h
devfreq-event.h
devfreq.h
device_cgroup.h bpf, cgroup: implement eBPF-based device controller for cgroup v2 2017-11-05 23:26:51 +09:00
device-mapper.h
device.h A couple of dma-mapping updates: 2017-11-14 16:54:12 -08:00
devpts_fs.h
digsig.h
dio.h
dirent.h
dlm_plock.h
dlm.h
dm9000.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dma_remapping.h
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direction.h
dma-fence-array.h
dma-fence.h
dma-iommu.h
dma-mapping.h kmemcheck: remove annotations 2017-11-15 18:21:04 -08:00
dmaengine.h
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
dw_apb_timer.h
dynamic_debug.h
dynamic_queue_limits.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-11-15 11:56:19 -08:00
earlycpio.h
ecryptfs.h
edac.h
edd.h
edma.h
eeprom_93cx6.h
eeprom_93xx46.h
efi-bgrt.h
efi.h
efs_vh.h
eisa.h
elevator.h Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
errseq.h
etherdevice.h
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 f2fs: support quota sys files 2017-11-05 16:42:02 -08:00
f75375s.h
falloc.h
fanotify.h
fault-inject.h
fb.h
fbcon.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
file.h
filter.h bpf: add a bpf_override_function helper 2017-12-12 09:02:34 -08:00
fips.h
firewire.h
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_array.h
flex_proportions.h
fmc-sdb.h
fmc.h
font.h
frame.h
freezer.h Merge branch 'pm-sleep' 2017-11-13 01:41:20 +01:00
frontswap.h
fs_enet_pd.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fs.h autofs: revert "autofs: fix AT_NO_AUTOMOUNT not being honored" 2017-11-29 18:40:43 -08:00
fscache-cache.h
fscache.h
fscrypt_notsupp.h fscrypt: lots of cleanups, mostly courtesy by Eric Biggers 2017-11-14 11:35:15 -08:00
fscrypt_supp.h fscrypt: lots of cleanups, mostly courtesy by Eric Biggers 2017-11-14 11:35:15 -08:00
fscrypt.h fscrypt: lots of cleanups, mostly courtesy by Eric Biggers 2017-11-14 11:35:15 -08:00
fsi.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsl-diu-fb.h
fsldma.h
fsnotify_backend.h Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs 2017-11-14 14:13:11 -08:00
fsnotify.h
ftrace_irq.h
ftrace.h Tracing updates for 4.15: 2017-11-17 14:58:01 -08:00
futex.h
fwnode.h device property: Make fwnode_handle_get() return the fwnode 2017-11-09 00:17:22 +01:00
gameport.h
gcd.h
genalloc.h lib/genalloc.c: make the avail variable an atomic_long_t 2017-11-17 16:10:02 -08:00
genetlink.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
genhd.h Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h mm: remove __GFP_COLD 2017-11-15 18:21:06 -08:00
glob.h
goldfish.h
gpio_keys.h
gpio-pxa.h
gpio.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 Merge branch 'for-4.15/upstream' into for-linus 2017-11-15 11:10:38 +01:00
hiddev.h
hidraw.h
highmem.h
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hmm.h mm/hmm: constify hmm_devmem_page_get_drvdata() parameter 2017-11-15 18:21:03 -08:00
host1x.h
hp_sdc.h
hpet.h
hrtimer.h
htcpld.h
huge_mm.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
hugetlb_cgroup.h
hugetlb_inline.h
hugetlb.h mm: fix device-dax pud write-faults triggered by get_user_pages() 2017-11-29 18:40:42 -08:00
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h vmbus: make hv_get_ringbuffer_availbytes local 2017-12-03 10:10:02 -05:00
hypervisor.h x86/virt, x86/platform: Merge 'struct x86_hyper' into 'struct x86_platform' and 'struct x86_init' 2017-11-10 10:03:12 +01:00
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-gpio.h
i2c-mux-gpio.h
i2c-mux.h
i2c-ocores.h
i2c-omap.h
i2c-pca-platform.h
i2c-pnx.h
i2c-pxa.h
i2c-smbus.h
i2c-xiic.h
i2c.h
i7300_idle.h
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-13 17:56:58 -08:00
idr.h
ieee80211.h
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_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
inet_diag.h
inet.h
inetdevice.h
init_ohci1394_dma.h
init_task.h pid: remove pidhash 2017-11-17 16:10:04 -08:00
init.h Tracing updates for 4.15: 2017-11-17 14:58:01 -08:00
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel-svm.h
interrupt.h kmemcheck: rip it out 2017-11-15 18:21:05 -08:00
interval_tree_generic.h
interval_tree.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io.h
ioc3.h
ioc4.h
iocontext.h
iomap.h libnvdimm for 4.15 2017-11-17 09:51:57 -08:00
iommu-common.h
iommu-helper.h
iommu.h
iopoll.h iopoll: avoid -Wint-in-bool-context warning 2017-11-17 16:10:01 -08:00
ioport.h x86/mm, resource: Use PAGE_KERNEL protection for ioremap of memory pages 2017-11-07 15:35:58 +01:00
ioprio.h Merge branch 'linus' into sched/core, to pick up fixes 2017-11-08 10:17:15 +01:00
iova.h
ip.h
ipack.h
ipc_namespace.h sysvipc: make get_maxid O(1) again 2017-11-17 16:10:04 -08:00
ipc.h
ipmi_smi.h
ipmi-fru.h
ipmi.h
ipv6_route.h
ipv6.h net: ipv6: sysctl to specify IPv6 ND traffic class 2017-11-11 15:13:02 +09:00
irq_cpustat.h
irq_poll.h
irq_sim.h
irq_work.h Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-13 12:18:10 -08:00
irq.h irqchip updates for 4.15, take #4 2017-11-14 11:23:05 +01:00
irqbypass.h
irqchip.h
irqdesc.h arm64 updates for 4.15 2017-11-15 10:56:56 -08:00
irqdomain.h Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-13 17:33:11 -08:00
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
isicom.h
jbd2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label_ratelimit.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
jump_label.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
jz4740-adc.h
jz4780-nemc.h
kallsyms.h kallsyms: take advantage of the new '%px' format 2017-11-29 10:30:13 -08:00
kasan-checks.h
kasan.h slab, slub, slob: add slab_flags_t 2017-11-15 18:21:01 -08:00
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kcov.h kcov: support comparison operands collection 2017-11-17 16:10:04 -08:00
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel_stat.h
kernel-page-flags.h
kernel.h kernel/panic.c: add TAINT_AUX 2017-11-17 16:10:04 -08:00
kernelcapi.h
kernfs.h
kexec.h resource: Provide resource struct in resource walk callback 2017-11-07 15:35:57 +01:00
key-type.h security: keys: Replace time_t with time64_t for struct key_preparsed_payload 2017-11-15 16:38:45 +00:00
key.h security: keys: Replace time_t/timespec with time64_t 2017-11-15 16:38:45 +00:00
keyboard.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemcheck.h kmemcheck: rip it out 2017-11-15 18:21:05 -08:00
kmemleak.h slab, slub, slob: add slab_flags_t 2017-11-15 18:21:01 -08:00
kmod.h
kmsg_dump.h
kobj_map.h
kobject_ns.h
kobject.h
kprobes.h add infrastructure for tagging functions as error injectable 2017-12-12 08:56:26 -08:00
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h treewide: Remove TIMER_FUNC_TYPE and TIMER_DATA_TYPE casts 2017-11-21 16:35:54 -08:00
ktime.h
kvm_host.h KVM: Let KVM_SET_SIGNAL_MASK work as advertised 2017-11-27 17:53:47 +01:00
kvm_irqfd.h
kvm_para.h
kvm_types.h
l2tp.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-class-flash.h
led-lm3530.h
leds_pwm.h
leds-bd2802.h
leds-lp3944.h
leds-lp3952.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h
libata.h
libfdt_env.h
libfdt.h
libgcc.h move libgcc.h to include/linux 2017-12-01 13:09:40 -08:00
libnvdimm.h
libps2.h
license.h
lightnvm.h Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
linkage.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
linux_logo.h
lis3lv02d.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
list.h
livepatch.h
llc.h
llist.h
lockdep.h locking/lockdep: Add IRQs disabled/enabled assertion APIs: lockdep_assert_irqs_enabled()/disabled() 2017-11-08 11:13:47 +01:00
lockref.h
log2.h
lp.h
lru_cache.h
lsm_audit.h
lsm_hooks.h
lz4.h
lzo.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h
math64.h A relatively calm cycle for the docs tree again. 2017-11-13 08:25:06 -08:00
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdev.h
mdio-bitbang.h
mdio-mux.h
mdio.h phylib: Add device reset GPIO support 2017-12-05 12:51:19 -05:00
mei_cl_bus.h
mem_encrypt.h x86/mm: Add Secure Encrypted Virtualization (SEV) support 2017-11-07 15:35:54 +01:00
memblock.h mm: zero reserved and unavailable struct pages 2017-11-15 18:21:05 -08:00
memcontrol.h
memory_hotplug.h
memory.h
mempolicy.h
mempool.h
memremap.h
memstick.h
mic_bus.h
micrel_phy.h
microchipphy.h
migrate_mode.h
migrate.h mm: migrate: fix an incorrect call of prep_transhuge_page() 2017-11-29 18:40:43 -08:00
mii.h
miscdevice.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2017-11-17 20:21:44 -08:00
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_inline.h
mm_types_task.h
mm_types.h kmemcheck: remove annotations 2017-11-15 18:21:04 -08:00
mm-arch-hooks.h
mm.h mm: introduce get_user_pages_longterm 2017-11-29 18:40:42 -08:00
mman.h libnvdimm for 4.15 2017-11-17 09:51:57 -08:00
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h mm/mmu_notifier: avoid call to invalidate_range() in range_end() 2017-11-15 18:21:03 -08:00
mmzone.h mm/page_alloc.c: broken deferred calculation 2017-11-15 18:21:07 -08:00
mnt_namespace.h
mod_devicetable.h
module.h add infrastructure for tagging functions as error injectable 2017-12-12 08:56:26 -08:00
moduleloader.h
moduleparam.h Modules updates for v4.15 2017-11-15 13:46:33 -08:00
mount.h
mpage.h
mpi.h
mpls_iptunnel.h
mpls.h
mroute6.h
mroute.h
msdos_fs.h
msg.h
msi.h Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-13 17:33:11 -08:00
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nd.h
net.h kmemcheck: remove annotations 2017-11-15 18:21:04 -08:00
netdev_features.h net: accept UFO datagrams from tuntap and packet 2017-11-24 01:37:35 +09:00
netdevice.h net: xdp: report flags program was installed with on query 2017-12-03 00:27:57 +01:00
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink.h netlink: remove unused NETLINK SKB flags 2017-11-14 21:51:14 +09:00
netpoll.h
nfs3.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h NFS client updates for Linux 4.15 2017-11-17 14:18:00 -08:00
nfs_fs.h NFS client updates for Linux 4.15 2017-11-17 14:18:00 -08:00
nfs_iostat.h
nfs_page.h
nfs_xdr.h
nfs.h
nfsacl.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h mm: fix nodemask printing 2017-11-17 16:10:00 -08:00
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb_transport.h
ntb.h NTB: switchtec_ntb: Add skeleton NTB driver 2017-11-18 20:37:12 -05:00
nubus.h
numa.h
nvme-fc-driver.h
nvme-fc.h
nvme-rdma.h
nvme.h nvme: send uevent for some asynchronous events 2017-11-10 19:53:25 -07:00
nvmem-consumer.h
nvmem-provider.h
nvram.h
of_address.h pci-v4.15-changes 2017-11-15 15:01:28 -08:00
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 ARM: SoC driver updates for v4.15 2017-11-16 16:05:01 -08:00
of.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-11-15 11:56:19 -08:00
oid_registry.h
olpc-ec.h
omap-dma.h
omap-dmaengine.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once.h
oom.h
openvswitch.h
oprofile.h
osq_lock.h
oxu210hp.h
padata.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h
page-flags-layout.h
page-flags.h mm, arch: remove empty_bad_page* 2017-11-15 18:21:03 -08:00
page-isolation.h mm: distinguish CMA and MOVABLE isolation in has_unmovable_pages() 2017-11-15 18:21:02 -08:00
pageblock-flags.h mm, compaction: persistently skip hugetlbfs pageblocks 2017-11-17 16:10:00 -08:00
pagemap.h mm: remove __GFP_COLD 2017-11-15 18:21:06 -08:00
pagevec.h mm, pagevec: rename pagevec drained field 2017-11-15 18:21:06 -08:00
parman.h
parport_pc.h
parport.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h vfs: add path_put_init() 2017-11-09 10:23:28 +01:00
pch_dma.h
pci_hotplug.h
pci_ids.h
pci-acpi.h
pci-aspm.h
pci-ats.h
pci-dma-compat.h
pci-dma.h
pci-ecam.h
pci-ep-cfs.h
pci-epc.h
pci-epf.h
pci.h Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-26 14:11:54 -08:00
pcieport_if.h
pda_power.h
pe.h
percpu_counter.h
percpu_ida.h
percpu-defs.h percpu: Introduce DEFINE_PER_CPU_DECRYPTED 2017-11-07 15:35:59 +01:00
percpu-refcount.h
percpu-rwsem.h
percpu.h
perf_event.h Tracing updates for 4.15: 2017-11-17 14:58:01 -08:00
perf_regs.h
personality.h
pfn_t.h
pfn.h
phonet.h
phy_fixed.h
phy_led_triggers.h
phy.h phylib: Add device reset GPIO support 2017-12-05 12:51:19 -05:00
phylink.h phylink: convert to fwnode 2017-12-05 11:16:19 -05:00
pid_namespace.h pid: remove pidhash 2017-11-17 16:10:04 -08:00
pid.h pid: remove pidhash 2017-11-17 16:10:04 -08:00
pim.h
pipe_fs_i.h pipe: add proc_dopipe_max_size() to safely assign pipe_max_size 2017-11-17 16:10:03 -08:00
pkeys.h
pktcdvd.h
pl320-ipc.h
platform_device.h
plist.h
pm2301_charger.h
pm_clock.h
pm_domain.h PM / Domains: Remove gpd_dev_ops.active_wakeup() callback 2017-11-08 01:00:48 +01:00
pm_opp.h
pm_qos.h Merge branch 'pm-qos' 2017-11-13 01:33:48 +01:00
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h
pm-trace.h
pm.h PCI / PM: Take SMART_SUSPEND driver flag into account 2017-11-06 13:57:46 +01:00
pmbus.h
pmu.h
pnfs_osd_xdr.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
pps-gpio.h
pr.h
preempt.h
prefetch.h
prime_numbers.h
printk.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk 2017-11-21 05:28:13 -10:00
proc_fs.h
proc_ns.h
processor.h
profile.h
projid.h
property.h device property: Add a macro for interating over graph endpoints 2017-11-09 00:17:23 +01:00
psci.h
pstore_ram.h
pstore.h
pti.h
ptp_classify.h
ptp_clock_kernel.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 remoteproc updates for v4.15 2017-11-17 20:14:10 -08:00
qnx6_fs.h
quicklist.h
quota.h
quotaops.h
radix-tree.h include/linux/radix-tree.h: remove unneeded #include <linux/bug.h> 2017-11-17 16:10:01 -08:00
raid_class.h
ramfs.h
random.h
range.h
ras.h
ratelimit.h
rational.h
rbtree_augmented.h
rbtree_latch.h
rbtree.h
rcu_node_tree.h
rcu_segcblist.h
rcu_sync.h
rculist_bl.h
rculist_nulls.h
rculist.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
rcupdate_wait.h
rcupdate.h
rcutiny.h
rcutree.h
rcuwait.h
reboot-mode.h
reboot.h kernel/reboot.c: add devm_register_reboot_notifier() 2017-11-17 16:10:04 -08:00
reciprocal_div.h
refcount.h
regmap.h Merge remote-tracking branches 'regmap/topic/const' and 'regmap/topic/hwspinlock' into regmap-next 2017-11-06 11:39:41 +00:00
regset.h
relay.h
remoteproc.h
reservation.h
reset-controller.h
reset.h
resource_ext.h
resource.h
restart_block.h
rfkill.h
rhashtable.h
ring_buffer.h kmemcheck: remove annotations 2017-11-15 18:21:04 -08:00
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
rslib.h
rtc.h Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-13 17:56:58 -08:00
rtmutex.h
rtnetlink.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-11-15 11:56:19 -08:00
rwlock_api_smp.h locking/rwlocks: Fix comments 2017-11-07 12:22:21 +01:00
rwlock_types.h
rwlock.h
rwsem-spinlock.h
rwsem.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
s3c_adc_battery.h
sa11x0-dma.h
sbitmap.h
scatterlist.h main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
scc.h
sched_clock.h
sched.h sched/deadline: Don't use dubious signed bitfields 2017-11-21 09:25:01 +01:00
scif.h
scpi_protocol.h
screen_info.h
sctp.h
scx200_gpio.h
scx200.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h
sed-opal.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selection.h
selinux.h
sem.h
semaphore.h
seq_buf.h
seq_file_net.h
seq_file.h
seqlock.h
seqno-fence.h
serdev.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serial.h
serio.h
set_memory.h
sfi_acpi.h
sfi.h
sfp.h sfp: convert to fwnode 2017-12-05 11:16:19 -05:00
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
shdma-base.h
shm.h
shmem_fs.h main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
shrinker.h
signal_types.h
signal.h
signalfd.h
siphash.h
sirfsoc_dma.h
sizes.h
skb_array.h
skbuff.h flow_dissector: dissect tunnel info outside __skb_flow_dissect() 2017-12-05 12:09:18 -05:00
slab_def.h slab, slub, slob: add slab_flags_t 2017-11-15 18:21:01 -08:00
slab.h mm: remove __GFP_COLD 2017-11-15 18:21:06 -08:00
slub_def.h slab, slub, slob: add slab_flags_t 2017-11-15 18:21:01 -08:00
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
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_api_smp.h
spinlock_api_up.h
spinlock_types_up.h
spinlock_types.h
spinlock_up.h
spinlock.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
splice.h
spmi.h
sram.h
srcu.h
srcutiny.h
srcutree.h
ssbi.h
stackdepot.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
ste_modem_shm.h
stm.h
stmmac.h
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string_helpers.h
string.h
stringhash.h
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
suspend.h
svga.h
sw842.h
swab.h
swait.h
swap_cgroup.h
swap_slots.h
swap.h mm: remove cold parameter for release_pages 2017-11-15 18:21:06 -08:00
swapfile.h
swapops.h
swiotlb.h
switchtec.h NTB: switchtec_ntb: Introduce initial NTB driver 2017-11-18 20:37:12 -05:00
sxgbe_platform.h
sync_file.h
synclink.h
sys_soc.h
sys.h
syscalls.h
syscore_ops.h
sysctl.h pipe: add proc_dopipe_max_size() to safely assign pipe_max_size 2017-11-17 16:10:03 -08:00
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 tcp: use sequence distance to detect reordering 2017-11-11 18:53:16 +09:00
tee_drv.h
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h
thinkpad_acpi.h
thread_info.h kmemcheck: stop using GFP_NOTRACK and SLAB_NOTRACK 2017-11-15 18:21:04 -08:00
threads.h
thunderbolt.h
ti_wilink_st.h
tick.h Merge branch 'linus' into sched/core, to pick up fixes 2017-11-08 10:17:15 +01:00
tifm.h
timb_dma.h
timb_gpio.h
time32.h
time64.h Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-13 17:56:58 -08:00
time.h Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-13 17:56:58 -08:00
timecounter.h
timekeeper_internal.h timekeeping: Remove CONFIG_GENERIC_TIME_VSYSCALL_OLD 2017-11-14 11:20:25 +01:00
timekeeping32.h
timekeeping.h Merge branch 'linus' into timers/urgent 2017-11-14 10:01:49 +01:00
timer.h treewide: Remove TIMER_FUNC_TYPE and TIMER_DATA_TYPE casts 2017-11-21 16:35:54 -08:00
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
tnum.h
topology.h
torture.h
toshiba.h
tpm_command.h
tpm.h
trace_clock.h
trace_events.h bpf/tracing: fix kernel/events/core.c compilation error 2017-12-13 22:44:10 +01:00
trace_seq.h
trace.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h
transport_class.h
ts-nbus.h bus: add driver for the Technologic Systems NBUS 2017-11-07 16:28:19 +01:00
tsacct_kern.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h
typecheck.h
types.h slab, slub, slob: convert slab_flags_t to 32-bit 2017-11-15 18:21:01 -08:00
u64_stats_sync.h
uaccess.h
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uio_driver.h
uio.h
umh.h
uprobes.h
usb_usual.h
usb.h sound updates for 4.15-rc1 2017-11-14 18:01:46 -08:00
usbdevice_fs.h
user_namespace.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2017-11-16 12:20:15 -08:00
user-return-notifier.h
user.h
userfaultfd_k.h
util_macros.h
uts.h
utsname.h
uuid.h
uwb.h
verification.h
vermagic.h
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
via_i2c.h
via-core.h
via-gpio.h
via.h
videodev2.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h
virtio_console.h
virtio_net.h net: accept UFO datagrams from tuntap and packet 2017-11-24 01:37:35 +09:00
virtio_ring.h
virtio_vsock.h
virtio.h
vlynq.h
vm_event_item.h
vm_sockets.h
vmacache.h
vmalloc.h
vme.h
vmpressure.h
vmstat.h mm, sysctl: make NUMA stats configurable 2017-11-15 18:21:07 -08:00
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 Pass mode to wait_on_atomic_t() action funcs and provide default actions 2017-11-13 15:38:16 +00:00
wait.h
wanrouter.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
wmi.h
workqueue.h treewide: Remove TIMER_FUNC_TYPE and TIMER_DATA_TYPE casts 2017-11-21 16:35:54 -08:00
writeback.h block/laptop_mode: Convert timers to use timer_setup() 2017-11-21 15:46:44 -08:00
ww_mutex.h
xattr.h
xxhash.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zstd.h
zutil.h