Benjamin Herrenschmidt
2efaca927f
mm/futex: fix futex writes on archs with SW tracking of dirty & young
...
I haven't reproduced it myself but the fail scenario is that on such
machines (notably ARM and some embedded powerpc), if you manage to hit
that futex path on a writable page whose dirty bit has gone from the PTE,
you'll livelock inside the kernel from what I can tell.
It will go in a loop of trying the atomic access, failing, trying gup to
"fix it up", getting succcess from gup, go back to the atomic access,
failing again because dirty wasn't fixed etc...
So I think you essentially hang in the kernel.
The scenario is probably rare'ish because affected architecture are
embedded and tend to not swap much (if at all) so we probably rarely hit
the case where dirty is missing or young is missing, but I think Shan has
a piece of SW that can reliably reproduce it using a shared writable
mapping & fork or something like that.
On archs who use SW tracking of dirty & young, a page without dirty is
effectively mapped read-only and a page without young unaccessible in the
PTE.
Additionally, some architectures might lazily flush the TLB when relaxing
write protection (by doing only a local flush), and expect a fault to
invalidate the stale entry if it's still present on another processor.
The futex code assumes that if the "in_atomic()" access -EFAULT's, it can
"fix it up" by causing get_user_pages() which would then be equivalent to
taking the fault.
However that isn't the case. get_user_pages() will not call
handle_mm_fault() in the case where the PTE seems to have the right
permissions, regardless of the dirty and young state. It will eventually
update those bits ... in the struct page, but not in the PTE.
Additionally, it will not handle the lazy TLB flushing that can be
required by some architectures in the fault case.
Basically, gup is the wrong interface for the job. The patch provides a
more appropriate one which boils down to just calling handle_mm_fault()
since what we are trying to do is simulate a real page fault.
The futex code currently attempts to write to user memory within a
pagefault disabled section, and if that fails, tries to fix it up using
get_user_pages().
This doesn't work on archs where the dirty and young bits are maintained
by software, since they will gate access permission in the TLB, and will
not be updated by gup().
In addition, there's an expectation on some archs that a spurious write
fault triggers a local TLB flush, and that is missing from the picture as
well.
I decided that adding those "features" to gup() would be too much for this
already too complex function, and instead added a new simpler
fixup_user_fault() which is essentially a wrapper around handle_mm_fault()
which the futex code can call.
[akpm@linux-foundation.org: coding-style fixes]
[akpm@linux-foundation.org: fix some nits Darren saw, fiddle comment layout]
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reported-by: Shan Hai <haishan.bai@gmail.com>
Tested-by: Shan Hai <haishan.bai@gmail.com>
Cc: David Laight <David.Laight@ACULAB.COM>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Darren Hart <darren.hart@intel.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-07-25 20:57:11 -07:00
..
amba
amba pl011: workaround for uart registers lockup
2011-06-16 12:01:57 -07:00
bcma
bcma: inform drivers about translation bits needed for the core
2011-07-22 09:51:12 -04:00
byteorder
caif
can
ceph
crush
decompress
dvb
hdlc
i2c
backlight: new driver for the ADP8870 backlight devices
2011-06-15 20:03:59 -07:00
input
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
2011-06-20 08:59:46 -07:00
isdn
lockd
mfd
mmc: sdhi: Add write16_hook
2011-07-20 17:20:57 -04:00
mlx4
IB/mlx4: Use flow counters on IBoE ports
2011-07-18 21:04:36 -07:00
mmc
mmc: core: Set non-default Drive Strength via platform hook
2011-07-20 17:21:16 -04:00
mtd
Merge branch 'linux-next' of git://git.infradead.org/ubi-2.6
2011-07-22 13:09:55 -07:00
netfilter
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6
2011-07-21 12:39:35 -07:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfc
nfsd
platform_data
mmc: sdhci-pxa: move platform data to include/linux/platform_data
2011-07-20 17:20:52 -04:00
power
raid
regulator
rtc
spi
mcp23s08: get rid of setup/teardown callbacks
2011-07-15 13:54:17 -06:00
ssb
ssb: SPROM: add LED duty cycle fields
2011-07-18 14:29:04 -04:00
sunrpc
Merge branch 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6
2011-06-21 18:20:55 -07:00
tc_act
tc_ematch
net: remove SK_ROUTE_CAPS from meta ematch
2011-07-14 14:45:59 -07:00
unaligned
usb
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
aio.h
aio_abi.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
iommu/amd: Move missing parts to drivers/iommu
2011-06-21 10:49:31 +02:00
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
anonfd: fix missing declaration
2011-07-20 20:47:43 -04:00
apm-emulation.h
apm_bios.h
arcdevice.h
net: remove interrupt.h inclusion from netdevice.h
2011-06-06 22:55:11 -07:00
arcfb.h
async.h
async_tx.h
ata.h
ata_platform.h
atalk.h
ath9k_platform.h
ath9k: add external_reset callback to ath9k_platfom_data for AR9330
2011-06-22 16:09:57 -04:00
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
lockless get_write_access/deny_write_access
2011-07-20 01:43:14 -04:00
attribute_container.h
audit.h
netfilter: add SELinux context support to AUDIT target
2011-06-30 13:31:57 +02: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
gpio/basic_mmio: add missing include of spinlock_types.h
2011-06-10 08:46:26 -06:00
baycom.h
bcd.h
bch.h
bfin_mac.h
bfs_fs.h
binfmts.h
consolidate BINPRM_FLAGS_ENFORCE_NONDUMP handling
2011-07-20 01:43:10 -04:00
bio.h
bit_spinlock.h
sched: Isolate preempt counting in its own config option
2011-06-10 15:15:40 +02:00
bitmap.h
bitops.h
bitrev.h
blk-iopoll.h
blk_types.h
block: add REQ_SECURE to REQ_COMMON_MASK
2011-06-20 13:23:14 +02:00
blkdev.h
block: remove unwanted semicolons
2011-05-31 13:45:53 +02:00
blkpg.h
blktrace_api.h
block: Add __attribute__((format(printf...) and fix fallout
2011-06-13 10:42:49 +02:00
blockgroup_lock.h
bootmem.h
bottom_half.h
bpqether.h
brcmphy.h
bsearch.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
cgroup_subsys.h
cgroupstats.h
chio.h
circ_buf.h
cleancache.h
clk.h
clkdev.h
clockchips.h
clocksource.h
Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2011-07-22 17:05:15 -07:00
cm4000_cs.h
cn_proc.h
connector: add an event for monitoring process tracers
2011-07-18 21:38:33 +02:00
cnt32_to_63.h
coda.h
coda_psdev.h
coff.h
com20020.h
compaction.h
compat.h
include/linux/compat.h: declare compat_sys_sendmmsg()
2011-06-27 18:00:13 -07:00
compiler-gcc.h
compiler-gcc3.h
compiler-gcc4.h
compiler-intel.h
compiler.h
completion.h
comstats.h
concap.h
configfs.h
connector.h
Connector: Set the CN_NETLINK_USERS correctly
2011-06-07 12:02:00 -07:00
console.h
console_struct.h
consolemap.h
const.h
cordic.h
lib: cordic: add library module providing cordic angle calculation
2011-06-03 15:01:07 -04:00
coredump.h
cper.h
cpu.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
lib: crc8: add new library module providing crc8 algorithm
2011-06-03 15:01:06 -04:00
crc16.h
crc32.h
crc32c.h
cred.h
crypto.h
cryptohash.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
kill lookup_create()
2011-07-20 01:44:12 -04:00
dcbnl.h
dcbnl: Aggregated CEE GET operation
2011-07-05 23:42:17 -07:00
dccp.h
net: remove interrupt.h inclusion from netdevice.h
2011-06-06 22:55:11 -07:00
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
device-mapper.h
dm table: allow targets to support discards internally
2011-05-29 12:52:55 +01:00
device.h
PM / Domains: Rename struct dev_power_domain to struct dev_pm_domain
2011-07-02 14:29:54 +02:00
device_cgroup.h
devcgroup_inode_permission: take "is it a device node" checks to inlined wrapper
2011-06-20 10:46:04 -04:00
devpts_fs.h
dio.h
dirent.h
display.h
dlm.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dm-dirty-log.h
dm-io.h
dm io: use fixed initial mempool size
2011-05-29 13:03:09 +01:00
dm-ioctl.h
dm-kcopyd.h
dm kcopyd: return client directly and not through a pointer
2011-05-29 13:03:13 +01:00
dm-log-userspace.h
dm-region-hash.h
dm9000.h
dma-attrs.h
dma-debug.h
dma-direction.h
net: remove mm.h inclusion from netdevice.h
2011-06-21 19:17:20 -07:00
dma-mapping.h
net: remove mm.h inclusion from netdevice.h
2011-06-21 19:17:20 -07:00
dma_remapping.h
intel-iommu: Enable super page (2MiB, 1GiB, etc.) support
2011-06-01 12:26:35 +01:00
dmaengine.h
net: remove mm.h inclusion from netdevice.h
2011-06-21 19:17:20 -07:00
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: fix limit define, we support 1 PiByte now
2011-06-30 09:23:45 +02:00
drbd_nl.h
drbd_tag_magic.h
ds1286.h
ds2782_battery.h
ds17287rtc.h
dtlk.h
dw_apb_timer.h
clocksource: apb: Share APB timer code with other platforms
2011-06-27 15:16:21 -07:00
dw_dmac.h
dynamic_debug.h
edac.h
edac_mce.h
edd.h
eeprom_93cx6.h
efi.h
x86, efi: Add infrastructure for UEFI 2.0 runtime services
2011-06-06 13:30:30 -07:00
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
etherdevice.h
net: Push protocol type directly down to header_ops->cache()
2011-07-13 02:29:59 -07:00
ethtool.h
net: add external loopback test in ethtool self test
2011-06-30 22:32:49 -07:00
eventfd.h
eventpoll.h
exportfs.h
ext2_fs.h
ext2_fs_sb.h
ext3_fs.h
fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers
2011-07-20 20:47:59 -04: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
fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers
2011-07-20 20:47:59 -04:00
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: cdev: ABI documentation enhancements
2011-07-16 07:24:32 +02:00
firewire-constants.h
firewire.h
firmware-map.h
firmware.h
flat.h
flex_array.h
font.h
freezer.h
fs.h
mm/truncate.c: fix build for CONFIG_BLOCK not enabled
2011-07-22 19:41:19 -04:00
fs_enet_pd.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fscache-cache.h
fscache.h
FS-Cache: Add a helper to bulk uncache pages on an inode
2011-07-07 13:21:56 -07:00
fsl-diu-fb.h
fsl-diu-fb: remove check for pixel clock ranges
2011-06-24 17:08:49 +09:00
fsl_devices.h
fsnotify.h
fsnotify_backend.h
ftrace.h
ftrace: Fix warning when CONFIG_FUNCTION_TRACER is not defined
2011-07-11 10:12:59 -04:00
ftrace_event.h
tracing: Have dynamic size event stack traces
2011-07-14 16:36:53 -04:00
ftrace_irq.h
fuse.h
futex.h
gameport.h
gcd.h
gen_stats.h
genalloc.h
generic_acl.h
->permission() sanitizing: don't pass flags to ->check_acl()
2011-07-20 01:43:21 -04:00
generic_serial.h
genetlink.h
genhd.h
Revert "block: Remove extra discard_alignment from hd_struct."
2011-05-30 07:42:51 +02:00
getcpu.h
gfp.h
gfs2_ondisk.h
gigaset_dev.h
gpio-fan.h
gpio-i2cmux.h
gpio.h
gpio: add GPIOF_ values regardless on kconfig settings
2011-06-16 08:40:52 -06:00
gpio_keys.h
gpio_mouse.h
gsmmux.h
hardirq.h
sched: Isolate preempt counting in its own config option
2011-06-10 15:15:40 +02:00
hash.h
hdlc.h
hdlcdrv.h
hdreg.h
hid-debug.h
hid-roccat.h
hid.h
HID: yurex: recognize GeneralKeys wireless presenter as generic HID
2011-06-07 15:34:17 +02:00
hiddev.h
hidraw.h
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h
Fix some kernel-doc warnings
2011-06-27 16:06:19 -07:00
htcpld.h
htirq.h
huge_mm.h
hugetlb.h
hugetlb: add phys addr to struct huge_bootmem_page
2011-07-25 20:57:07 -07:00
hugetlb_inline.h
hw_breakpoint.h
perf: Add context field to perf_event
2011-07-01 11:06:38 +02:00
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
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
i2o-dev.h
i2o.h
i8k.h
i7300_idle.h
i8042.h
i8253.h
i8253: Cleanup outb/inb magic
2011-07-01 10:37:15 +02:00
i82593.h
ibmtr.h
icmp.h
icmpv6.h
ide.h
idr.h
ieee80211.h
ieee80211: add few wmm tspec values
2011-07-19 16:49:54 -04: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
net: add 802.1ad / 802.1ah / QinQ ethertypes
2011-07-17 12:33:22 -07:00
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
packet: Add 'cpu' fanout policy.
2011-07-06 01:56:38 -07:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_strip.h
if_tr.h
if_tun.h
if_tunnel.h
if_vlan.h
vlan: move vlan_group_[gs]et_device to public header
2011-07-21 13:47:58 -07:00
if_x25.h
igmp.h
ihex.h
ima.h
in.h
in6.h
in_route.h
inet.h
inet_diag.h
inet_lro.h
lro: do vlan cleanup
2011-07-21 13:47:54 -07:00
inetdevice.h
init.h
init_ohci1394_dma.h
init_task.h
initrd.h
inotify.h
input-polldev.h
input.h
intel-iommu.h
intel_mid_dma.h
intel_pmic_gpio.h
interrupt.h
rcu: Use softirq to address performance regression
2011-06-14 15:25:39 -07:00
io-mapping.h
io.h
ioc3.h
ioc4.h
iocontext.h
ioctl.h
iommu-helper.h
iommu.h
iommu-api: Add missing header file
2011-06-14 11:30:22 +02:00
ioport.h
ioprio.h
iova.h
ip.h
ip6_tunnel.h
ip_vs.h
ipc.h
ipc_namespace.h
ipmi.h
ipmi_msgdefs.h
ipmi_smi.h
ipsec.h
ipv6.h
ipv6_route.h
ipx.h
irda.h
irq.h
Merge branches 'x86-urgent-for-linus', 'core-debug-for-linus', 'irq-core-for-linus' and 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2011-07-23 10:33:08 -07:00
irq_cpustat.h
irq_work.h
irqdesc.h
irqflags.h
irqnr.h
irqreturn.h
irq: Handle spurios irq detection for threaded irqs
2011-06-03 14:53:15 +02:00
isa.h
isapnp.h
iscsi_boot_sysfs.h
[SCSI] iscsi_ibft, be2iscsi, iscsi_boot: fix boot kobj data lifetime management
2011-06-29 16:43:06 -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
jbd2.h
jbd2: Fix oops in jbd2_journal_remove_journal_head()
2011-06-13 15:38:22 -04:00
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
kbuild.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kernel-page-flags.h
kernel.h
Merge branch 'sched/core-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into sched/core
2011-07-01 13:20:51 +02: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
KEYS/DNS: Fix ____call_usermodehelper() to not lose the session keyring
2011-06-17 09:40:48 -07:00
kmsg_dump.h
kmsg_dump.h: fix build when CONFIG_PRINTK is disabled
2011-06-15 20:03:59 -07:00
kobj_map.h
kobject.h
kobject_ns.h
Delay struct net freeing while there's a sysfs instance refering to it
2011-06-12 17:45:41 -04:00
kprobes.h
kref.h
ks0108.h
ks8842.h
ksm.h
kthread.h
ktime.h
kvm.h
KVM: PPC: Allocate RMAs (Real Mode Areas) at boot for use by guests
2011-07-12 13:16:57 +03:00
kvm_host.h
KVM: MMU: filter out the mmio pfn from the fault pfn
2011-07-24 11:50:34 +03: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-lp5521.h
leds-lp5523.h
leds-pca9532.h
leds-regulator.h
leds.h
leds_pwm.h
lglock.h
lguest.h
lguest: use a special 1:1 linear pagetable mode until first switch.
2011-07-22 14:39:48 +09:30
lguest_launcher.h
libata.h
ata: Add and use ata_print_version_once
2011-07-23 17:57:36 -04:00
libps2.h
license.h
limits.h
linkage.h
linux_logo.h
lis3lv02d.h
list.h
list_bl.h
list_nulls.h
list_sort.h
llc.h
lockdep.h
log2.h
loop.h
lp.h
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
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
mdio-bitbang.h
mdio-gpio.h
mdio.h
media.h
memblock.h
memcontrol.h
vmscan,memcg: memcg aware swap token
2011-06-15 20:03:59 -07:00
memory.h
mm: Move definition of MIN_MEMORY_BLOCK_SIZE to a header
2011-07-12 11:08:01 +10:00
memory_hotplug.h
mm: extend memory hotplug API to allow memory hotplug in virtual machines
2011-07-25 20:57:08 -07:00
mempolicy.h
mempool.h
memstick.h
meye.h
mg_disk.h
micrel_phy.h
migrate.h
mii.h
tg3: Migrate phy preprocessor defs to system defs
2011-06-15 11:11:57 -04:00
minix_fs.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm.h
mm/futex: fix futex writes on archs with SW tracking of dirty & young
2011-07-25 20:57:11 -07:00
mm_inline.h
mm_types.h
mm: Fix boot crash in mm_alloc()
2011-05-29 11:32:28 -07:00
mman.h
mmdebug.h
mmiotrace.h
mmtimer.h
mmu_context.h
mmu_notifier.h
mmzone.h
Fix node_start/end_pfn() definition for mm/page_cgroup.c
2011-06-27 14:13:09 -07:00
mnt_namespace.h
fs: seq_file - add event counter to simplify poll() support
2011-07-20 20:47:50 -04:00
mod_devicetable.h
module.h
module: add /sys/module/<name>/uevent files
2011-07-24 22:06:04 +09:30
moduleloader.h
modules: add default loader hook implementations
2011-07-24 22:06:04 +09:30
moduleparam.h
mount.h
mpage.h
mqueue.h
mroute.h
mroute6.h
msdos_fs.h
msg.h
msi.h
msm_mdp.h
mtio.h
mutex-debug.h
mutex.h
mutex: Make mutex_destroy() an inline function
2011-07-21 09:36:09 +02:00
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mxm-wmi.h
n_r3964.h
namei.h
switch vfs_path_lookup() to struct path
2011-07-20 01:44:14 -04:00
nbd.h
ncp.h
ncp_fs.h
ncp_mount.h
ncp_no.h
neighbour.h
net.h
net_dropmon.h
net_tstamp.h
netdevice.h
net: Kobj and queues_kset should be used when CONFIG_XPS is enabled
2011-07-21 20:39:47 -07:00
netfilter.h
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
2011-06-24 15:25:51 -04:00
netpoll.h
netpoll: Remove unused EXPORT_SYMBOLs of netpoll_poll and netpoll_poll_dev
2011-07-03 20:02:07 -07:00
netrom.h
nfc.h
NFC: add the NFC socket raw protocol
2011-07-05 15:26:58 -04:00
nfs.h
nfs2.h
nfs3.h
nfs4.h
Merge branch 'pnfs-submit' of git://git.open-osd.org/linux-open-osd
2011-05-29 14:10:13 -07:00
nfs4_mount.h
nfs_fs.h
nfs_open_context doesn't need struct path either
2011-07-20 01:43:44 -04:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_idmap.h
nfs_iostat.h
nfs_mount.h
nfs_page.h
NFSv4.1: file layout must consider pg_bsize for coalescing
2011-06-20 16:12:26 -04:00
nfs_xdr.h
NFSv4.1: deprecate headerpadsz in CREATE_SESSION
2011-06-15 11:24:28 -04:00
nfsacl.h
nilfs2_fs.h
nl80211.h
cfg80211: allow userspace to control supported rates in scan
2011-07-19 16:49:58 -04:00
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
nsc_gpio.h
nsproxy.h
make sure that nsproxy_cache is initialized early enough
2011-07-20 01:44:07 -04:00
nubus.h
numa.h
nvram.h
nwpserial.h
of.h
dt: add empty of_property_read_u32[_array] for non-dt
2011-07-08 12:52:33 -06:00
of_address.h
dt: include linux/errno.h in linux/of_address.h
2011-07-18 16:37:45 -06:00
of_device.h
of_fdt.h
of_gpio.h
of/gpio: Add new method for getting gpios under different property names
2011-06-28 15:39:50 -06:00
of_i2c.h
of_irq.h
of_mdio.h
of_net.h
of_pci.h
pci/of: Match PCI devices to OF nodes dynamically
2011-06-08 09:08:17 +10:00
of_pdt.h
of_platform.h
dt/platform: allow device name to be overridden
2011-06-21 11:04:10 -06:00
of_spi.h
omap3isp.h
omapfb.h
oom.h
oom: remove references to old badness() function
2011-07-25 20:57:09 -07:00
opp.h
PM / OPP: Introduce function to free cpufreq table
2011-07-15 23:58:18 +02:00
oprofile.h
oxu210hp.h
padata.h
page-debug-flags.h
page-flags.h
mm: use const struct page for r/o page-flag accessor methods
2011-07-25 20:57:07 -07:00
page-isolation.h
page_cgroup.h
pageblock-flags.h
pagemap.h
mm: cleanup descriptions of filler arg
2011-07-25 20:57:10 -07:00
pagevec.h
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-ats.h
pci-dma.h
pci.h
Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2011-07-22 16:39:42 -07:00
pci_hotplug.h
pci_ids.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
2011-07-23 10:59:37 -07:00
pci_regs.h
pcieport_if.h
pda_power.h
percpu-defs.h
percpu.h
slub: always align cpu_slab to honor cmpxchg_double requirement
2011-06-03 19:33:49 +03:00
percpu_counter.h
perf_event.h
perf: export perf_event_refresh() to modules
2011-07-01 11:06:40 +02: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
pim.h
pipe_fs_i.h
pkt_cls.h
pkt_sched.h
pktcdvd.h
platform_device.h
plist.h
plist: Remove the need to supply locks to plist heads
2011-07-08 14:02:53 +02:00
pm.h
PM: Introduce generic "noirq" callback routines for subsystems (v2)
2011-07-02 14:29:55 +02:00
pm_domain.h
ARM / shmobile: Use genpd_queue_power_off_work()
2011-07-14 20:59:07 +02:00
pm_qos_params.h
idle governor: Avoid lock acquisition to read pm_qos before entering idle
2011-05-29 00:50:59 -04:00
pm_runtime.h
PM / Runtime: Add new helper function: pm_runtime_status_suspended()
2011-07-12 11:17:09 +02:00
pm_wakeup.h
pmu.h
pnfs_osd_xdr.h
pnfs-obj: pnfs_osd XDR definitions
2011-05-29 20:52:36 +03:00
pnp.h
poison.h
mm/memblock.c: avoid abuse of RED_INACTIVE
2011-07-25 20:57:09 -07:00
poll.h
posix-clock.h
posix-timers.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
power_supply.h
ppdev.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps.h
pps_kernel.h
prctl.h
preempt.h
sched: Isolate preempt counting in its own config option
2011-06-10 15:15:40 +02:00
prefetch.h
printk.h
prio_heap.h
prio_tree.h
proc_fs.h
profile.h
proportions.h
pstore.h
pti.h
ptp_classify.h
ptp_clock.h
ptp_clock_kernel.h
ptrace.h
ptrace: dont send SIGSTOP on auto-attach if PT_SEIZED
2011-07-17 20:23:52 +02:00
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
ramoops.h
random.h
ipv6: make fragment identifications less predictable
2011-07-21 21:25:58 -07:00
range.h
rar_register.h
ratelimit.h
rational.h
raw.h
rbtree.h
rculist.h
rcu: Fix wrong check in list_splice_init_rcu()
2011-07-20 14:10:20 -07:00
rculist_bl.h
rculist_nulls.h
rcupdate.h
sched: Isolate preempt counting in its own config option
2011-06-10 15:15:40 +02:00
rcutiny.h
rcutree.h
rds.h
reboot.h
reciprocal_div.h
regmap.h
regmap: Add SPI bus support
2011-07-23 07:56:59 +01:00
regset.h
reiserfs_acl.h
reiserfs_fs.h
reiserfs_fs_i.h
reiserfs_fs_sb.h
reiserfs_xattr.h
->permission() sanitizing: don't pass flags to ->permission()
2011-07-20 01:43:24 -04:00
relay.h
res_counter.h
resource.h
resume-trace.h
rfkill-gpio.h
rfkill-regulator.h
rfkill.h
ring_buffer.h
tracing: Use NUMA allocation for per-cpu ring buffer pages
2011-06-14 22:04:39 -04:00
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
romfs_fs.h
root_dev.h
rose.h
rotary_encoder.h
route.h
rslib.h
rtc-v3020.h
rtc.h
rtmutex.h
plist: Remove the need to supply locks to plist heads
2011-07-08 14:02:53 +02:00
rtnetlink.h
net: dcbnl, add multicast group for DCB
2011-06-21 16:06:11 -07:00
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem-spinlock.h
rwsem.h
rw_semaphore: remove up/down_read_non_owner
2011-07-20 20:47:47 -04:00
rxrpc.h
s3c_adc_battery.h
sc26198.h
scatterlist.h
scc.h
sched.h
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2011-07-22 16:45:02 -07:00
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
sdla.h
include/linux/sdla.h: remove the prototype of sdla()
2011-07-18 11:06:03 -07:00
seccomp.h
x86-64: Emulate legacy vsyscalls
2011-06-07 10:02:35 +02:00
securebits.h
security.h
->permission() sanitizing: don't pass flags to exec_permission()
2011-07-20 01:43:29 -04:00
selection.h
selinux.h
selinux_netlink.h
sem.h
semaphore.h
seq_file.h
fs: seq_file - add event counter to simplify poll() support
2011-07-20 20:47:50 -04:00
seq_file_net.h
seqlock.h
linux/seqlock.h should #include asm/processor.h for cpu_relax()
2011-06-11 13:17:28 -07:00
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_intc.h
sh_pfc.h
sh_timer.h
shm.h
shmem_fs.h
tmpfs: add shmem_read_mapping_page_gfp
2011-06-27 18:00:12 -07:00
shrinker.h
superblock: introduce per-sb cache shrinker infrastructure
2011-07-20 20:47:10 -04:00
sht15.h
sigma.h
signal.h
signalfd.h
skbuff.h
net: introduce __netdev_alloc_skb_ip_align
2011-07-11 20:08:34 -07:00
slab.h
slab allocators: Provide generic description of alignment defines
2011-07-07 21:04:12 +03:00
slab_def.h
slab: shrink sizeof(struct kmem_cache)
2011-07-20 20:27:56 +03:00
slob_def.h
slab, slub, slob: Unify alignment definition
2011-06-16 19:40:20 +03:00
slub_def.h
slub: Add method to verify memory is not freed
2011-07-07 22:17:08 +03:00
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
generic-ipi: Fix kexec boot crash by initializing call_single_queue before enabling interrupts
2011-06-17 10:17:12 +02:00
smsc911x.h
snmp.h
socket.h
NFC: add NFC socket family
2011-07-05 15:26:58 -04:00
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
stackprotector.h
stacktrace.h
x86: Swap save_stack_trace_regs parameters
2011-06-14 22:48:51 -04:00
stallion.h
start_kernel.h
stat.h
statfs.h
stddef.h
stmmac.h
stmmac: unify MAC and PHY configuration parameters (V2)
2011-07-21 15:29:16 -07:00
stop_machine.h
x86, mtrr: use stop_machine APIs for doing MTRR rendezvous
2011-06-27 15:17:13 -07:00
string.h
string_helpers.h
stringify.h
superhyway.h
suspend.h
PM / Suspend: Add .suspend_again() callback to suspend_ops
2011-07-15 23:58:19 +02:00
suspend_ioctls.h
svga.h
swab.h
swap.h
mm: move shmem prototypes to shmem_fs.h
2011-06-27 18:00:12 -07:00
swapops.h
swiotlb.h
swiotlb: Export swioltb_nr_tbl and utilize it as appropiate.
2011-06-06 15:41:16 -04:00
synclink.h
sys.h
syscalls.h
syscore_ops.h
sysctl.h
sysdev.h
sysfs.h
Delay struct net freeing while there's a sysfs instance refering to it
2011-06-12 17:45:41 -04: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: RFC2988bis + taking RTT sample from 3WHS for the passive open side
2011-06-08 17:05:30 -07: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
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
mm: increase RECLAIM_DISTANCE to 30
2011-06-15 20:03:59 -07:00
toshiba.h
tpm.h
tpm_command.h
trace_clock.h
trace_seq.h
tracehook.h
kill tracehook_notify_death()
2011-06-27 20:30:08 +02:00
tracepoint.h
transport_class.h
trdevice.h
tsacct_kern.h
tty.h
tty_driver.h
tty_flip.h
tty_ldisc.h
Revert "tty: make receive_buf() return the amout of bytes received"
2011-06-04 06:33:24 +09:00
typecheck.h
types.h
u64_stats_sync.h
uaccess.h
ucb1400.h
udf_fs_i.h
udp.h
uinput.h
uio.h
uio_driver.h
ultrasound.h
un.h
unistd.h
usb.h
usb_usual.h
usb-storage: redo incorrect reads
2011-06-07 09:05:42 -07:00
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h
utime.h
uts.h
uts: make default hostname configurable, rather than always using "(none)"
2011-06-15 20:04:00 -07:00
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: add api for delayed callbacks
2011-05-30 11:14:16 +09:30
virtio_9p.h
virtio: add full three-clause BSD text to headers.
2011-05-30 11:14:14 +09:30
virtio_balloon.h
virtio: add full three-clause BSD text to headers.
2011-05-30 11:14:14 +09:30
virtio_blk.h
virtio: add full three-clause BSD text to headers.
2011-05-30 11:14:14 +09:30
virtio_config.h
virtio: add full three-clause BSD text to headers.
2011-05-30 11:14:14 +09:30
virtio_console.h
virtio: add full three-clause BSD text to headers.
2011-05-30 11:14:14 +09:30
virtio_ids.h
virtio: add full three-clause BSD text to headers.
2011-05-30 11:14:14 +09:30
virtio_net.h
virtio_net: introduce VIRTIO_NET_HDR_F_DATA_VALID
2011-06-11 15:57:47 -07:00
virtio_pci.h
virtio: add full three-clause BSD text to headers.
2011-05-30 11:14:14 +09:30
virtio_ring.h
virtio ring: inline function to check for events
2011-05-30 11:14:14 +09:30
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
wanrouter.h
watchdog.h
wimax.h
wireless.h
wl12xx.h
wm97xx.h
workqueue.h
writeback.h
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