mirror-linux/include/linux
Alexei Starovoitov 622582786c net: filter: x86: internal BPF JIT
Maps all internal BPF instructions into x86_64 instructions.
This patch replaces original BPF x64 JIT with internal BPF x64 JIT.
sysctl net.core.bpf_jit_enable is reused as on/off switch.

Performance:

1. old BPF JIT and internal BPF JIT generate equivalent x86_64 code.
  No performance difference is observed for filters that were JIT-able before

Example assembler code for BPF filter "tcpdump port 22"

original BPF -> old JIT:            original BPF -> internal BPF -> new JIT:
   0:   push   %rbp                      0:     push   %rbp
   1:   mov    %rsp,%rbp                 1:     mov    %rsp,%rbp
   4:   sub    $0x60,%rsp                4:     sub    $0x228,%rsp
   8:   mov    %rbx,-0x8(%rbp)           b:     mov    %rbx,-0x228(%rbp) // prologue
                                        12:     mov    %r13,-0x220(%rbp)
                                        19:     mov    %r14,-0x218(%rbp)
                                        20:     mov    %r15,-0x210(%rbp)
                                        27:     xor    %eax,%eax         // clear A
   c:   xor    %ebx,%ebx                29:     xor    %r13,%r13         // clear X
   e:   mov    0x68(%rdi),%r9d          2c:     mov    0x68(%rdi),%r9d
  12:   sub    0x6c(%rdi),%r9d          30:     sub    0x6c(%rdi),%r9d
  16:   mov    0xd8(%rdi),%r8           34:     mov    0xd8(%rdi),%r10
                                        3b:     mov    %rdi,%rbx
  1d:   mov    $0xc,%esi                3e:     mov    $0xc,%esi
  22:   callq  0xffffffffe1021e15       43:     callq  0xffffffffe102bd75
  27:   cmp    $0x86dd,%eax             48:     cmp    $0x86dd,%rax
  2c:   jne    0x0000000000000069       4f:     jne    0x000000000000009a
  2e:   mov    $0x14,%esi               51:     mov    $0x14,%esi
  33:   callq  0xffffffffe1021e31       56:     callq  0xffffffffe102bd91
  38:   cmp    $0x84,%eax               5b:     cmp    $0x84,%rax
  3d:   je     0x0000000000000049       62:     je     0x0000000000000074
  3f:   cmp    $0x6,%eax                64:     cmp    $0x6,%rax
  42:   je     0x0000000000000049       68:     je     0x0000000000000074
  44:   cmp    $0x11,%eax               6a:     cmp    $0x11,%rax
  47:   jne    0x00000000000000c6       6e:     jne    0x0000000000000117
  49:   mov    $0x36,%esi               74:     mov    $0x36,%esi
  4e:   callq  0xffffffffe1021e15       79:     callq  0xffffffffe102bd75
  53:   cmp    $0x16,%eax               7e:     cmp    $0x16,%rax
  56:   je     0x00000000000000bf       82:     je     0x0000000000000110
  58:   mov    $0x38,%esi               88:     mov    $0x38,%esi
  5d:   callq  0xffffffffe1021e15       8d:     callq  0xffffffffe102bd75
  62:   cmp    $0x16,%eax               92:     cmp    $0x16,%rax
  65:   je     0x00000000000000bf       96:     je     0x0000000000000110
  67:   jmp    0x00000000000000c6       98:     jmp    0x0000000000000117
  69:   cmp    $0x800,%eax              9a:     cmp    $0x800,%rax
  6e:   jne    0x00000000000000c6       a1:     jne    0x0000000000000117
  70:   mov    $0x17,%esi               a3:     mov    $0x17,%esi
  75:   callq  0xffffffffe1021e31       a8:     callq  0xffffffffe102bd91
  7a:   cmp    $0x84,%eax               ad:     cmp    $0x84,%rax
  7f:   je     0x000000000000008b       b4:     je     0x00000000000000c2
  81:   cmp    $0x6,%eax                b6:     cmp    $0x6,%rax
  84:   je     0x000000000000008b       ba:     je     0x00000000000000c2
  86:   cmp    $0x11,%eax               bc:     cmp    $0x11,%rax
  89:   jne    0x00000000000000c6       c0:     jne    0x0000000000000117
  8b:   mov    $0x14,%esi               c2:     mov    $0x14,%esi
  90:   callq  0xffffffffe1021e15       c7:     callq  0xffffffffe102bd75
  95:   test   $0x1fff,%ax              cc:     test   $0x1fff,%rax
  99:   jne    0x00000000000000c6       d3:     jne    0x0000000000000117
                                        d5:     mov    %rax,%r14
  9b:   mov    $0xe,%esi                d8:     mov    $0xe,%esi
  a0:   callq  0xffffffffe1021e44       dd:     callq  0xffffffffe102bd91 // MSH
                                        e2:     and    $0xf,%eax
                                        e5:     shl    $0x2,%eax
                                        e8:     mov    %rax,%r13
                                        eb:     mov    %r14,%rax
                                        ee:     mov    %r13,%rsi
  a5:   lea    0xe(%rbx),%esi           f1:     add    $0xe,%esi
  a8:   callq  0xffffffffe1021e0d       f4:     callq  0xffffffffe102bd6d
  ad:   cmp    $0x16,%eax               f9:     cmp    $0x16,%rax
  b0:   je     0x00000000000000bf       fd:     je     0x0000000000000110
                                        ff:     mov    %r13,%rsi
  b2:   lea    0x10(%rbx),%esi         102:     add    $0x10,%esi
  b5:   callq  0xffffffffe1021e0d      105:     callq  0xffffffffe102bd6d
  ba:   cmp    $0x16,%eax              10a:     cmp    $0x16,%rax
  bd:   jne    0x00000000000000c6      10e:     jne    0x0000000000000117
  bf:   mov    $0xffff,%eax            110:     mov    $0xffff,%eax
  c4:   jmp    0x00000000000000c8      115:     jmp    0x000000000000011c
  c6:   xor    %eax,%eax               117:     mov    $0x0,%eax
  c8:   mov    -0x8(%rbp),%rbx         11c:     mov    -0x228(%rbp),%rbx // epilogue
  cc:   leaveq                         123:     mov    -0x220(%rbp),%r13
  cd:   retq                           12a:     mov    -0x218(%rbp),%r14
                                       131:     mov    -0x210(%rbp),%r15
                                       138:     leaveq
                                       139:     retq

On fully cached SKBs both JITed functions take 12 nsec to execute.
BPF interpreter executes the program in 30 nsec.

The difference in generated assembler is due to the following:

Old BPF imlements LDX_MSH instruction via sk_load_byte_msh() helper function
inside bpf_jit.S.
New JIT removes the helper and does it explicitly, so ldx_msh cost
is the same for both JITs, but generated code looks longer.

New JIT has 4 registers to save, so prologue/epilogue are larger,
but the cost is within noise on x64.

Old JIT checks whether first insn clears A and if not emits 'xor %eax,%eax'.
New JIT clears %rax unconditionally.

2. old BPF JIT doesn't support ANC_NLATTR, ANC_PAY_OFFSET, ANC_RANDOM
  extensions. New JIT supports all BPF extensions.
  Performance of such filters improves 2-4 times depending on a filter.
  The longer the filter the higher performance gain.
  Synthetic benchmarks with many ancillary loads see 20x speedup
  which seems to be the maximum gain from JIT

Notes:

. net.core.bpf_jit_enable=2 + tools/net/bpf_jit_disasm is still functional
  and can be used to see generated assembler

. there are two jit_compile() functions and code flow for classic filters is:
  sk_attach_filter() - load classic BPF
  bpf_jit_compile() - try to JIT from classic BPF
  sk_convert_filter() - convert classic to internal
  bpf_int_jit_compile() - JIT from internal BPF

  seccomp and tracing filters will just call bpf_int_jit_compile()

Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-05-15 16:31:30 -04:00
..
amba
bcma
byteorder
can
ceph libceph: enable PRIMARY_AFFINITY feature bit 2014-04-04 21:08:20 -07:00
clk ARM: SoC: late cleanups 2014-04-05 15:46:37 -07:00
crush crush: add SET_CHOOSELEAF_VARY_R step 2014-04-04 21:07:28 -07:00
decompress lib/decompress_inflate.c: include appropriate header file 2014-04-03 16:21:12 -07:00
dma
extcon extcon: Move OF helper function to extcon core and change function name 2014-03-19 14:41:58 +09:00
fsl/bestcomm
gpio gpio: unmap gpio irqs properly 2014-03-28 20:42:01 +01:00
hsi
i2c Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2014-04-09 08:45:40 -07:00
iio
input Input: pmic8xxx-pwrkey - migrate to DT 2014-03-30 13:25:19 -07:00
irqchip Add support for GIC crossbar that routes interrupts on newer omaps. 2014-03-08 23:32:26 -08:00
isdn
lockd
mfd Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2014-04-10 09:06:10 -07:00
mlx4 net/mlx4_core: Enforce irq affinity changes immediatly 2014-05-14 15:40:32 -04:00
mlx5 IB/mlx5: Add block multicast loopback support 2014-04-10 18:43:32 -07:00
mmc MMC highlights for 3.15: 2014-04-09 08:39:39 -07:00
mtd Shiraz has moved 2014-04-18 16:40:08 -07:00
netfilter netfilter: nf_conntrack: flush net_gre->keymap_list only from gre helper 2014-04-08 10:56:12 +02:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
phy phy: core: make NULL a valid phy reference if !CONFIG_GENERIC_PHY 2014-04-24 12:53:38 -07:00
pinctrl
platform_data Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2014-04-10 09:06:10 -07:00
power
raid
regulator regulator: core: Return error in get optional stub 2014-04-18 15:11:54 +01:00
rtc
sched
spi at86rf230: use irq_get_trigger_type 2014-04-26 12:20:32 -04:00
ssb
sunrpc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-04-12 17:31:22 -07:00
unaligned
usb net: cdc_ncm/cdc_mbim: rework probing of NCM/MBIM functions 2014-05-13 17:46:09 -04:00
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi.h PCI changes for the v3.15 merge window: 2014-04-01 15:14:04 -07:00
acpi_dma.h
acpi_pmtmr.h
adb.h
adfs_fs.h
aer.h
agp_backend.h
agpgart.h
ahci_platform.h
aio.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm-emulation.h
apm_bios.h
apple_bl.h
arcdevice.h
arm-cci.h
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
assoc_array.h
assoc_array_priv.h
async.h
async_tx.h
ata.h
ata_platform.h
atalk.h
ath9k_platform.h
atm.h
atm_suni.h
atm_tcp.h
atmdev.h
atmel-mci.h
atmel-pwm-bl.h
atmel-ssc.h
atmel_pdc.h
atmel_pwm.h
atmel_serial.h
atmel_tc.h
atomic.h
attribute_container.h
audit.h AUDIT: make audit_is_compat depend on CONFIG_AUDIT_COMPAT_GENERIC 2014-04-10 17:51:29 -04:00
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev.h bdi: avoid oops on device removal 2014-04-03 16:20:49 -07:00
backlight.h backlight: update bd state & fb_blank properties when necessary 2014-04-03 16:21:09 -07:00
balloon_compaction.h
basic_mmio_gpio.h
bcd.h
bch.h
bcm47xx_wdt.h
bfin_mac.h
binfmts.h exec: kill bprm->tcomm[], simplify the "basename" logic 2014-04-07 16:36:05 -07:00
bio.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2014-04-12 14:49:50 -07:00
bit_spinlock.h
bitmap.h
bitops.h ext4: atomically set inode->i_flags in ext4_set_inode_flags() 2014-03-30 17:02:06 -07:00
bitrev.h
blk-iopoll.h block: remove old blk_iopoll_enabled variable 2014-03-13 09:38:42 -06:00
blk-mq.h Merge branch 'for-3.15/core' of git://git.kernel.dk/linux-block 2014-04-01 19:19:15 -07:00
blk_types.h block: fix regression with block enabled tagging 2014-04-09 21:54:06 -06:00
blkdev.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2014-04-12 14:49:50 -07:00
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h switch ->is_partially_uptodate() to saner arguments 2014-04-01 23:19:19 -04:00
bug.h
c2port.h
cache.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup.h cgroup: remove useless argument from cgroup_exit() 2014-03-29 09:15:54 -04:00
cgroup_subsys.h
circ_buf.h
cleancache.h
clk-private.h
clk-provider.h clk: support hardware-specific debugfs entries 2014-03-24 17:10:07 -07:00
clk.h
clkdev.h
clksrc-dbx500-prcmu.h
clockchips.h
clocksource.h
cm4000_cs.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
coda_psdev.h
com20020.h
compaction.h
compat.h Merge branch 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-04-02 12:51:41 -07:00
compiler-clang.h LLVMLinux: Add support for clang to compiler.h and new compiler-clang.h 2014-04-09 13:44:35 -07:00
compiler-gcc.h
compiler-gcc3.h
compiler-gcc4.h
compiler-intel.h
compiler.h LLVMLinux: Add support for clang to compiler.h and new compiler-clang.h 2014-04-09 13:44:35 -07:00
completion.h
component.h
concap.h
configfs.h
connector.h
console.h
console_struct.h
consolemap.h
container.h
context_tracking.h
context_tracking_state.h
cordic.h
coredump.h
cper.h
cpu.h CPU hotplug notifiers registration fixes for 3.15-rc1 2014-04-07 14:55:46 -07:00
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufeature.h
cpufreq.h cpufreq: create another field .flags in cpufreq_frequency_table 2014-04-07 14:43:50 +02:00
cpuidle.h sched/idle: Reorganize the idle loop 2014-03-11 11:52:47 +01:00
cpumask.h
cpuset.h mm: optimize put_mems_allowed() usage 2014-04-03 16:20:58 -07:00
cputime.h cputime: Bring cputime -> nsecs conversion 2014-03-13 15:56:44 +01:00
crash_dump.h include/linux/crash_dump.h: add vmcore_cleanup() prototype 2014-04-07 16:36:06 -07:00
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
cred.h kernel/groups.c: remove return value of set_groups 2014-04-03 16:21:05 -07:00
crypto.h
cryptohash.h
cryptouser.h
cs5535.h
ctype.h
cuda.h
cyclades.h
cycx_x25.h
davinci_emac.h
dca.h
dcache.h vfs: add cross-rename 2014-04-01 17:08:43 +02:00
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
devfreq.h
device-mapper.h dm table: add dm_table_run_md_queue_async 2014-03-27 16:56:24 -04:00
device.h sysfs, driver-core: remove unused {sysfs|device}_schedule_callback_owner() 2014-04-16 11:56:33 -07:00
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-attrs.h
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direction.h
dma-mapping.h
dma_remapping.h
dmaengine.h
dmapool.h
dmar.h iommu/vt-d: Change scope lists to struct device, bus, devfn 2014-03-24 14:05:08 +00:00
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd.h
drbd_genl.h
drbd_genl_api.h
drbd_limits.h
ds1286.h
ds2782_battery.h
ds17287rtc.h
dtlk.h
dw_apb_timer.h
dw_dmac.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
elf-fdpic.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h err.h: use bool for IS_ERR and IS_ERR_OR_NULL 2014-04-03 16:21:06 -07:00
errno.h
errqueue.h
etherdevice.h
ethtool.h ethtool: Support for configurable RSS hash key 2014-04-22 21:27:57 -04:00
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extcon.h extcon: Move OF helper function to extcon core and change function name 2014-03-19 14:41:58 +09:00
f2fs_fs.h
f75375s.h
falloc.h
fanotify.h
fault-inject.h
fb.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h get rid of files_defer_init() 2014-04-01 23:19:14 -04:00
fec.h
file.h get rid of fget_light() 2014-03-10 11:44:42 -04:00
filter.h net: filter: x86: internal BPF JIT 2014-05-15 16:31:30 -04:00
fips.h
firewire.h firewire: don't use PREPARE_DELAYED_WORK 2014-03-07 10:19:57 -05:00
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_array.h
flex_proportions.h
fmc-sdb.h
fmc.h
font.h
freezer.h
frontswap.h
fs.h locks: rename FL_FILE_PVT and IS_FILE_PVT to use "*_OFDLCK" instead 2014-04-23 16:17:03 -04:00
fs_enet_pd.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fscache-cache.h
fscache.h
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsnotify.h
fsnotify_backend.h fanotify: convert access_mutex to spinlock 2014-04-03 16:20:51 -07:00
ftrace.h ftrace/module: Hardcode ftrace_module_init() call into load_module() 2014-04-28 10:37:21 -04:00
ftrace_event.h tracepoint: Use struct pointer instead of name hash for reg/unreg tracepoints 2014-04-08 20:43:28 -04:00
ftrace_irq.h
futex.h
gameport.h
gcd.h
genalloc.h
genetlink.h
genhd.h
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h mm: fix GFP_THISNODE callers and clarify 2014-03-10 17:26:19 -07:00
gpio-fan.h
gpio-pxa.h
gpio.h
gpio_keys.h
gpio_mouse.h
gsmmux.h
hardirq.h
hash.h
hashtable.h
hdlc.h
hdlcdrv.h
hdmi.h drm/docs: Include hdmi infoframe helper reference 2014-03-13 12:48:32 +01:00
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2014-04-02 16:24:28 -07:00
hid.h Merge branches 'for-3.15/multitouch', 'for-3.15/sony' and 'for-3.15/uhid' into for-linus 2014-04-01 19:06:50 +02:00
hiddev.h
hidraw.h
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
host1x.h gpu: host1x: export host1x_syncpt_incr_max() function 2014-04-04 09:12:49 +02:00
hp_sdc.h
hpet.h
hrtimer.h hrtimer: Rearrange comments in the order struct members are declared 2014-03-20 12:35:45 +01:00
htcpld.h
htirq.h
huge_mm.h
hugetlb.h mm, hugetlb: fix race in region tracking 2014-04-03 16:20:59 -07:00
hugetlb_cgroup.h
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h Drivers: hv: vmbus: Negotiate version 3.0 when running on ws2012r2 hosts 2014-04-16 14:14:07 -07: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-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
i2o.h
i7300_idle.h
i8042.h
i8253.h
i82593.h
icmp.h
icmpv6.h
ide.h
idr.h idr: remove dead code 2014-04-07 16:36:07 -07:00
ieee80211.h Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2014-03-20 11:53:20 -04:00
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_team.h
if_tun.h
if_tunnel.h
if_vlan.h vlan: rename __vlan_find_dev_deep() to __vlan_find_dev_deep_rcu() 2014-05-12 14:39:13 -04:00
igmp.h
ihex.h
ima.h
in.h
in6.h
inet.h
inet_diag.h
inet_lro.h
inetdevice.h
init.h
init_ohci1394_dma.h
init_task.h Linux 3.13 2014-03-07 11:41:32 -05:00
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h iommu/vt-d: Store PCI segment number in struct intel_iommu 2014-03-24 14:07:31 +00:00
intel_mid_dma.h
intel_pmic_gpio.h
interrupt.h linux/interrupt.h: fix new kernel-doc warnings 2014-04-28 12:19:59 +02:00
interval_tree.h
interval_tree_generic.h
io-mapping.h
io.h Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP 2014-04-07 16:36:11 -07:00
ioc3.h
ioc4.h
iocontext.h
iommu-helper.h
iommu.h
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc.h
ipc_namespace.h
ipmi-fru.h
ipmi.h ipmi: Turn off all activity on an idle ipmi interface 2014-04-17 12:23:07 -07:00
ipmi_smi.h ipmi: boolify some things 2014-04-17 12:30:40 -07:00
ipv6.h
ipv6_route.h
irq.h genirq: x86: Ensure that dynamic irq allocation does not conflict 2014-04-28 12:20:00 +02:00
irq_cpustat.h
irq_work.h
irqchip.h
irqdesc.h
irqdomain.h
irqflags.h
irqnr.h
irqreturn.h
isa.h
isapnp.h module: remove MODULE_GENERIC_TABLE 2014-03-13 12:11:00 +10:30
iscsi_boot_sysfs.h
iscsi_ibft.h
isdn.h
isdn_divertif.h
isdn_ppp.h net: isdn: use sk_unattached_filter api 2014-03-31 00:45:09 -04:00
isdnif.h
isicom.h
jbd.h
jbd2.h
jbd_common.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label.h
jump_label_ratelimit.h
jz4740-adc.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kcmp.h
kconfig.h
kcore.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel-page-flags.h
kernel.h Nothing major: the stricter permissions checking for sysfs broke 2014-04-06 09:38:07 -07:00
kernel_stat.h Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-04-01 11:22:57 -07:00
kernelcapi.h
kernfs.h kernfs: cache atomic_write_len in kernfs_open_file 2014-03-08 22:08:29 -08:00
kexec.h
key-type.h
key.h
keyboard.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemcheck.h
kmemleak.h kmemleak: remove redundant code 2014-04-03 16:20:50 -07:00
kmod.h
kmsg_dump.h
kobj_map.h
kobject.h kobject: don't block for each kobject_uevent 2014-04-03 16:21:04 -07:00
kobject_ns.h
kprobes.h
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h
ktime.h
kvm_host.h KVM: Bump KVM_MAX_IRQ_ROUTES for s390 2014-03-21 13:43:13 +01:00
kvm_para.h
kvm_types.h
l2tp.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-lm3530.h
leds-bd2802.h
leds-lp3944.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h
leds_pwm.h
lglock.h lglock: map to spinlock when !CONFIG_SMP 2014-04-07 16:36:14 -07:00
lguest.h
lguest_launcher.h
libata.h libata/ahci: accommodate tag ordered controllers 2014-04-18 15:56:03 -04:00
libfdt.h
libfdt_env.h
libps2.h
license.h
linkage.h
linux_logo.h
lis3lv02d.h
list.h
list_bl.h
list_lru.h mm: keep page cache radix tree nodes in check 2014-04-03 16:21:01 -07:00
list_nulls.h
list_sort.h
llc.h
llist.h
lockdep.h Merge branch 'x86-asmlinkage-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 14:13:25 -07:00
lockref.h
log2.h
lp.h
lru_cache.h
lsm_audit.h
lz4.h
lzo.h
m48t86.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mailbox.h
maple.h
marvell_phy.h
math64.h
max17040_battery.h
mbcache.h fs/mbcache.c: change block and index hash chain to hlist_bl_node 2014-03-18 19:19:41 -04:00
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdio-bitbang.h
mdio-gpio.h net: mdio-gpio: Add support for separate MDI and MDO gpio pins 2014-04-16 15:09:51 -04:00
mdio-mux.h
mdio.h
mei_cl_bus.h
memblock.h ARM: 7993/1: mm/memblock: add memblock_get_current_limit 2014-03-12 00:16:56 +00:00
memcontrol.h memcg, slab: do not destroy children caches if parent has aliases 2014-04-07 16:36:13 -07:00
memory.h
memory_hotplug.h
mempolicy.h mm, mempolicy: remove per-process flag 2014-04-07 16:35:54 -07:00
mempool.h
memstick.h
mg_disk.h
micrel_phy.h
migrate.h
migrate_mode.h
mii.h
miscdevice.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-04-02 20:53:45 -07:00
mm.h Merge git://git.infradead.org/users/eparis/audit 2014-04-12 12:38:53 -07:00
mm_inline.h
mm_types.h Merge branch 'slab/next' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux 2014-04-13 13:28:13 -07:00
mman.h
mmdebug.h mm: use 'const char *' insted of 'char *' for reason in dump_page() 2014-04-07 16:35:55 -07:00
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h mm: keep page cache radix tree nodes in check 2014-04-03 16:21:01 -07:00
mnt_namespace.h
mod_devicetable.h x86: LLVMLinux: Fix "incomplete type const struct x86cpu_device_id" 2014-04-09 13:44:35 -07:00
module.h Nothing major: the stricter permissions checking for sysfs broke 2014-04-06 09:38:07 -07:00
moduleloader.h
moduleparam.h VERIFY_OCTAL_PERMISSIONS: stricter checking for sysfs perms. 2014-03-24 12:21:00 +10:30
mount.h smarter propagate_mnt() 2014-04-01 23:19:08 -04:00
mpage.h
mpi.h
mpls.h
mroute.h
mroute6.h
msdos_fs.h
msg.h
msi.h
msm_mdp.h
mutex-debug.h
mutex.h locking/mutexes: Introduce cancelable MCS lock for adaptive spinning 2014-03-11 12:14:56 +01:00
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mxm-wmi.h
n_r3964.h
namei.h
nbd.h switch nbd to sockfd_lookup/sockfd_put 2014-04-01 23:19:10 -04:00
net.h
netdev_features.h net: add busy_poll device feature 2014-04-03 14:31:34 -04:00
netdevice.h net: get rid of SET_ETHTOOL_OPS 2014-05-13 17:43:20 -04:00
netfilter.h
netfilter_bridge.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-12 13:19:14 -04:00
netpoll.h netpoll: Rename netpoll_rx_enable/disable to netpoll_poll_disable/enable 2014-03-29 17:58:37 -04:00
nfs.h
nfs3.h
nfs4.h
nfs_fs.h nfs: make nfs_async_rename non-static 2014-03-17 15:14:16 -04:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_idmap.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h Merge branch 'devel' into linux-next 2014-03-17 15:15:21 -04:00
nfsacl.h
nilfs2_fs.h nilfs2: verify metadata sizes read from disk 2014-04-03 16:21:26 -07:00
nl802154.h mac802154: make csma/cca parameters per-wpan 2014-04-01 16:25:51 -04:00
nls.h
nmi.h
node.h
nodemask.h
notifier.h
nsc_gpio.h
nsproxy.h
ntb.h NTB: Code Style Clean-up 2014-04-07 10:59:19 -07:00
nubus.h
numa.h
nvme.h Merge git://git.infradead.org/users/willy/linux-nvme 2014-04-11 16:45:59 -07:00
nvram.h
nwpserial.h
nx842.h
of.h of: add empty of_find_node_by_path() for !OF 2014-04-18 08:36:10 -05:00
of_address.h
of_device.h
of_dma.h
of_fdt.h drivers: of: add initialization code for static reserved memory 2014-03-11 17:26:47 +00:00
of_gpio.h
of_graph.h
of_iommu.h
of_irq.h of/irq: do irq resolution in platform_get_irq 2014-04-24 21:40:22 +01:00
of_mdio.h net: mdio: of_mdiobus_register(): fall back to mdiobus_register() for !CONFIG_OF 2014-05-07 17:16:35 -04:00
of_mtd.h of_mtd: Add helpers to get ECC strength and ECC step size 2014-03-10 22:42:28 -07:00
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h drivers: of: add support for custom reserved memory drivers 2014-03-11 17:27:12 +00:00
oid_registry.h
olpc-ec.h
omap-dma.h dmaengine: omap-dma: move register read/writes into omap-dma.c 2014-04-04 00:31:49 +01:00
omap-iommu.h
omap-mailbox.h
omapfb.h
oom.h
openvswitch.h
oprofile.h
oxu210hp.h
padata.h
page-debug-flags.h
page-flags-layout.h
page-flags.h
page-isolation.h
page_cgroup.h
pageblock-flags.h
pagemap.h mm: remove read_cache_page_async() 2014-04-03 16:21:04 -07:00
pagevec.h mm + fs: prepare for non-page entries in page cache radix trees 2014-04-03 16:21:00 -07:00
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.h
pci.h Merge branch 'pci/resource' into next 2014-03-19 15:11:19 -06:00
pci_hotplug.h
pci_ids.h SCSI misc on 20140401 2014-04-01 18:49:04 -07:00
pcieport_if.h
pda_power.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h percpu: add preemption checks to __this_cpu ops 2014-04-07 16:36:14 -07:00
percpu_counter.h
percpu_ida.h
perf_event.h CPU hotplug, perf: Fix CPU hotplug callback registration 2014-03-20 13:43:40 +01:00
perf_regs.h
personality.h
pfn.h
phonedev.h
phonet.h
phy.h mdio_bus: implement devm_mdiobus_alloc/devm_mdiobus_free 2014-05-02 16:16:26 -04:00
phy_fixed.h
pid.h
pid_namespace.h
pim.h
pipe_fs_i.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2014-04-12 14:49:50 -07:00
pktcdvd.h
platform_device.h
plist.h
pm.h Merge branches 'pm-runtime' and 'pm-sleep' 2014-03-20 13:25:54 +01:00
pm2301_charger.h
pm_clock.h
pm_domain.h
pm_opp.h
pm_qos.h
pm_runtime.h
pm_wakeup.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
posix-clock.h
posix-timers.h
posix_acl.h
posix_acl_xattr.h
power_supply.h
powercap.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps-gpio.h
pps_kernel.h
preempt.h
preempt_mask.h
prefetch.h
printk.h include/linux/printk.h: remove double asmlinkage in printk_emit 2014-04-03 16:21:08 -07:00
prio_heap.h
proc_fs.h
proc_ns.h
profile.h
projid.h
proportions.h
pstore.h
pstore_ram.h
pti.h
ptp_classify.h net: ptp: move PTP classifier in its own file 2014-04-01 16:43:18 -04:00
ptp_clock_kernel.h ptp: introduce programmable pins. 2014-03-21 14:21:13 -04:00
ptrace.h
pvclock_gtod.h
pwm.h
pwm_backlight.h
pxa2xx_ssp.h ARM: pxa: fix pxa_ssp_* declarations 2014-03-21 18:26:03 +01:00
pxa168_eth.h
qnx6_fs.h
quicklist.h
quota.h
quotaops.h quota: provide function to grab quota structure reference 2014-04-03 16:20:54 -07:00
radix-tree.h mm: keep page cache radix tree nodes in check 2014-04-03 16:21:01 -07:00
raid_class.h
ramfs.h
random.h random: Add arch_has_random[_seed]() 2014-03-19 22:24:08 -04:00
range.h
ratelimit.h
rational.h
rbtree.h
rbtree_augmented.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 2014-03-31 11:05:24 -07:00
rcutiny.h rcu: Provide grace-period piggybacking API 2014-03-20 17:12:25 -07:00
rcutree.h rcu: Provide grace-period piggybacking API 2014-03-20 17:12:25 -07:00
reboot.h x86: Remove the PCI reboot method from the default chain 2014-04-16 08:56:09 +02:00
reciprocal_div.h
regmap.h Char/Misc driver patches for 3.15-rc1 2014-04-01 16:13:21 -07:00
regset.h
relay.h
remoteproc.h
res_counter.h res_counter: remove interface for locked charging and uncharging 2014-04-07 16:35:54 -07:00
reservation.h
reset-controller.h
reset.h reset: Add optional resets and stubs 2014-03-09 19:53:45 +01:00
resource.h
resume-trace.h
rfkill-gpio.h
rfkill-regulator.h
rfkill.h
ring_buffer.h
rio.h rapidio: rework device hierarchy and introduce mport class of devices 2014-04-07 16:36:07 -07:00
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h mm: fix swapops.h:131 bug if remap_file_pages raced migration 2014-03-20 22:09:09 -07:00
rndis.h
root_dev.h
rotary_encoder.h
rpmsg.h
rslib.h
rtc-ds2404.h
rtc-v3020.h
rtc.h
rtmutex.h
rtnetlink.h
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
s3c_adc_battery.h
sa11x0-dma.h
scatterlist.h
scc.h
sched.h Merge git://git.infradead.org/users/eparis/audit 2014-04-12 12:38:53 -07:00
sched_clock.h
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
sdb.h
sdla.h
seccomp.h net: filter: rework/optimize internal BPF interpreter's instruction set 2014-03-31 00:45:09 -04:00
securebits.h
security.h security: add flags to rename hooks 2014-04-01 17:08:43 +02:00
selection.h
selinux.h
sem.h
semaphore.h
seq_file.h
seq_file_net.h
seqlock.h
serial.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
serial_max3100.h
serial_mfd.h
serial_pnx8xxx.h
serial_s3c.h serial: s3c: Fix build of header without serial_core.h preinclusion 2014-03-21 04:12:33 +09:00
serial_sci.h serial: sh-sci: Add more register documentation 2014-03-17 16:20:49 -07:00
serio.h Input: serio - add firmware_id sysfs attribute 2014-04-19 22:42:19 -07:00
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 mm + fs: prepare for non-page entries in page cache radix trees 2014-04-03 16:21:00 -07:00
shrinker.h
signal.h
signalfd.h
sirfsoc_dma.h
sizes.h
skbuff.h net: rename local_df to ignore_df 2014-05-12 14:03:41 -04:00
slab.h Merge branch 'slab/next' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux 2014-04-13 13:28:13 -07:00
slab_def.h
slub_def.h slub: rework sysfs layout for memcg caches 2014-04-07 16:36:13 -07:00
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h net: Move the permission check in sock_diag_put_filterinfo to packet_diag_dump 2014-04-24 13:44:53 -04:00
socket.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
splice.h
spmi.h
srcu.h
ssbi.h mfd: ssbi: Add regmap read/write helpers 2014-03-19 08:58:30 +00:00
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
ste_modem_shm.h
stmmac.h
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string.h
string_helpers.h
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
superhyway.h
suspend.h
svga.h
swab.h
swap.h mm: keep page cache radix tree nodes in check 2014-04-03 16:21:01 -07:00
swapfile.h
swapops.h
swiotlb.h
sxgbe_platform.h net: sxgbe: add basic framework for Samsung 10Gb ethernet driver 2014-03-26 16:49:31 -04:00
synclink.h
sys.h
sys_soc.h
syscalls.h This includes the final patch to clean up and fix the issue with the 2014-04-12 13:06:10 -07:00
syscore_ops.h
sysctl.h
sysfs.h sysfs, driver-core: remove unused {sysfs|device}_schedule_callback_owner() 2014-04-16 11:56:33 -07:00
syslog.h
sysrq.h
sysv_fs.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: simplify fast open cookie processing 2014-05-13 17:53:02 -04:00
tegra-ahb.h
tegra-cpuidle.h
tegra-powergate.h
tegra-soc.h
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h
thinkpad_acpi.h
thread_info.h
threads.h
ti_wilink_st.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time.h
timekeeper_internal.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
topology.h mm: use raw_cpu ops for determining current NUMA node 2014-04-07 16:36:13 -07:00
torture.h
toshiba.h
tpm.h
tpm_command.h
trace_clock.h
trace_seq.h
tracehook.h
tracepoint.h tracepoint: Fix sparse warnings in tracepoint.c 2014-04-09 10:12:11 -04:00
transport_class.h
tsacct_kern.h
tty.h Revert "tty: Fix race condition between __tty_buffer_request_room and flush_to_ldisc" 2014-05-03 18:14:28 -04:00
tty_driver.h
tty_flip.h
tty_ldisc.h
typecheck.h
types.h
u64_stats_sync.h net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
uaccess.h
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uinput.h
uio.h introduce copy_page_to_iter, kill loop over iovec in generic_file_aio_read() 2014-04-01 23:19:21 -04:00
uio_driver.h
uprobes.h uprobes: allow ignoring of probe hits 2014-03-18 16:39:34 -04:00
usb.h USB patches for 3.15-rc1 2014-04-01 17:06:09 -07:00
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h
uts.h
utsname.h
uuid.h
uwb.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_caif.h
virtio_config.h
virtio_console.h
virtio_mmio.h
virtio_ring.h
virtio_scsi.h
vlynq.h
vm_event_item.h drop_caches: add some documentation and info message 2014-04-03 16:21:04 -07:00
vm_sockets.h
vmacache.h mm: per-thread vma caching 2014-04-07 16:35:53 -07:00
vmalloc.h
vme.h
vmpressure.h
vmstat.h vmstat: use raw_cpu_ops to avoid false positives on preemption checks 2014-04-07 16:36:14 -07:00
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 wait: explain the shadowing and type inconsistencies 2014-04-18 16:40:08 -07:00
wanrouter.h
watchdog.h
wireless.h
wl12xx.h
wm97xx.h
workqueue.h Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-04-01 11:00:07 -07:00
writeback.h mm: remove unused arg of set_page_dirty_balance() 2014-04-07 16:35:57 -07:00
ww_mutex.h
xattr.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zsmalloc.h
zutil.h