twx-linux/include/linux
Lawrence Brakmo 40304b2a15 bpf: BPF support for sock_ops
Created a new BPF program type, BPF_PROG_TYPE_SOCK_OPS, and a corresponding
struct that allows BPF programs of this type to access some of the
socket's fields (such as IP addresses, ports, etc.). It uses the
existing bpf cgroups infrastructure so the programs can be attached per
cgroup with full inheritance support. The program will be called at
appropriate times to set relevant connections parameters such as buffer
sizes, SYN and SYN-ACK RTOs, etc., based on connection information such
as IP addresses, port numbers, etc.

Alghough there are already 3 mechanisms to set parameters (sysctls,
route metrics and setsockopts), this new mechanism provides some
distinct advantages. Unlike sysctls, it can set parameters per
connection. In contrast to route metrics, it can also use port numbers
and information provided by a user level program. In addition, it could
set parameters probabilistically for evaluation purposes (i.e. do
something different on 10% of the flows and compare results with the
other 90% of the flows). Also, in cases where IPv6 addresses contain
geographic information, the rules to make changes based on the distance
(or RTT) between the hosts are much easier than route metric rules and
can be global. Finally, unlike setsockopt, it oes not require
application changes and it can be updated easily at any time.

Although the bpf cgroup framework already contains a sock related
program type (BPF_PROG_TYPE_CGROUP_SOCK), I created the new type
(BPF_PROG_TYPE_SOCK_OPS) beccause the existing type expects to be called
only once during the connections's lifetime. In contrast, the new
program type will be called multiple times from different places in the
network stack code.  For example, before sending SYN and SYN-ACKs to set
an appropriate timeout, when the connection is established to set
congestion control, etc. As a result it has "op" field to specify the
type of operation requested.

The purpose of this new program type is to simplify setting connection
parameters, such as buffer sizes, TCP's SYN RTO, etc. For example, it is
easy to use facebook's internal IPv6 addresses to determine if both hosts
of a connection are in the same datacenter. Therefore, it is easy to
write a BPF program to choose a small SYN RTO value when both hosts are
in the same datacenter.

This patch only contains the framework to support the new BPF program
type, following patches add the functionality to set various connection
parameters.

This patch defines a new BPF program type: BPF_PROG_TYPE_SOCKET_OPS
and a new bpf syscall command to load a new program of this type:
BPF_PROG_LOAD_SOCKET_OPS.

Two new corresponding structs (one for the kernel one for the user/BPF
program):

/* kernel version */
struct bpf_sock_ops_kern {
        struct sock *sk;
        __u32  op;
        union {
                __u32 reply;
                __u32 replylong[4];
        };
};

/* user version
 * Some fields are in network byte order reflecting the sock struct
 * Use the bpf_ntohl helper macro in samples/bpf/bpf_endian.h to
 * convert them to host byte order.
 */
struct bpf_sock_ops {
        __u32 op;
        union {
                __u32 reply;
                __u32 replylong[4];
        };
        __u32 family;
        __u32 remote_ip4;     /* In network byte order */
        __u32 local_ip4;      /* In network byte order */
        __u32 remote_ip6[4];  /* In network byte order */
        __u32 local_ip6[4];   /* In network byte order */
        __u32 remote_port;    /* In network byte order */
        __u32 local_port;     /* In host byte horder */
};

Currently there are two types of ops. The first type expects the BPF
program to return a value which is then used by the caller (or a
negative value to indicate the operation is not supported). The second
type expects state changes to be done by the BPF program, for example
through a setsockopt BPF helper function, and they ignore the return
value.

The reply fields of the bpf_sockt_ops struct are there in case a bpf
program needs to return a value larger than an integer.

Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-07-01 16:15:13 -07:00
..
amba Merge branch 'topic/pl330' into for-linus 2017-05-04 16:08:52 +05:30
avf virtchnl: Add compile time static asserts to validate structure sizes 2017-06-01 14:26:23 -07:00
bcma scripts/spelling.txt: add regsiter -> register spelling mistake 2017-05-08 17:15:13 -07:00
byteorder
can
ceph libceph: use kbasename() and kill ceph_file_part() 2017-05-23 20:32:10 +02:00
clk
crush
decompress
dma
extcon
firmware/meson
fpga
fsl
gpio gpiolib: Add stubs for gpiod lookup table interface 2017-05-22 10:39:11 +02:00
hsi
i2c Merge branch 'for-4.12/asus' into for-linus 2017-05-02 11:02:41 +02:00
iio
input
irqchip KVM: arm/arm64: Fix isues with GICv2 on GICv3 migration 2017-05-24 09:44:07 +02:00
isdn
lockd
mailbox
mfd pci-v4.12-changes 2017-05-08 19:03:25 -07:00
mlx4 net/mlx4: Fix the check in attaching steering rules 2017-06-04 23:10:05 -04:00
mlx5 net/mlx5e: IPSec, Innova IPSec offload infrastructure 2017-06-27 16:36:47 +03:00
mmc
mtd MTD updates for 4.12-rc1: 2017-05-11 10:44:22 -07:00
netfilter netfilter: nfnetlink: extended ACK reporting 2017-06-19 19:38:24 +02:00
netfilter_arp
netfilter_bridge netfilter: ebt: Use new helper ebt_invalid_target to check target 2017-06-19 19:09:19 +02:00
netfilter_ipv4
netfilter_ipv6
perf
phy
pinctrl Revert "pinctrl: generic: Add bi-directional and output-enable" 2017-05-22 10:39:10 +02:00
platform_data NFC: st-nci: Get rid of platform data 2017-06-22 23:51:44 +02:00
power power: supply: max17042_battery: Add support for the STATUS property 2017-05-01 12:37:29 +02:00
qed qed*: Rename qed_roce_if.h to qed_rdma_if.h 2017-06-21 15:32:59 -04:00
raid
regulator Merge remote-tracking branches 'regulator/topic/notifier', 'regulator/topic/pfuze100', 'regulator/topic/settle', 'regulator/topic/tps65132' and 'regulator/topic/twl6030' into regulator-next 2017-04-30 22:17:36 +09:00
remoteproc
reset
rpmsg
rtc
sched mm: introduce memalloc_noreclaim_{save,restore} 2017-05-08 17:15:15 -07:00
soc Renesas ARM Based SoC Fixes for v4.12 2017-05-10 15:33:45 +02:00
spi Merge remote-tracking branches 'spi/topic/ti-qspi' and 'spi/topic/xlp' into spi-next 2017-04-26 15:58:22 +01:00
ssb
sunrpc nfsd: Revert "nfsd: check for oversized NFSv2/v3 arguments" 2017-05-16 16:16:30 -04:00
ulpi
unaligned
usb cdc-ether: divorce initialisation with a filter reset and a generic method 2017-05-23 11:01:28 -04:00
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi_dma.h
acpi_iort.h IOMMU Updates for Linux v4.12 2017-05-09 15:15:47 -07:00
acpi_pmtmr.h
acpi.h IOMMU Updates for Linux v4.12 2017-05-09 15:15:47 -07: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
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 libata: remove SCT WRITE SAME support 2017-04-28 18:09:59 -04:00
atalk.h
ath9k_platform.h
atm_suni.h
atm_tcp.h
atm.h
atmdev.h net: convert sock.sk_wmem_alloc from atomic_t to refcount_t 2017-07-01 07:39:08 -07:00
atmel_pdc.h
atmel_tc.h
atmel-mci.h
atmel-ssc.h
atomic.h
attribute_container.h
audit.h audit: Use timespec64 to represent audit timestamps 2017-05-02 10:16:05 -04:00
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev-defs.h
backing-dev.h
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
bfin_mac.h
binfmts.h
bio.h block: provide bio_uninit() free freeing integrity/task associations 2017-06-28 15:30:13 -06:00
bit_spinlock.h
bitfield.h
bitmap.h
bitops.h
bitrev.h
blk_types.h
blk-cgroup.h
blk-mq-pci.h
blk-mq-virtio.h
blk-mq.h blk-mq: remove blk_mq_abort_requeue_list() 2017-05-22 20:50:11 +02:00
blkdev.h blk-mq: fix performance regression with shared tags 2017-06-21 10:17:49 -06:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
bpf_trace.h
bpf_types.h bpf: BPF support for sock_ops 2017-07-01 16:15:13 -07:00
bpf_verifier.h bpf: possibly avoid extra masking for narrower load in verifier 2017-06-23 14:04:11 -04:00
bpf-cgroup.h bpf: BPF support for sock_ops 2017-07-01 16:15:13 -07:00
bpf.h bpf: Add syscall lookup support for fd array and htab 2017-06-29 13:13:25 -04:00
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h fs: remove _submit_bh() 2017-04-26 23:54:06 -04:00
bug.h
bvec.h
c2port.h
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 cgroup: Prevent kill_css() from being called more than once 2017-05-17 16:58:32 -04:00
cgroup.h cpuset: consider dying css as offline 2017-05-24 12:43:30 -04:00
circ_buf.h
cleancache.h
clk-provider.h
clk.h
clkdev.h
clock_cooling.h
clockchips.h Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-05-01 16:15:18 -07:00
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 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2017-05-03 08:50:52 -07:00
compiler-clang.h compiler, clang: properly override 'inline' for clang 2017-06-11 15:51:56 -07:00
compiler-gcc.h
compiler-intel.h
compiler.h
completion.h
component.h
concap.h
configfs.h configfs: Introduce config_item_get_unless_zero() 2017-06-12 13:20:20 +02:00
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
cpufeature.h
cpufreq.h
cpuhotplug.h
cpuidle.h
cpumask.h cpumask: make "nr_cpumask_bits" unsigned 2017-05-08 17:15:11 -07:00
cpuset.h
crash_core.h ia64: reuse append_elf_note() and final_note() functions 2017-05-08 17:15:11 -07:00
crash_dump.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
davinci_emac.h
dax.h dax, xfs, ext4: compile out iomap-dax paths in the FS_DAX=n case 2017-05-13 17:52:16 -07:00
dca.h
dcache.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
delayed_call.h
dell-led.h
devcoredump.h
devfreq_cooling.h thermal: devfreq_cooling: add new interface for direct power read 2017-05-05 15:54:45 +08:00
devfreq-event.h
devfreq.h
device_cgroup.h
device-mapper.h libnvdimm for 4.12 2017-05-05 18:49:20 -07:00
device.h
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 x86, iommu/vt-d: Add an option to disable Intel IOMMU force on 2017-04-26 23:57:53 +02:00
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direction.h
dma-fence-array.h
dma-fence.h
dma-iommu.h iommu/dma: Fix function declaration 2017-05-30 11:25:45 +02:00
dma-mapping.h
dmaengine.h
dmapool.h
dmar.h
dmi.h firmware: dmi_scan: Make dmi_walk and dmi_walk_early return real error codes 2017-06-15 13:46:00 +02:00
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
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 elevator: fix truncation of icq_cache_name 2017-06-06 11:20:47 -06:00
elf-fdpic.h
elf-randomize.h
elf.h ia64: reuse append_elf_note() and final_note() functions 2017-05-08 17:15:11 -07:00
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extable.h
extcon.h
f2fs_fs.h f2fs: introduce CP_TRIMMED_FLAG to avoid unneeded discard 2017-05-03 10:04:56 -07:00
f75375s.h
falloc.h
fanotify.h
fault-inject.h
fb.h
fcdevice.h
fcntl.h fs: add a VALID_OPEN_FLAGS 2017-04-27 05:13:04 -04:00
fd.h
fddidevice.h
fdtable.h
fec.h
file.h
filter.h bpf: BPF support for sock_ops 2017-07-01 16:15:13 -07: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
frontswap.h
fs_enet_pd.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fs.h time: delete current_fs_time() 2017-05-12 15:57:15 -07:00
fscache-cache.h
fscache.h
fscrypt_common.h fscrypt: remove fscrypt_symlink_data_len() 2017-04-30 01:26:34 -04:00
fscrypt_notsupp.h fscrypt: introduce helper function for filename matching 2017-05-04 11:44:37 -04:00
fscrypt_supp.h fscrypt: correct collision claim for digested names 2017-05-04 11:44:41 -04:00
fsi.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsl-diu-fb.h
fsldma.h
fsnotify_backend.h
fsnotify.h
ftrace_irq.h
ftrace.h scripts/spelling.txt: add regsiter -> register spelling mistake 2017-05-08 17:15:13 -07:00
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
genetlink.h
genhd.h
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h include/linux/gfp.h: fix ___GFP_NOLOCKDEP value 2017-06-02 15:07:37 -07:00
glob.h
goldfish.h
gpio_keys.h
gpio_mouse.h
gpio-fan.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 branches 'for-4.11/upstream-fixes', 'for-4.12/accutouch', 'for-4.12/cp2112', 'for-4.12/hid-core-null-state-handling', 'for-4.12/hiddev', 'for-4.12/i2c-hid', 'for-4.12/innomedia', 'for-4.12/logitech-hidpp-battery-power-supply', 'for-4.12/multitouch', 'for-4.12/nti', 'for-4.12/upstream' and 'for-4.12/wacom' into for-linus 2017-05-02 11:01:10 +02:00
hiddev.h
hidraw.h
highmem.h
highuid.h
hil_mlc.h
hil.h
hippidevice.h
host1x.h
hp_sdc.h
hpet.h
hrtimer.h
htcpld.h
htirq.h
huge_mm.h
hugetlb_cgroup.h
hugetlb_inline.h
hugetlb.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h char/misc patches for 4.12-rc1 2017-05-04 19:15:35 -07:00
hypervisor.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-gpio.h
i2c-mux-gpio.h
i2c-mux-pinctrl.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 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2017-05-03 12:38:20 -07:00
i7300_idle.h
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h
idr.h
ieee80211.h cfg80211: support 4-way handshake offloading for 802.1X 2017-06-13 10:44:09 +02:00
ieee802154.h
if_arp.h
if_bridge.h bridge: Export multicast enabled state 2017-05-26 15:18:44 -04:00
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 tap: export skb_array 2017-05-18 10:07:41 -04:00
if_team.h team: add macro MODULE_ALIAS_TEAM_MODE for team mode alias 2017-06-02 10:20:49 -04:00
if_tun.h tun: export skb_array 2017-05-18 10:07:40 -04:00
if_tunnel.h
if_vlan.h networking: make skb_push & __skb_push return void pointers 2017-06-16 11:48:40 -04:00
igmp.h net: convert ip_mc_list.refcnt from atomic_t to refcount_t 2017-07-01 07:39:08 -07:00
ihex.h
ima.h
in6.h
in.h
inet_diag.h
inet.h
inetdevice.h net: convert in_device.refcnt from atomic_t to refcount_t 2017-07-01 07:39:08 -07:00
init_ohci1394_dma.h
init_task.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2017-05-03 08:50:52 -07:00
init.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel-svm.h
interrupt.h
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 ext2, ext4, xfs: retrieve dax_device for iomap operations 2017-04-25 13:20:46 -07:00
iommu-common.h
iommu-helper.h
iommu.h Merge branches 'arm/exynos', 'arm/omap', 'arm/rockchip', 'arm/mediatek', 'arm/smmu', 'arm/core', 'x86/vt-d', 'x86/amd' and 'core' into next 2017-05-04 18:06:17 +02:00
iopoll.h
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc_namespace.h
ipc.h sysv,ipc: cacheline align kern_ipc_perm 2017-05-08 17:15:12 -07:00
ipmi_smi.h
ipmi-fru.h
ipmi.h
ipv6_route.h
ipv6.h
irq_cpustat.h
irq_poll.h
irq_work.h
irq.h
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h
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 jbd2: mark the transaction context with the scope GFP_NOFS context 2017-05-03 15:52:09 -07:00
jhash.h
jiffies.h frv: declare jiffies to be located in the .data section 2017-06-02 15:07:37 -07:00
journal-head.h
joystick.h
jump_label_ratelimit.h
jump_label.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan-checks.h
kasan.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kcov.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel_stat.h
kernel-page-flags.h
kernel.h Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2017-05-02 15:53:46 -07:00
kernelcapi.h
kernfs.h
kexec.h crash: move crashkernel parsing and vmcore related code under CONFIG_CRASH_CORE 2017-05-08 17:15:11 -07:00
key-type.h
key.h KEYS: sanitize key structs before freeing 2017-06-09 13:29:48 +10:00
keyboard.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemcheck.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject_ns.h
kobject.h
kprobes.h tracing/kprobes: Enforce kprobes teardown after testing 2017-05-17 21:50:27 -04:00
kref.h kref: remove WARN_ON for NULL release functions 2017-05-08 17:15:14 -07:00
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h mm: make rmap_walk() return void 2017-05-03 15:52:10 -07:00
kthread.h
ktime.h
kvm_host.h Second round of KVM Changes for v4.12: 2017-05-10 11:29:23 -07: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
lguest_launcher.h
lguest.h
libata.h
libfdt_env.h
libfdt.h
libnvdimm.h libnvdimm: convert NDD_ flags to use bitops, introduce NDD_LOCKED 2017-05-04 14:01:24 -07:00
libps2.h
license.h
lightnvm.h
linkage.h
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
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
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdev.h
mdio-bitbang.h
mdio-mux.h
mdio.h
mei_cl_bus.h
memblock.h mm: consider memblock reservations for deferred memory initialization sizing 2017-06-02 15:07:38 -07:00
memcontrol.h mm: memcontrol: use node page state naming scheme for memcg 2017-05-03 15:52:11 -07:00
memory_hotplug.h
memory.h
mempolicy.h
mempool.h
memremap.h
memstick.h
mic_bus.h
micrel_phy.h phy: micrel: add Microchip KSZ 9477 Switch PHY support 2017-05-31 20:56:31 -04:00
microchipphy.h
migrate_mode.h
migrate.h include/linux/migrate.h: add arg names to prototype 2017-05-03 15:52:10 -07:00
mii.h net/{mii, smsc}: Make mii_ethtool_get_link_ksettings and smc_netdev_get_ecmd return void 2017-06-05 11:00:42 -04:00
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h networking: introduce and use skb_put_data() 2017-06-16 11:48:37 -04:00
mm_inline.h
mm_types_task.h
mm_types.h
mm-arch-hooks.h
mm.h mm: larger stack guard gap, between vmas 2017-06-19 21:50:20 +08:00
mman.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h mm: consider memblock reservations for deferred memory initialization sizing 2017-06-02 15:07:38 -07:00
mnt_namespace.h
mod_devicetable.h firmware: dmi: Add DMI_PRODUCT_FAMILY identification string 2017-05-23 10:04:41 +02:00
module.h Modules updates for v4.12 2017-05-03 19:12:27 -07:00
moduleloader.h
moduleparam.h
mount.h
mpage.h
mpi.h
mpls_iptunnel.h
mpls.h
mroute6.h
mroute.h
msdos_fs.h
msg.h
msi.h
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nd.h libnvdimm: add an atomic vs process context flag to rw_bytes 2017-05-10 21:46:22 -07:00
net.h
netdev_features.h
netdevice.h net: Remove ndo_dfwd_start_xmit 2017-06-25 11:56:30 -04:00
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink.h net: add extack arg to lwtunnel build state 2017-05-30 11:55:32 -04:00
netpoll.h net: convert netpoll_info.refcnt from atomic_t to refcount_t 2017-07-01 07:39:08 -07:00
nfs3.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h NFS client updates for Linux 4.12 2017-05-10 13:03:38 -07:00
nfs_fs.h NFSv4: Don't special case "launder" 2017-04-26 13:03:04 -04:00
nfs_iostat.h
nfs_page.h
nfs_xdr.h NFS append COMMIT after synchronous COPY 2017-05-08 19:01:06 -04:00
nfs.h
nfsacl.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb_transport.h
ntb.h
nubus.h
numa.h
nvme-fc-driver.h nvmet-fc: remove target cpu scheduling flag 2017-05-20 10:11:34 -06:00
nvme-fc.h
nvme-rdma.h
nvme.h
nvmem-consumer.h
nvmem-provider.h
nvram.h
of_address.h
of_device.h IOMMU Updates for Linux v4.12 2017-05-09 15:15:47 -07:00
of_dma.h
of_fdt.h of/fdt: introduce of_scan_flat_dt_subnodes and of_get_flat_dt_phandle 2017-05-09 22:55:58 +10:00
of_gpio.h
of_graph.h
of_iommu.h
of_irq.h Partially Revert "of: fix sparse warnings in fdt, irq, reserved mem, and resolver code" 2017-05-11 10:26:22 -05:00
of_mdio.h of_mdio: move of_mdio_parse_addr to header file 2017-06-13 14:00:16 -04:00
of_net.h
of_pci.h
of_pdt.h
of_platform.h of/platform: Make of_platform_device_destroy globally visible 2017-05-22 18:01:46 +02:00
of_reserved_mem.h
of.h powerpc updates for 4.12 part 1. 2017-05-05 11:36:44 -07: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
page-isolation.h mm, page_alloc: count movable pages when stealing from pageblock 2017-05-08 17:15:10 -07:00
pageblock-flags.h
pagemap.h
pagevec.h
parman.h
parport_pc.h
parport.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci_hotplug.h
pci_ids.h PCI: Add device IDs for DRA74x and DRA72x 2017-04-28 10:23:19 -05:00
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 pci-v4.12-fixes-1 2017-05-26 10:51:18 -07:00
pcieport_if.h
pda_power.h
pe.h
percpu_counter.h
percpu_ida.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
perf_event.h perf, bpf: Add BPF support to all perf_event types 2017-06-04 21:58:01 -04:00
perf_regs.h
personality.h
pfn_t.h
pfn.h
phonet.h
phy_fixed.h
phy_led_triggers.h
phy.h net: phy: Support "internal" PHY interface 2017-06-23 15:06:43 -04:00
pid_namespace.h
pid.h
pim.h
pipe_fs_i.h
pkeys.h
pktcdvd.h
pl320-ipc.h
platform_device.h
plist.h
pm2301_charger.h
pm_clock.h
pm_domain.h ARM: SoC driver updates 2017-05-09 10:01:15 -07:00
pm_opp.h
pm_qos.h
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h PM / wakeup: Integrate mechanism to abort transitions in progress 2017-05-05 22:54:28 +02:00
pm-trace.h
pm.h
pmem.h x86, dax, pmem: remove indirection around memcpy_from_pmem() 2017-04-25 13:20:46 -07:00
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 crash: move crashkernel parsing and vmcore related code under CONFIG_CRASH_CORE 2017-05-08 17:15:11 -07:00
proc_fs.h
proc_ns.h pidns: expose task pid_ns_for_children to userspace 2017-05-08 17:15:12 -07:00
profile.h
projid.h
property.h
psci.h
pstore_ram.h
pstore.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptr_ring.h ptr_ring: introduce batch dequeuing 2017-05-18 10:07:40 -04:00
ptrace.h ptrace: Properly initialize ptracer_cred on fork 2017-05-23 07:40:44 -05:00
purgatory.h
pvclock_gtod.h
pwm_backlight.h
pwm.h
pxa2xx_ssp.h
pxa168_eth.h
qcom_scm.h
qnx6_fs.h
quicklist.h
quota.h
quotaops.h ext4: fix quota charging for shared xattr blocks 2017-05-24 18:24:07 -04:00
radix-tree.h
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 srcu: Debloat the <linux/rcu_segcblist.h> header 2017-05-02 06:29:22 -07:00
rcu_sync.h
rculist_bl.h
rculist_nulls.h
rculist.h
rcupdate_wait.h
rcupdate.h Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-05-10 10:30:46 -07:00
rcutiny.h
rcutree.h
rcuwait.h
reboot.h
reciprocal_div.h
refcount.h
regmap.h
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 rhashtable: compact struct rhashtable_params 2017-05-01 16:22:40 -04:00
ring_buffer.h ring-buffer: Return reader page back into existing ring buffer 2017-05-01 10:26:40 -04:00
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h mm: remove SWAP_[SUCCESS|AGAIN|FAIL] 2017-05-03 15:52:10 -07:00
rmi.h
rndis.h
rodata_test.h mm: remove rodata_test_data export, add pr_fmt 2017-05-03 15:52:09 -07:00
root_dev.h
rpmsg.h
rslib.h
rtc.h
rtmutex.h
rtnetlink.h rtnl: Add support for netdev event to link messages 2017-05-27 18:51:41 -04:00
rwlock_api_smp.h
rwlock_types.h
rwlock.h
rwsem-spinlock.h
rwsem.h
rxrpc.h rxrpc: Provide a cmsg to specify the amount of Tx data for a call 2017-06-07 17:15:46 +01:00
s3c_adc_battery.h
sa11x0-dma.h
sbitmap.h
scatterlist.h
scc.h
sched_clock.h
sched.h Staging/IIO patches for 4.12-rc1 2017-05-05 18:16:23 -07:00
scif.h
scpi_protocol.h
screen_info.h
sctp.h sctp: remove the typedef sctp_init_chunk_t 2017-07-01 09:08:42 -07:00
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.h
selection.h
selinux.h
sem.h sysv,ipc: cacheline align kern_ipc_perm 2017-05-08 17:15:12 -07:00
semaphore.h
seq_buf.h
seq_file_net.h
seq_file.h
seqlock.h
seqno-fence.h
serdev.h tty/serdev: add serdev registration interface 2017-05-18 17:38:24 +02:00
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
sfi_acpi.h
sfi.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.h
signalfd.h
siphash.h
sirfsoc_dma.h
sizes.h
skb_array.h skb_array: introduce batch dequeuing 2017-05-18 10:07:40 -04:00
skbuff.h net: convert sk_buff_fclones.fclone_ref from atomic_t to refcount_t 2017-07-01 07:39:08 -07:00
slab_def.h
slab.h
slub_def.h slub: make sysfs file removal asynchronous 2017-06-23 16:15:55 -07:00
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h tls: kernel TLS support 2017-06-15 12:12:40 -04:00
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
splice.h
spmi.h
sram.h
srcu.h srcu: Allow use of Classic SRCU from both process and interrupt context 2017-06-08 08:25:19 -07:00
srcuclassic.h srcu: Make rcutorture writer stalls print SRCU GP state 2017-04-26 11:23:28 -07:00
srcutiny.h srcu: Make rcutorture writer stalls print SRCU GP state 2017-04-26 11:23:28 -07:00
srcutree.h srcu: Specify auto-expedite holdoff time 2017-04-26 16:32:17 -07:00
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 net-next: stmmac: Add dwmac-sun8i 2017-06-01 14:53:04 -04:00
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string_helpers.h
string.h libnvdimm for 4.12 2017-05-05 18:49:20 -07:00
stringhash.h
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
suspend.h Revert "ACPI / sleep: Ignore spurious SCI wakeups from suspend-to-idle" 2017-06-07 00:57:37 +02:00
svga.h
sw842.h
swab.h
swait.h
swap_cgroup.h
swap_slots.h
swap.h mm, swap: remove unused function prototype 2017-05-03 15:52:11 -07:00
swapfile.h
swapops.h
swiotlb.h
sxgbe_platform.h
sync_file.h
synclink.h
sys_soc.h
sys.h
syscalls.h
syscore_ops.h
sysctl.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 tcp: switch TCP TS option (RFC 7323) to 1ms clock 2017-05-17 16:06:01 -04:00
tee_drv.h
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h
thinkpad_acpi.h
thread_info.h A couple hardened usercopy changes: 2017-05-02 10:45:15 -07:00
threads.h
ti_wilink_st.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time64.h
time.h time: delete CURRENT_TIME_SEC and CURRENT_TIME 2017-05-08 17:15:15 -07:00
timecounter.h
timekeeper_internal.h time: Fix CLOCK_MONOTONIC_RAW sub-nanosecond accounting 2017-06-20 10:41:50 +02:00
timekeeping.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
topology.h
torture.h
toshiba.h
tpm_command.h
tpm.h
trace_clock.h
trace_events.h
trace_seq.h
trace.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h
transport_class.h
tsacct_kern.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h tty/serdev: add serdev registration interface 2017-05-18 17:38:24 +02:00
typecheck.h
types.h
u64_stats_sync.h
uaccess.h include/linux/uaccess.h: remove expensive WARN_ON in pagefault_disabled_dec 2017-05-08 17:15:14 -07:00
ucb1400.h
ucs2_string.h
udp.h udp: use a separate rx queue for packet reception 2017-05-16 15:41:29 -04:00
uidgid.h
uinput.h
uio_driver.h
uio.h
uprobes.h
usb_usual.h
usb.h
usbdevice_fs.h
user_namespace.h
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: add context flag to find vqs 2017-05-02 23:41:43 +03:00
virtio_console.h
virtio_net.h
virtio_ring.h virtio: add context flag to find vqs 2017-05-02 23:41:43 +03:00
virtio_vsock.h
virtio.h virtio: virtio_driver doc 2017-05-09 16:43:22 +03:00
vlynq.h
vm_event_item.h mm: move MADV_FREE pages into LRU_INACTIVE_FILE list 2017-05-03 15:52:08 -07:00
vm_sockets.h
vmacache.h
vmalloc.h mm, vmalloc: fix vmalloc users tracking properly 2017-05-12 15:57:15 -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
wait.h
wanrouter.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
workqueue.h
writeback.h
ww_mutex.h
xattr.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zutil.h