Jason Baron
28d82dc1c4
epoll: limit paths
...
The current epoll code can be tickled to run basically indefinitely in
both loop detection path check (on ep_insert()), and in the wakeup paths.
The programs that tickle this behavior set up deeply linked networks of
epoll file descriptors that cause the epoll algorithms to traverse them
indefinitely. A couple of these sample programs have been previously
posted in this thread: https://lkml.org/lkml/2011/2/25/297 .
To fix the loop detection path check algorithms, I simply keep track of
the epoll nodes that have been already visited. Thus, the loop detection
becomes proportional to the number of epoll file descriptor and links.
This dramatically decreases the run-time of the loop check algorithm. In
one diabolical case I tried it reduced the run-time from 15 mintues (all
in kernel time) to .3 seconds.
Fixing the wakeup paths could be done at wakeup time in a similar manner
by keeping track of nodes that have already been visited, but the
complexity is harder, since there can be multiple wakeups on different
cpus...Thus, I've opted to limit the number of possible wakeup paths when
the paths are created.
This is accomplished, by noting that the end file descriptor points that
are found during the loop detection pass (from the newly added link), are
actually the sources for wakeup events. I keep a list of these file
descriptors and limit the number and length of these paths that emanate
from these 'source file descriptors'. In the current implemetation I
allow 1000 paths of length 1, 500 of length 2, 100 of length 3, 50 of
length 4 and 10 of length 5. Note that it is sufficient to check the
'source file descriptors' reachable from the newly added link, since no
other 'source file descriptors' will have newly added links. This allows
us to check only the wakeup paths that may have gotten too long, and not
re-check all possible wakeup paths on the system.
In terms of the path limit selection, I think its first worth noting that
the most common case for epoll, is probably the model where you have 1
epoll file descriptor that is monitoring n number of 'source file
descriptors'. In this case, each 'source file descriptor' has a 1 path of
length 1. Thus, I believe that the limits I'm proposing are quite
reasonable and in fact may be too generous. Thus, I'm hoping that the
proposed limits will not prevent any workloads that currently work to
fail.
In terms of locking, I have extended the use of the 'epmutex' to all
epoll_ctl add and remove operations. Currently its only used in a subset
of the add paths. I need to hold the epmutex, so that we can correctly
traverse a coherent graph, to check the number of paths. I believe that
this additional locking is probably ok, since its in the setup/teardown
paths, and doesn't affect the running paths, but it certainly is going to
add some extra overhead. Also, worth noting is that the epmuex was
recently added to the ep_ctl add operations in the initial path loop
detection code using the argument that it was not on a critical path.
Another thing to note here, is the length of epoll chains that is allowed.
Currently, eventpoll.c defines:
/* Maximum number of nesting allowed inside epoll sets */
#define EP_MAX_NESTS 4
This basically means that I am limited to a graph depth of 5 (EP_MAX_NESTS
+ 1). However, this limit is currently only enforced during the loop
check detection code, and only when the epoll file descriptors are added
in a certain order. Thus, this limit is currently easily bypassed. The
newly added check for wakeup paths, stricly limits the wakeup paths to a
length of 5, regardless of the order in which ep's are linked together.
Thus, a side-effect of the new code is a more consistent enforcement of
the graph depth.
Thus far, I've tested this, using the sample programs previously
mentioned, which now either return quickly or return -EINVAL. I've also
testing using the piptest.c epoll tester, which showed no difference in
performance. I've also created a number of different epoll networks and
tested that they behave as expectded.
I believe this solves the original diabolical test cases, while still
preserving the sane epoll nesting.
Signed-off-by: Jason Baron <jbaron@redhat.com>
Cc: Nelson Elhage <nelhage@ksplice.com>
Cc: Davide Libenzi <davidel@xmailserver.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-01-12 20:13:04 -08:00
..
amba
Device tree conversions for samsung and tegra
2012-01-09 14:28:38 -08:00
bcma
bcma: use static keyword for inline function declaration in bcma.h
2011-12-13 15:31:27 -05:00
byteorder
caif
can
ceph
crush
decompress
dvb
hdlc
i2c
input
Input: add driver for pixcir i2c touchscreens
2011-12-30 15:25:52 -08:00
isdn
lockd
net: use IS_ENABLED(CONFIG_IPV6)
2011-12-11 18:25:16 -05:00
mfd
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
2012-01-12 08:00:30 -08:00
mlx4
mlx4_core: Changing link sensing logic
2011-12-19 14:57:07 -05:00
mmc
mtd
mtd: do not use mtd->block_markbad directly
2012-01-09 18:26:26 +00:00
netfilter
Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu
2012-01-09 13:08:28 -08:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter: xtables: give xt_ecn its own name
2011-12-27 20:31:38 +01:00
netfilter_ipv6
nfc
nfsd
pinctrl
pinctrl: remove unnecessary max pin number
2012-01-03 09:10:09 +01:00
platform_data
Cleanups on various subarchitectures
2012-01-09 14:21:03 -08:00
power
sbs-battery: Rename internals to new name
2012-01-06 05:22:21 +04:00
raid
md: create externally visible flags for supporting hot-replace.
2011-12-23 10:17:51 +11:00
regulator
regulator: add regulator_bulk_force_disable function
2012-01-03 20:20:01 +00:00
rtc
spi
ssb
ssb: extract FEM info from SPROM
2011-12-13 15:30:49 -05:00
sunrpc
Merge branch 'nfs-for-3.3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
2012-01-10 14:57:40 -08:00
tc_act
tc_ematch
unaligned
usb
usb: ch9: fix up MaxStreams helper
2012-01-04 15:52:42 -08:00
uwb
wimax
8250_pci.h
a.out.h
ac97_codec.h
acct.h
acpi.h
acpi_io.h
acpi_pmtmr.h
adb.h
adfs_fs.h
aer.h
affs_hardblocks.h
agp_backend.h
agpgart.h
ahci_platform.h
ahci: platform support for suspend/resume
2012-01-08 19:14:59 -05:00
aio.h
aio_abi.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
iommu/amd: Add invalidate-context call-back
2011-12-15 11:15:39 +01:00
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm-emulation.h
apm_bios.h
arcdevice.h
arcfb.h
async.h
async_tx.h
ata.h
ata_platform.h
ARM: Orion: Remove address map info from all platform data structures
2011-12-13 18:46:56 -05:00
atalk.h
ath9k_platform.h
atm.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_suni.h
atm_tcp.h
atm_zatm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.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
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
atomic.h
attribute_container.h
audit.h
switch kern_ipc_perm to umode_t
2012-01-03 22:55:17 -05:00
auto_dev-ioctl.h
auto_fs.h
auto_fs4.h
auxvec.h
average.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h
backlight.h
basic_mmio_gpio.h
baycom.h
bcd.h
bch.h
bfin_mac.h
bfs_fs.h
binfmts.h
bio.h
bit_spinlock.h
bitmap.h
bitops.h
bitrev.h
blk-iopoll.h
blk_types.h
blkdev.h
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
bpqether.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btree-128.h
btree-type.h
btree.h
buffer_head.h
bug.h
c2port.h
cache.h
can.h
capability.h
capi.h
cb710.h
cciss_defs.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h
cfag12864b.h
cgroup.h
Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
2012-01-09 12:59:24 -08:00
cgroup_subsys.h
cgroupstats.h
chio.h
circ_buf.h
cleancache.h
clk.h
clk: add helper functions clk_prepare_enable and clk_disable_unprepare
2011-12-28 21:25:35 +08:00
clkdev.h
clksrc-dbx500-prcmu.h
clockchips.h
clocksource.h
time/clocksource: Fix kernel-doc warnings
2011-12-19 11:41:40 +01:00
cm4000_cs.h
cn_proc.h
cnt32_to_63.h
coda.h
coda_psdev.h
coff.h
com20020.h
compaction.h
compat.h
switch open and mkdir syscalls to umode_t
2012-01-03 22:55:19 -05:00
compiler-gcc.h
compiler-gcc3.h
compiler-gcc4.h
kernel.h: add BUILD_BUG() macro
2012-01-10 16:30:42 -08:00
compiler-intel.h
compiler.h
kernel.h: add BUILD_BUG() macro
2012-01-10 16:30:42 -08:00
completion.h
comstats.h
concap.h
configfs.h
configfs: convert to umode_t
2012-01-03 22:54:57 -05:00
connector.h
console.h
console_struct.h
consolemap.h
const.h
cordic.h
coredump.h
cper.h
cpu.h
Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
2012-01-07 12:03:30 -08:00
cpu_pm.h
cpu_rmap.h
cpufreq.h
cpuidle.h
cpumask.h
cpuset.h
cramfs_fs.h
cramfs_fs_sb.h
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
cryptouser.h
cs5535.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
davinci_emac.h
dca.h
dcache.h
fix shrink_dcache_parent() livelock
2012-01-10 13:06:32 -05:00
dcbnl.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h
Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2012-01-08 12:19:57 -08:00
debugobjects.h
delay.h
delayacct.h
devfreq.h
device-mapper.h
device.h
Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2012-01-08 12:19:57 -08:00
device_cgroup.h
devpts_fs.h
digsig.h
dio.h
dirent.h
display.h
dlm.h
dlm: add recovery callbacks
2012-01-04 08:56:31 -06:00
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dm-dirty-log.h
dm-io.h
dm-ioctl.h
dm-kcopyd.h
dm-log-userspace.h
dm-region-hash.h
dm9000.h
dma-attrs.h
dma-buf.h
dma-buf: Introduce dma buffer sharing mechanism
2012-01-06 10:20:21 +00:00
dma-debug.h
dma-direction.h
dma-mapping.h
dma_remapping.h
iommu: Export intel_iommu_enabled to signal when iommu is in use
2011-12-16 08:49:57 -08:00
dmaengine.h
dmapool.h
dmar.h
dmi.h
dn.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
drbd.h
drbd_limits.h
drbd_nl.h
drbd_tag_magic.h
ds1286.h
ds2782_battery.h
ds17287rtc.h
dtlk.h
dw_apb_timer.h
dw_dmac.h
dynamic_debug.h
dynamic_queue_limits.h
ecryptfs.h
edac.h
edac: convert sysdev_class to a regular subsystem
2011-12-14 15:21:07 -08:00
edd.h
eeprom_93cx6.h
eeprom_93xx46.h
efi.h
efs_fs_sb.h
efs_vh.h
eisa.h
elevator.h
elf-em.h
elf-fdpic.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
net: use IS_ENABLED(CONFIG_IPV6)
2011-12-11 18:25:16 -05:00
etherdevice.h
ethtool.h
ethtool: Remove ethtool_ops::set_rx_ntuple operation
2012-01-04 14:10:28 -05:00
eventfd.h
eventpoll.h
epoll: limit paths
2012-01-12 20:13:04 -08:00
evm.h
export.h
exportfs.h
ext2_fs.h
ext2_fs_sb.h
ext3_fs.h
ext3: propagate umode_t
2012-01-03 22:54:58 -05:00
ext3_fs_i.h
ext3_fs_sb.h
ext3_jbd.h
f75375s.h
fadvise.h
falloc.h
fanotify.h
fault-inject.h
fb.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdreg.h
fdtable.h
fec.h
fib_rules.h
fiemap.h
file.h
filter.h
fips.h
firewire-cdev.h
firewire-constants.h
firewire.h
firmware-map.h
firmware.h
flat.h
flex_array.h
font.h
freezer.h
PM / Freezer: fix return value of freezable_schedule_timeout_killable()
2011-12-27 01:06:33 +01:00
fs.h
epoll: limit paths
2012-01-12 20:13:04 -08: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
fsnotify.h
fsnotify_backend.h
ftrace.h
ftrace_event.h
ftrace_irq.h
fuse.h
futex.h
gameport.h
gcd.h
gen_stats.h
genalloc.h
generic_acl.h
generic_serial.h
genetlink.h
genhd.h
switch device_get_devnode() and ->devnode() to umode_t *
2012-01-03 22:54:55 -05:00
getcpu.h
gfp.h
mm: try to distribute dirty pages fairly across zones
2012-01-10 16:30:43 -08:00
gfs2_ondisk.h
gigaset_dev.h
gpio-fan.h
gpio-i2cmux.h
gpio-pxa.h
gpio.h
gpio_keys.h
gpio_mouse.h
gsmmux.h
hardirq.h
hash.h
hdlc.h
hdlcdrv.h
hdreg.h
hid-debug.h
hid-roccat.h
hid.h
Merge branch 'hid-battery' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen into for-linus
2012-01-09 11:24:59 +01:00
hiddev.h
hidraw.h
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h
htcpld.h
htirq.h
huge_mm.h
hugetlb.h
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
net/hyperv: Add support for jumbo frame up to 64KB
2012-01-04 16:13:05 -08:00
hysdn_if.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-gpio.h
i2c-mux.h
i2c-ocores.h
i2c-omap.h
i2c-pca-platform.h
i2c-pnx.h
i2c-pxa.h
i2c-smbus.h
i2c-tegra.h
i2c-xiic.h
i2c.h
Merge branch 'driver-core-next' into Linux 3.2
2012-01-06 11:42:52 -08:00
i2o-dev.h
i2o.h
i8k.h
i7300_idle.h
i8042.h
i8253.h
i82593.h
ibmtr.h
icmp.h
icmpv6.h
ide.h
switch procfs to umode_t use
2012-01-03 22:54:56 -05:00
idr.h
ieee80211.h
ieee80211: Introduce ieee80211_is_first_frag
2011-12-13 15:30:40 -05:00
if.h
if_addr.h
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h
if_cablemodem.h
if_ec.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h
if_ltalk.h
if_macvlan.h
if_packet.h
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_strip.h
if_team.h
if_tr.h
if_tun.h
if_tunnel.h
if_vlan.h
if_x25.h
igmp.h
ihex.h
ima.h
in.h
in6.h
in_route.h
inet.h
inet_diag.h
inet_diag: Add the SKMEMINFO extension
2011-12-30 16:42:19 -05:00
inet_lro.h
inetdevice.h
init.h
init_ohci1394_dma.h
init_task.h
Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
2012-01-09 12:59:24 -08:00
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel_mid_dma.h
intel_pmic_gpio.h
interrupt.h
io-mapping.h
io.h
ioc3.h
ioc4.h
iocontext.h
ioctl.h
iommu-helper.h
iommu.h
Merge branches 'iommu/page-sizes' and 'iommu/group-id' into next
2012-01-09 13:06:28 +01:00
ioport.h
ioprio.h
iova.h
ip.h
ip6_tunnel.h
ip_vs.h
ipc.h
switch kern_ipc_perm to umode_t
2012-01-03 22:55:17 -05:00
ipc_namespace.h
ipmi.h
ipmi_msgdefs.h
ipmi_smi.h
ipsec.h
ipv6.h
net: use IS_ENABLED(CONFIG_IPV6)
2011-12-11 18:25:16 -05:00
ipv6_route.h
ipx.h
irda.h
irq.h
irq_cpustat.h
irq_work.h
irqdesc.h
irqdomain.h
ARM: 7235/1: irqdomain: export irq_domain_simple_ops for !CONFIG_OF
2011-12-23 22:33:58 +00:00
irqflags.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
switch ->is_visible() to returning umode_t
2012-01-03 22:54:55 -05:00
iscsi_ibft.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ivtv.h
ivtvfb.h
ixjuser.h
jbd.h
jbd: Remove j_barrier mutex
2012-01-09 13:52:09 +01:00
jbd2.h
jbd2: clear revoked flag on buffers before a new transaction started
2011-12-28 17:46:46 -05:00
jbd_common.h
jffs2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label.h
jz4740-adc.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
Kbuild
unix_diag: Include unix_diag.h into header-y target
2011-12-30 16:42:19 -05:00
kbuild.h
kconfig.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kernel-page-flags.h
kernel.h
treewide: convert uses of ATTRIB_NORETURN to __noreturn
2012-01-12 20:13:03 -08:00
kernel_stat.h
kernelcapi.h
kexec.h
key-type.h
key.h
keyboard.h
keyctl.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmalloc_sizes.h
kmemcheck.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject.h
kobject: remove kset_find_obj_hinted()
2011-12-21 15:13:54 -08:00
kobject_ns.h
kprobes.h
kref.h
kref: fix up the kfree build problems
2011-12-14 11:19:07 -08:00
ks0108.h
ks8842.h
ksm.h
kthread.h
ktime.h
kvm.h
KVM: Don't automatically expose the TSC deadline timer in cpuid
2011-12-26 13:27:44 +02:00
kvm_host.h
KVM: Expose a version 2 architectural PMU to a guests
2011-12-27 11:24:29 +02:00
kvm_para.h
KVM: Fix whitespace in kvm_para.h
2011-12-27 11:26:41 +02:00
kvm_types.h
l2tp.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-lm3530.h
leds-bd2802.h
leds-lp3944.h
leds-lp5521.h
leds-lp5523.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds: add driver for TCA6507 LED controller
2012-01-10 16:30:49 -08:00
leds.h
leds_pwm.h
lglock.h
VFS: Fix race between CPU hotplug and lglocks
2011-12-22 02:02:20 -05:00
lguest.h
lguest_launcher.h
libata.h
libps2.h
license.h
limits.h
linkage.h
include/linux/linkage.h: remove unused ATTRIB_NORET macro
2012-01-12 20:13:03 -08:00
linux_logo.h
lis3lv02d.h
list.h
list_bl.h
list_nulls.h
list_sort.h
llc.h
llist.h
lockdep.h
log2.h
linux/log2.h: Fix rounddown_pow_of_two(1)
2011-12-12 22:06:55 -08:00
loop.h
lp.h
lp8727.h
lp8727_charger: Some minor fixes for the header
2012-01-04 16:25:45 +04:00
lru_cache.h
lsm_audit.h
lzo.h
m48t86.h
magic.h
major.h
map_to_7segment.h
maple.h
marvell_phy.h
math64.h
matroxfb.h
max17040_battery.h
mbcache.h
mbus.h
ARM: Orion: Get address map from plat-orion instead of via platform_data
2011-12-13 18:46:55 -05:00
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
mdio-bitbang.h
mdio-gpio.h
mdio.h
media.h
memblock.h
memcontrol.h
net: Fix build with INET disabled.
2012-01-09 13:44:23 -08:00
memory.h
convert 'memory' sysdev_class to a regular subsystem
2011-12-21 14:48:43 -08:00
memory_hotplug.h
mempolicy.h
mm/mempolicy.c: mpol_equal(): use bool
2012-01-10 16:30:45 -08:00
mempool.h
memstick.h
meye.h
mg_disk.h
micrel_phy.h
migrate.h
mii.h
minix_fs.h
miscdevice.h
switch miscdevice to umode_t
2012-01-03 22:55:15 -05:00
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm.h
Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2012-01-11 19:12:10 -08:00
mm_inline.h
mm_types.h
mm,slub,x86: decouple size of struct page from CONFIG_CMPXCHG_LOCAL
2012-01-12 20:13:03 -08:00
mman.h
mmdebug.h
mmiotrace.h
mmtimer.h
mmu_context.h
mmu_notifier.h
mmzone.h
mm: exclude reserved pages from dirtyable memory
2012-01-10 16:30:43 -08:00
mnt_namespace.h
vfs: take /proc/*/mounts and friends to fs/proc_namespace.c
2012-01-03 22:57:13 -05:00
mod_devicetable.h
module.h
moduleloader.h
moduleparam.h
mount.h
vfs: move fsnotify junk to struct mount
2012-01-03 22:57:12 -05:00
mpage.h
mpi.h
mqueue.h
mroute.h
mroute6.h
msdos_fs.h
msg.h
msi.h
PCI/sysfs: add per pci device msi[x] irq listing (v5)
2012-01-06 12:10:25 -08:00
msm_mdp.h
mtio.h
mutex-debug.h
mutex.h
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mxm-wmi.h
n_r3964.h
namei.h
nbd.h
ncp.h
ncp_fs.h
ncp_mount.h
ncp_no.h
neighbour.h
net.h
net_dropmon.h
net_tstamp.h
netdev_features.h
netdevice.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2012-01-09 14:46:52 -08:00
netfilter.h
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netpoll.h
netrom.h
nfc.h
NFC: Export a new attribute nfcid1 in target info
2012-01-04 14:30:43 -05:00
nfs.h
nfs2.h
nfs3.h
nfs4.h
nfs4_mount.h
nfs_fs.h
pull manipulations of rpc_cred inside alloc_nfs_open_context()
2012-01-03 22:52:34 -05:00
nfs_fs_i.h
nfs_fs_sb.h
NFS: Cache state owners after files are closed
2012-01-05 11:59:18 -05:00
nfs_idmap.h
NFSv4: Save the owner/group name string when doing open
2012-01-07 13:22:46 -05:00
nfs_iostat.h
nfs_mount.h
nfs_page.h
nfs_xdr.h
NFSv4: Save the owner/group name string when doing open
2012-01-07 13:22:46 -05:00
nfsacl.h
nilfs2_fs.h
nl80211.h
cfg80211: Return beacon loss count in station
2011-12-19 14:34:13 -05:00
nl802154.h
nls.h
nmi.h
node.h
convert 'memory' sysdev_class to a regular subsystem
2011-12-21 14:48:43 -08:00
nodemask.h
notifier.h
nsc_gpio.h
nsproxy.h
nubus.h
numa.h
nvram.h
nwpserial.h
of.h
devicetree/next changes queued for v3.3 merge window
2012-01-07 12:18:52 -08:00
of_address.h
of_device.h
of_fdt.h
ARM/of: allow *machine_desc.dt_compat to be const
2011-12-27 10:57:13 -06:00
of_gpio.h
of: create of_phandle_args to simplify return of phandle parsing data
2011-12-12 13:40:16 -07:00
of_i2c.h
of_irq.h
of_mdio.h
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_spi.h
omap3isp.h
omapfb.h
oom.h
openvswitch.h
opp.h
oprofile.h
oxu210hp.h
padata.h
page-debug-flags.h
mm: more intensive memory corruption debugging
2012-01-10 16:30:42 -08:00
page-flags.h
page-isolation.h
page_cgroup.h
pageblock-flags.h
pagemap.h
pagevec.h
mm: remove unused pagevec_free
2012-01-10 16:30:41 -08:00
param.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: Rework ASPM disable code
2012-01-06 12:10:26 -08:00
pci-ats.h
pci-dma.h
pci.h
PCI: Increase resource array mask bit size in pcim_iomap_regions()
2012-01-06 12:15:21 -08:00
pci_hotplug.h
pci_ids.h
PCI: pci_ids: add device ids for STA2X11 device (aka ConneXT)
2012-01-06 12:11:40 -08:00
pci_regs.h
Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci
2012-01-11 18:50:26 -08:00
pcieport_if.h
pda_power.h
percpu-defs.h
percpu.h
percpu: Remove irqsafe_cpu_xxx variants
2011-12-22 10:40:20 -08:00
percpu_counter.h
perf_event.h
perf events: Add PERF_COUNT_HW_REF_CPU_CYCLES generic PMU event
2011-12-21 10:26:37 +01:00
personality.h
pfkeyv2.h
pfn.h
pg.h
phantom.h
phonedev.h
phonet.h
phy.h
phy_fixed.h
pid.h
pid_namespace.h
procfs: add hidepid= and gid= mount options
2012-01-10 16:30:54 -08:00
pim.h
pipe_fs_i.h
pkt_cls.h
pkt_sched.h
net_sched: sfq: extend limits
2012-01-05 14:01:21 -05:00
pktcdvd.h
platform_device.h
Merge branch 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
2012-01-08 13:10:57 -08:00
plist.h
pm.h
Merge branch 'pm-runtime' into pm-for-linus
2011-12-25 23:43:05 +01:00
pm_clock.h
pm_domain.h
pm_qos.h
Merge branch 'pm-domains' into pm-for-linus
2011-12-25 23:43:11 +01:00
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
posix_types.h
power_supply.h
Merge branch 'power-supply-scope' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen
2012-01-04 09:09:35 +04:00
ppdev.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps-gpio.h
pps.h
pps_kernel.h
prctl.h
preempt.h
prefetch.h
printk.h
prio_heap.h
prio_tree.h
proc_fs.h
procfs: make proc_get_link to use dentry instead of inode
2012-01-10 16:30:54 -08:00
profile.h
proportions.h
pstore.h
pti.h
ptp_classify.h
ptp_clock.h
ptp_clock_kernel.h
ptrace.h
pwm.h
pwm_backlight.h
pxa2xx_ssp.h
pxa168_eth.h
qnx4_fs.h
qnxtypes.h
quicklist.h
quota.h
quotaops.h
radeonfb.h
radix-tree.h
raid_class.h
ramfs.h
pohmelfs: propagate umode_t
2012-01-03 22:55:07 -05:00
ramoops.h
random.h
range.h
rar_register.h
ratelimit.h
rational.h
raw.h
rbtree.h
rculist.h
rculist_bl.h
rculist_nulls.h
rcupdate.h
rcu: Document same-context read-side constraints
2011-12-11 10:32:06 -08:00
rcutiny.h
rcutree.h
rds.h
reboot.h
reciprocal_div.h
regmap.h
Merge branch 'topic/irq' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap into wm8994-mfd
2011-12-13 00:12:48 +08:00
regset.h
reiserfs_acl.h
reiserfs_fs.h
reiserfs: Properly display mount options in /proc/mounts
2012-01-06 23:20:13 -05:00
reiserfs_fs_i.h
reiserfs_fs_sb.h
reiserfs: Properly display mount options in /proc/mounts
2012-01-06 23:20:13 -05:00
reiserfs_xattr.h
relay.h
switch debugfs to umode_t
2012-01-03 22:54:56 -05:00
res_counter.h
resource.h
resume-trace.h
rfkill-gpio.h
rfkill-regulator.h
rfkill.h
ring_buffer.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
mremap: enforce rmap src/dst vma ordering in case of vma_merge() succeeding in copy_vma()
2012-01-10 16:30:44 -08:00
romfs_fs.h
root_dev.h
rose.h
rotary_encoder.h
route.h
rslib.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
s3c_adc_battery: Average over more than one adc sample
2012-01-06 06:13:35 +04:00
sc26198.h
scatterlist.h
scc.h
sched.h
treewide: remove useless NORET_TYPE macro and uses
2012-01-12 20:13:03 -08:00
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
sdla.h
seccomp.h
securebits.h
security.h
Merge branch 'for-linus' of git://selinuxproject.org/~jmorris/linux-security
2012-01-10 21:51:23 -08:00
selection.h
selinux.h
selinux_netlink.h
sem.h
semaphore.h
seq_file.h
constify seq_file stuff
2012-01-03 22:52:40 -05:00
seq_file_net.h
seqlock.h
serial.h
serial167.h
serial_8250.h
serial_core.h
serial_max3100.h
serial_mfd.h
serial_pnx8xxx.h
serial_reg.h
serial_sci.h
serialP.h
serio.h
sfi.h
sfi_acpi.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
PM / shmobile: Don't include SH7372's INTCS in syscore suspend/resume
2011-12-25 23:39:11 +01:00
sh_pfc.h
sh: pfc: Unlock register support
2012-01-09 09:33:57 +09:00
sh_timer.h
shm.h
shmem_fs.h
shmem, ramfs: propagate umode_t, open-coded S_ISREG
2012-01-03 22:55:07 -05:00
shrinker.h
sht15.h
signal.h
signal: add block_sigmask() for adding sigmask to current->blocked
2012-01-10 16:30:54 -08:00
signalfd.h
skbuff.h
net: pack skb_shared_info more efficiently
2012-01-05 14:01:21 -05:00
slab.h
slab_def.h
tracing/mm: Move include of trace/events/kmem.h out of header into slab.c
2012-01-09 14:19:33 -08:00
slob_def.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smsc911x.h
smscphy.h
net: phy: smsc: Move SMSC PHY constants to <linux/smscphy.h>
2012-01-03 20:23:18 -05:00
snmp.h
sock_diag.h
sock_diag: Introduce the meminfo nla core (v2)
2011-12-30 16:42:19 -05:00
socket.h
sockios.h
som.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
srcu.h
rcu: Document same-context read-side constraints
2011-12-11 10:32:06 -08:00
stackprotector.h
stacktrace.h
stallion.h
start_kernel.h
stat.h
statfs.h
stddef.h
stmmac.h
stop_machine.h
string.h
string_helpers.h
stringify.h
sungem_phy.h
superhyway.h
suspend.h
suspend_ioctls.h
svga.h
swab.h
swap.h
mm: exclude reserved pages from dirtyable memory
2012-01-10 16:30:43 -08:00
swapops.h
swiotlb.h
synclink.h
sys.h
syscalls.h
switch open and mkdir syscalls to umode_t
2012-01-03 22:55:19 -05:00
syscore_ops.h
sysctl.h
sysctl: use umode_t for table permissions
2012-01-03 22:55:12 -05:00
sysdev.h
sysfs.h
switch sysfs_chmod_file() to umode_t
2012-01-03 22:54:56 -05:00
syslog.h
sysrq.h
sysv_fs.h
task_io_accounting.h
task_io_accounting_ops.h
taskstats.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
tcp: Replace constants with #define macros
2011-12-21 01:03:23 -05:00
telephony.h
termios.h
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h
thread_info.h
threads.h
ti_wilink_st.h
tick.h
nohz: Remove tick_nohz_idle_enter_norcu() / tick_nohz_idle_exit_norcu()
2011-12-11 10:31:57 -08:00
tifm.h
timb_dma.h
timb_gpio.h
time.h
timecompare.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
times.h
timex.h
tiocl.h
tipc.h
tipc_config.h
topology.h
toshiba.h
tpm.h
tpm_command.h
trace_clock.h
trace_seq.h
tracehook.h
tracepoint.h
transport_class.h
trdevice.h
tsacct_kern.h
tty.h
tty_driver.h
tty_flip.h
tty_ldisc.h
typecheck.h
types.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2012-01-08 13:21:22 -08:00
u64_stats_sync.h
uaccess.h
ucb1400.h
Input: ucb1400_ts - convert to threaded IRQ
2012-01-04 22:19:55 -08:00
udf_fs_i.h
udp.h
uinput.h
uio.h
uio_driver.h
ultrasound.h
un.h
unistd.h
unix_diag.h
unix_diag: Fixup RQLEN extension report
2011-12-30 16:46:02 -05:00
usb.h
Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
2012-01-09 12:09:47 -08:00
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h
utime.h
uts.h
utsname.h
uuid.h
uvcvideo.h
uwb.h
v4l2-mediabus.h
v4l2-subdev.h
vermagic.h
veth.h
vfs.h
vga_switcheroo.h
vgaarb.h
vhost.h
via-core.h
via-gpio.h
via.h
via_i2c.h
video_output.h
videodev2.h
virtio.h
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_config.h
virtio_console.h
virtio_ids.h
virtio_mmio.h
virtio_net.h
virtio_pci.h
virtio_ring.h
virtio_rng.h
vlynq.h
vm_event_item.h
vmalloc.h
vmstat.h
vt.h
vt_buffer.h
vt_kern.h
w1-gpio.h
wait.h
lockdep/waitqueues: Add better annotation
2011-12-21 10:07:39 +01:00
wanrouter.h
watchdog.h
watchdog: add nowayout helpers to Watchdog Timer Driver Kernel API
2012-01-06 15:22:04 +01:00
wimax.h
wireless.h
wl12xx.h
wm97xx.h
workqueue.h
workqueue: make alloc_workqueue() take printf fmt and args for name
2012-01-10 16:30:54 -08:00
writeback.h
Merge branch 'writeback-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux
2012-01-10 16:59:59 -08:00
x25.h
xattr.h
xfrm.h
xilinxfb.h
xz.h
yam.h
z2_battery.h
zconf.h
zlib.h
zorro.h
zorro_ids.h
zutil.h