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
can: complete initial namespace support
2017-04-25 09:04:29 +02:00
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
lockd: Introduce nlmclnt_operations
2017-04-21 10:45:01 -04:00
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
mmc: core: Export API to allow hosts to get the card address
2017-04-24 21:49:15 +02:00
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.h
IOMMU Updates for Linux v4.12
2017-05-09 15:15:47 -07:00
acpi_dma.h
acpi_iort.h
IOMMU Updates for Linux v4.12
2017-05-09 15:15:47 -07:00
acpi_pmtmr.h
adb.h
adfs_fs.h
aer.h
agp_backend.h
agpgart.h
ahci-remap.h
ahci_platform.h
aio.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
amifd.h
amifdreg.h
anon_inodes.h
apm-emulation.h
apm_bios.h
apple-gmux.h
apple_bl.h
arm-cci.h
arm-smccc.h
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
assoc_array.h
assoc_array_priv.h
async.h
async_tx.h
ata.h
libata: remove SCT WRITE SAME support
2017-04-28 18:09:59 -04:00
ata_platform.h
atalk.h
ath9k_platform.h
atm.h
atm_suni.h
atm_tcp.h
atmdev.h
net: convert sock.sk_wmem_alloc from atomic_t to refcount_t
2017-07-01 07:39:08 -07:00
atmel-mci.h
atmel-ssc.h
atmel_pdc.h
atmel_tc.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
fs: Provide infrastructure for dynamic BDIs in filesystems
2017-04-20 12:09:55 -06:00
backing-dev.h
bdi: Drop 'parent' argument from bdi_register[_va]()
2017-04-20 12:09:55 -06:00
backlight.h
badblocks.h
balloon_compaction.h
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
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-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
blk_types.h
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-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
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
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-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
cgroup_rdma.h
cgroup_subsys.h
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
clocksource: Use GENMASK_ULL in definition of CLOCKSOURCE_MASK
2017-04-20 14:56:58 +02:00
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
coda_psdev.h
coda: Convert to separately allocated bdi
2017-04-20 12:09:55 -06:00
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.h
console_struct.h
consolemap.h
container.h
context_tracking.h
context_tracking_state.h
cordic.h
coredump.h
coresight-pmu.h
coresight-stm.h
coresight.h
count_zeros.h
cper.h
cpu.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.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
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.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-event.h
devfreq.h
devfreq_cooling.h
thermal: devfreq_cooling: add new interface for direct power read
2017-05-05 15:54:45 +08:00
device-mapper.h
libnvdimm for 4.12
2017-05-05 18:49:20 -07:00
device.h
device_cgroup.h
devpts_fs.h
digsig.h
dio.h
dirent.h
dlm.h
dlm_plock.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dm9000.h
dma-buf.h
dma-buf: Rename dma-ops to prevent conflict with kunmap_atomic macro
2017-04-20 13:47:46 +05:30
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
of/acpi: Configure dma operations at probe time for platform/amba/pci bus devices
2017-04-20 16:31:06 +02:00
dma_remapping.h
x86, iommu/vt-d: Add an option to disable Intel IOMMU force on
2017-04-26 23:57:53 +02:00
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.h
drbd_genl.h
drbd_genl_api.h
drbd_limits.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.h
time: delete current_fs_time()
2017-05-12 15:57:15 -07:00
fs_enet_pd.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
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-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsldma.h
fsnotify.h
fsnotify_backend.h
ftrace.h
scripts/spelling.txt: add regsiter -> register spelling mistake
2017-05-08 17:15:13 -07:00
ftrace_irq.h
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
genetlink.h
genhd.h
block: get rid of blk_integrity_revalidate()
2017-04-21 14:17:27 -06:00
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-fan.h
gpio-pxa.h
gpio.h
gpio_keys.h
gpio_mouse.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.h
hil_mlc.h
hippidevice.h
host1x.h
hp_sdc.h
hpet.h
hrtimer.h
htcpld.h
htirq.h
huge_mm.h
hugetlb.h
hugetlb_cgroup.h
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
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
scsi: introduce a result field in struct scsi_request
2017-04-20 12:16:10 -06:00
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
in.h
in6.h
inet.h
inet_diag.h
inetdevice.h
net: convert in_device.refcnt from atomic_t to refcount_t
2017-07-01 07:39:08 -07:00
init.h
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
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel-svm.h
interrupt.h
interval_tree.h
interval_tree_generic.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io.h
linux/io.h: Add pci_remap_cfgspace() interface
2017-04-19 13:58:51 -05:00
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.h
sysv,ipc: cacheline align kern_ipc_perm
2017-05-08 17:15:12 -07:00
ipc_namespace.h
ipmi-fru.h
ipmi.h
ipmi_smi.h
ipv6.h
ipv6_route.h
irq.h
irq_cpustat.h
irq_poll.h
irq_work.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.h
isdn_divertif.h
isdn_ppp.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.h
jump_label_ratelimit.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan-checks.h
kasan.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kbuild: fix asm-offset generation to work with clang
2017-04-23 15:51:26 +09:00
kconfig.h
kcore.h
kcov.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.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
kernel_stat.h
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.h
kobject_ns.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-bd2802.h
leds-lp3944.h
leds-lp3952.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h
leds_pwm.h
lguest.h
lguest_launcher.h
libata.h
libfdt.h
libfdt_env.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.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.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.h
memory_hotplug.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.h
include/linux/migrate.h: add arg names to prototype
2017-05-03 15:52:10 -07:00
migrate_mode.h
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-arch-hooks.h
mm.h
mm: larger stack guard gap, between vmas
2017-06-19 21:50:20 +08:00
mm_inline.h
mm_types.h
mm_types_task.h
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.h
flow_dissector: add mpls support (v2)
2017-04-24 14:30:46 -04:00
mpls_iptunnel.h
mroute.h
mroute6.h
msdos_fs.h
msg.h
msi.h
mutex.h
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
make sure that mntns_install() doesn't end up with referral for root
2017-04-21 14:05:36 -04:00
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.h
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.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
nfs.h
nfs3.h
nfs4.h
nfs_fs.h
NFSv4: Don't special case "launder"
2017-04-26 13:03:04 -04:00
nfs_fs_i.h
nfs_fs_sb.h
NFS client updates for Linux 4.12
2017-05-10 13:03:38 -07:00
nfs_iostat.h
nfs_page.h
NFS: Add an iocounter wait function for async RPC tasks
2017-04-21 10:45:01 -04:00
nfs_xdr.h
NFS append COMMIT after synchronous COPY
2017-05-08 19:01:06 -04:00
nfsacl.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb.h
ntb_transport.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
nvme: improve performance for virtual NVMe devices
2017-04-21 16:41:47 +02:00
nvmem-consumer.h
nvmem-provider.h
nvram.h
of.h
powerpc updates for 4.12 part 1.
2017-05-05 11:36:44 -07:00
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
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-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
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h
pageblock-flags.h
pagemap.h
pagevec.h
parman.h
parport.h
parport_pc.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.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
pci-v4.12-fixes-1
2017-05-26 10:51:18 -07:00
pci_hotplug.h
pci_ids.h
PCI: Add device IDs for DRA74x and DRA72x
2017-04-28 10:23:19 -05:00
pcieport_if.h
pda_power.h
pe.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
percpu_counter.h
percpu_ida.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.h
pfn_t.h
phonet.h
phy.h
net: phy: Support "internal" PHY interface
2017-06-23 15:06:43 -04:00
phy_fixed.h
phy_led_triggers.h
pid.h
pid_namespace.h
pim.h
pipe_fs_i.h
pkeys.h
pktcdvd.h
pl320-ipc.h
platform_device.h
plist.h
pm-trace.h
pm.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
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-clock.h
posix-timers.h
posix_acl.h
posix_acl_xattr.h
power_supply.h
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
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.h
pstore_ram.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.h
pwm_backlight.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.h
rbtree_augmented.h
rbtree_latch.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.h
rculist_bl.h
rculist_nulls.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
rcupdate_wait.h
rcutiny.h
rcu: Make non-preemptive schedule be Tasks RCU quiescent state
2017-04-21 05:59:27 -07:00
rcutree.h
rcu: Make non-preemptive schedule be Tasks RCU quiescent state
2017-04-21 05:59:27 -07:00
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.h
resource_ext.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.h
rio_drv.h
rio_ids.h
rio_regs.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.h
rwlock_api_smp.h
rwlock_types.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.h
Staging/IIO patches for 4.12-rc1
2017-05-05 18:16:23 -07:00
sched_clock.h
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.h
scx200_gpio.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h
sed-opal.h
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.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.h
seq_file_net.h
seqlock.h
seqno-fence.h
serdev.h
tty/serdev: add serdev registration interface
2017-05-18 17:38:24 +02:00
serial.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serio.h
sfi.h
sfi_acpi.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
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.h
slab_def.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.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
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.h
libnvdimm for 4.12
2017-05-05 18:49:20 -07:00
string_helpers.h
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.h
mm, swap: remove unused function prototype
2017-05-03 15:52:11 -07:00
swap_cgroup.h
swap_slots.h
swapfile.h
swapops.h
swiotlb.h
sxgbe_platform.h
sync_file.h
synclink.h
sys.h
sys_soc.h
syscalls.h
syscore_ops.h
sysctl.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting.h
task_io_accounting_ops.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
tcp: switch TCP TS option (RFC 7323) to 1ms clock
2017-05-17 16:06:01 -04:00
tee_drv.h
textsearch.h
textsearch_fsm.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
time.h
time: delete CURRENT_TIME_SEC and CURRENT_TIME
2017-05-08 17:15:15 -07:00
time64.h
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.h
tpm_command.h
trace.h
trace_clock.h
trace_events.h
trace_seq.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h
transport_class.h
tsacct_kern.h
tty.h
tty/serdev: add serdev registration interface
2017-05-18 17:38:24 +02:00
tty_driver.h
tty_flip.h
tty_ldisc.h
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.h
uio_driver.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
uwb.h
verification.h
vermagic.h
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
via-core.h
via-gpio.h
via.h
via_i2c.h
videodev2.h
virtio.h
virtio: virtio_driver doc
2017-05-09 16:43:22 +03:00
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
VSOCK: Add virtio vsock vsockmon hooks
2017-04-24 12:35:56 -04: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.h
vt_buffer.h
vt_kern.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