android_kernel_google_msm/include/linux
Srivatsa S. Bhat e30e2fdfe5 VFS: Fix race between CPU hotplug and lglocks
Currently, the *_global_[un]lock_online() routines are not at all synchronized
with CPU hotplug. Soft-lockups detected as a consequence of this race was
reported earlier at https://lkml.org/lkml/2011/8/24/185. (Thanks to Cong Meng
for finding out that the root-cause of this issue is the race condition
between br_write_[un]lock() and CPU hotplug, which results in the lock states
getting messed up).

Fixing this race by just adding {get,put}_online_cpus() at appropriate places
in *_global_[un]lock_online() is not a good option, because, then suddenly
br_write_[un]lock() would become blocking, whereas they have been kept as
non-blocking all this time, and we would want to keep them that way.

So, overall, we want to ensure 3 things:
1. br_write_lock() and br_write_unlock() must remain as non-blocking.
2. The corresponding lock and unlock of the per-cpu spinlocks must not happen
   for different sets of CPUs.
3. Either prevent any new CPU online operation in between this lock-unlock, or
   ensure that the newly onlined CPU does not proceed with its corresponding
   per-cpu spinlock unlocked.

To achieve all this:
(a) We introduce a new spinlock that is taken by the *_global_lock_online()
    routine and released by the *_global_unlock_online() routine.
(b) We register a callback for CPU hotplug notifications, and this callback
    takes the same spinlock as above.
(c) We maintain a bitmap which is close to the cpu_online_mask, and once it is
    initialized in the lock_init() code, all future updates to it are done in
    the callback, under the above spinlock.
(d) The above bitmap is used (instead of cpu_online_mask) while locking and
    unlocking the per-cpu locks.

The callback takes the spinlock upon the CPU_UP_PREPARE event. So, if the
br_write_lock-unlock sequence is in progress, the callback keeps spinning,
thus preventing the CPU online operation till the lock-unlock sequence is
complete. This takes care of requirement (3).

The bitmap that we maintain remains unmodified throughout the lock-unlock
sequence, since all updates to it are managed by the callback, which takes
the same spinlock as the one taken by the lock code and released only by the
unlock routine. Combining this with (d) above, satisfies requirement (2).

Overall, since we use a spinlock (mentioned in (a)) to prevent CPU hotplug
operations from racing with br_write_lock-unlock, requirement (1) is also
taken care of.

By the way, it is to be noted that a CPU offline operation can actually run
in parallel with our lock-unlock sequence, because our callback doesn't react
to notifications earlier than CPU_DEAD (in order to maintain our bitmap
properly). And this means, since we use our own bitmap (which is stale, on
purpose) during the lock-unlock sequence, we could end up unlocking the
per-cpu lock of an offline CPU (because we had locked it earlier, when the
CPU was online), in order to satisfy requirement (2). But this is harmless,
though it looks a bit awkward.

Debugged-by: Cong Meng <mc@linux.vnet.ibm.com>
Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: stable@vger.kernel.org
2011-12-22 02:02:20 -05:00
..
amba Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2011-11-04 18:02:25 -07:00
bcma include: convert various register fcns to macros to avoid include chaining 2011-10-31 19:32:32 -04:00
byteorder
caif
can can: remove references to berlios mailinglist 2011-10-17 19:22:46 -04:00
ceph libceph: Allocate larger oid buffer in request msgs 2011-11-11 09:50:19 -08:00
crush
decompress
dvb
hdlc
i2c Merge branch 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6 2011-11-03 09:40:51 -07:00
input Input: adp5589-keys - add support for the ADP5585 derivatives 2011-10-18 21:26:55 -07:00
isdn
lockd
mfd regulator: TPS65910: Fix VDD1/2 voltage selector count 2011-11-23 14:03:52 +00:00
mlx4 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2011-11-01 10:51:38 -07:00
mmc mmc: core: Add quirk for long data read time 2011-12-10 16:18:35 -05:00
mtd Merge git://git.infradead.org/mtd-2.6 2011-11-07 09:11:16 -08:00
netfilter
netfilter_arp
netfilter_bridge
netfilter_ipv4 netfilter: export NAT definitions through linux/netfilter_ipv4/nf_nat.h 2011-11-01 09:19:52 +01:00
netfilter_ipv6
nfc
nfsd
pinctrl pinctrl: fix "warning: 'struct pinctrl_dev' declared inside parameter list" 2011-11-09 15:07:40 +01:00
platform_data drivers/leds/leds-renesas-tpu.c: move Renesas TPU LED driver platform data 2011-10-31 17:30:55 -07:00
power
raid
regulator Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
rtc
spi backlight: fix broken regulator API usage in l4f00242t03 2011-10-31 17:30:54 -07:00
ssb include: convert various register fcns to macros to avoid include chaining 2011-10-31 19:32:32 -04:00
sunrpc Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
tc_act
tc_ematch
unaligned
usb Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2011-10-31 15:42:54 -07:00
uwb include: convert various register fcns to macros to avoid include chaining 2011-10-31 19:32:32 -04:00
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: allocate kiocbs in batches 2011-11-02 16:07:03 -07:00
aio_abi.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
arcdevice.h
arcfb.h
async.h
async_tx.h
ata.h
ata_platform.h
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 mmc: atmel-mci: change namespace 2011-10-26 15:43:25 -04:00
atmel-pwm-bl.h
atmel-ssc.h
atmel_pdc.h mmc: atmel-mci: use ATMEL_PDC_SCND_BUF_OFF instead of a literal value 2011-10-26 15:43:26 -04:00
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 treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
auto_dev-ioctl.h
auto_fs.h
auto_fs4.h
auxvec.h
average.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h writeback: Add a 'reason' to wb_writeback_work 2011-10-31 00:33:36 +08:00
backlight.h
basic_mmio_gpio.h
baycom.h
bcd.h
bch.h
bfin_mac.h
bfs_fs.h
binfmts.h
bio.h bio: change some signed vars to unsigned 2011-11-16 09:21:50 +01:00
bit_spinlock.h
bitmap.h
bitops.h
bitrev.h
blk-iopoll.h
blk_types.h block: Remove the control of complete cpu from bio. 2011-10-24 16:11:30 +02:00
blkdev.h block: initialize request_queue's numa node during 2011-11-23 10:59:13 +01:00
blkpg.h
blktrace_api.h treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
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 can: remove references to berlios mailinglist 2011-10-17 19:22:46 -04:00
capability.h net: allow CAP_NET_RAW to set socket options IP{,V6}_TRANSPARENT 2011-10-20 18:21:36 -04:00
capi.h
cb710.h
cciss_defs.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h
cfag12864b.h
cgroup.h memcg: replace ss->id_lock with a rwlock 2011-11-02 16:07:03 -07:00
cgroup_subsys.h
cgroupstats.h
chio.h
circ_buf.h
cleancache.h
clk.h
clkdev.h ARM: 7131/1: clkdev: Add Common Macro for clk_lookup 2011-10-13 14:36:58 +01:00
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 mm: compaction: make compact_zone_order() static 2011-10-31 17:30:49 -07:00
compat.h asm-generic/unistd.h: support new process_vm_{readv,write} syscalls 2011-12-03 15:31:48 -05: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
console.h
console_struct.h
consolemap.h
const.h
cordic.h
coredump.h
cper.h
cpu.h PM / Sleep: Remove unused symbol 'suspend_cpu_hotplug' 2011-11-04 22:28:09 +01:00
cpu_pm.h
cpu_rmap.h
cpufreq.h
cpuidle.h Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2011-11-07 10:13:52 -08:00
cpumask.h
cpuset.h
cramfs_fs.h
cramfs_fs_sb.h
crash_dump.h [S390] kdump: Add size to elfcorehdr kernel parameter 2011-10-30 15:16:41 +01:00
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
cred.h
crypto.h Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
cryptohash.h
cryptouser.h crypto: Add userspace report for cipher type algorithms 2011-10-21 14:24:07 +02:00
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 apparmor dereferencing potentially freed dentry, sanitize __d_path() API 2011-12-06 23:57:18 -05:00
dcbnl.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
devfreq.h PM / devfreq: fix private_data 2011-11-07 23:54:53 +01:00
device-mapper.h dm table: add immutable feature 2011-10-31 20:19:04 +00:00
device.h Merge branch 'driver-core-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2011-11-21 20:36:26 -08:00
device_cgroup.h device_cgroup.h: delete needless include <linux/module.h> 2011-10-31 19:32:26 -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-ioctl.h dm table: add immutable feature 2011-10-31 20:19:04 +00:00
dm-kcopyd.h dm kcopyd: add dm_kcopyd_zero to zero an area 2011-10-31 20:18:58 +00:00
dm-log-userspace.h dm log userspace: add log device dependency 2011-10-31 20:21:24 +00:00
dm-region-hash.h
dm9000.h
dma-attrs.h
dma-debug.h
dma-direction.h
dma-mapping.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2011-11-06 17:12:03 -08:00
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 Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
dmapool.h
dmar.h include/linux/dmar.h: forward-declare struct acpi_dmar_header 2011-10-31 17:30:44 -07:00
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 treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
ecryptfs.h
edac.h edac: Move edac main structs to include/linux/edac.h 2011-10-31 15:10:04 -02:00
edd.h
eeprom_93cx6.h
eeprom_93xx46.h
efi.h
efs_fs_sb.h
efs_vh.h
eisa.h
elevator.h block: drop @tsk from attempt_plug_merge() and explain sync rules 2011-10-19 14:33:08 +02:00
elf-em.h
elf-fdpic.h
elf.h [S390] signal race with restarting system calls 2011-10-30 15:16:43 +01:00
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h bonding: comparing a u8 with -1 is always false 2011-11-04 18:37:23 -04:00
eventfd.h
eventpoll.h
evm.h
export.h module.h: split out the EXPORT_SYMBOL into export.h 2011-10-31 09:20:11 -04:00
exportfs.h
ext2_fs.h
ext2_fs_sb.h
ext3_fs.h Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 2011-11-02 10:06:20 -07: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 filter: use unsigned int to silence static checker warning 2011-10-19 19:35:51 -04:00
fips.h
firewire-cdev.h
firewire-constants.h
firewire.h
firmware-map.h
firmware.h include: replace linux/module.h with "struct module" wherever possible 2011-10-31 19:32:32 -04:00
flat.h
flex_array.h
font.h
freezer.h PM / Freezer: Reimplement wait_event_freezekillable using freezer_do_not_count/freezer_count 2011-11-04 22:28:15 +01:00
fs.h vmscan: use atomic-long for shrinker batching 2011-12-09 07:50:27 -08:00
fs_enet_pd.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fscache-cache.h treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
fscache.h
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsnotify.h
fsnotify_backend.h
ftrace.h include: replace linux/module.h with "struct module" wherever possible 2011-10-31 19:32:32 -04:00
ftrace_event.h tracing: Restore system filter behavior 2011-12-05 13:28:45 -05:00
ftrace_irq.h
fuse.h
futex.h
gameport.h Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
gcd.h
gen_stats.h
genalloc.h
generic_acl.h
generic_serial.h
genetlink.h
genhd.h block: Revert "[SCSI] genhd: add a new attribute "alias" in gendisk" 2011-11-10 09:03:55 +01:00
getcpu.h
gfp.h
gfs2_ondisk.h
gigaset_dev.h
gpio-fan.h
gpio-i2cmux.h
gpio.h gpiolib: Ensure struct gpio is always defined 2011-10-24 16:04:06 +02:00
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 include: convert various register fcns to macros to avoid include chaining 2011-10-31 19:32:32 -04: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 thp: mremap support and TLB optimization 2011-10-31 17:30:48 -07:00
hugetlb.h hugetlb: remove dummy definitions of HPAGE_MASK and HPAGE_SIZE 2011-11-19 06:15:59 -05:00
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h hwspinlock: Don't return a value in __hwspin_unlock 2011-11-08 09:28:27 +02:00
hyperv.h hv: remove struct hv_device_info from hyperv.h 2011-10-11 09:51:22 -06: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: OMAP: remove unused function pointers from pdata 2011-10-29 09:37:09 +01:00
i2c-pca-platform.h
i2c-pnx.h
i2c-pxa.h
i2c-smbus.h
i2c-tegra.h
i2c-xiic.h
i2c.h i2c: Delete ANY_I2C_BUS 2011-11-23 11:33:07 +01: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
idr.h
ieee80211.h
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 Merge branch 'master' of git://git.infradead.org/users/linville/wireless-next into for-davem 2011-10-11 15:35:42 -04:00
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h if_link: Add additional parameter to IFLA_VF_INFO for spoof checking 2011-10-16 13:15:38 -07:00
if_ltalk.h
if_macvlan.h macvtap: Fix the minor device number allocation 2011-10-21 02:53:07 -04:00
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_tr.h
if_tun.h
if_tunnel.h
if_vlan.h vlan: allow nested vlan_do_receive() 2011-10-30 04:43:30 -04:00
if_x25.h
igmp.h
ihex.h
ima.h
in.h
in6.h
in_route.h
inet.h
inet_diag.h net-netlink: Add a new attribute to expose TCLASS values via netlink 2011-11-14 01:08:49 -05:00
inet_lro.h
inetdevice.h
init.h
init_ohci1394_dma.h
init_task.h Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2011-12-05 16:50:24 -08:00
initrd.h
inotify.h
input-polldev.h
input.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound 2011-10-28 14:25:01 -07:00
integrity.h
intel-iommu.h Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2011-10-26 16:17:32 +02:00
intel_mid_dma.h
intel_pmic_gpio.h
interrupt.h genirq: Add IRQF_RESUME_EARLY and resume such IRQs earlier 2011-10-17 11:42:49 +02:00
io-mapping.h Merge branch 'drm-core-next' of git://people.freedesktop.org/~airlied/linux 2011-10-28 05:54:23 -07:00
io.h
ioc3.h
ioc4.h
iocontext.h
ioctl.h
iommu-helper.h
iommu.h Merge branches 'amd/fixes', 'debug/dma-api', 'arm/omap', 'arm/msm', 'core', 'iommu/fault-reporting' and 'api/iommu-ops-per-bus' into next 2011-10-21 14:38:55 +02:00
ioport.h
ioprio.h
iova.h
ip.h
ip6_tunnel.h
ip_vs.h
ipc.h
ipc_namespace.h
ipmi.h include: replace linux/module.h with "struct module" wherever possible 2011-10-31 19:32:32 -04:00
ipmi_msgdefs.h
ipmi_smi.h include: replace linux/module.h with "struct module" wherever possible 2011-10-31 19:32:32 -04:00
ipsec.h
ipv6.h
ipv6_route.h
ipx.h
irda.h
irq.h irq: don't put module.h into irq.h for tracking irqgen modules. 2011-10-31 19:32:35 -04:00
irq_cpustat.h
irq_work.h
irqdesc.h irq: don't put module.h into irq.h for tracking irqgen modules. 2011-10-31 19:32:35 -04:00
irqdomain.h irq: support domains with non-zero hwirq base 2011-10-31 14:03:23 +01:00
irqflags.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
iso_fs.h
istallion.h
ivtv.h
ivtvfb.h
ixjuser.h
jbd.h jdb/jbd2: factor out common functions from the jbd[2] header files 2011-10-27 04:38:18 -04:00
jbd2.h jdb/jbd2: factor out common functions from the jbd[2] header files 2011-10-27 04:38:18 -04:00
jbd_common.h jdb/jbd2: factor out common functions from the jbd[2] header files 2011-10-27 04:38:18 -04:00
jffs2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label.h jump-label: initialize jump-label subsystem much earlier 2011-10-25 11:55:15 -07:00
jz4740-adc.h
kallsyms.h treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
kbd_diacr.h
kbd_kern.h
Kbuild
kbuild.h
kconfig.h
kd.h
kdb.h treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
kdebug.h
kdev_t.h
kernel-page-flags.h
kernel.h module,bug: Add TAINT_OOT_MODULE flag for modules not built in-tree 2011-11-07 07:54:42 +10:30
kernel_stat.h
kernelcapi.h
kexec.h Merge branch 'akpm' (Andrew's incoming) 2011-10-31 17:46:07 -07:00
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 treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
kmsg_dump.h
kobj_map.h
kobject.h treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
kobject_ns.h
kprobes.h
kref.h
ks0108.h
ks8842.h
ksm.h
kthread.h treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
ktime.h
kvm.h Revert "KVM: PPC: Add support for explicit HIOR setting" 2011-11-17 16:30:25 +02:00
kvm_host.h
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 VFS: Fix race between CPU hotplug and lglocks 2011-12-22 02:02:20 -05:00
lguest.h
lguest_launcher.h
libata.h treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
libps2.h
license.h
limits.h
linkage.h
linux_logo.h
lis3lv02d.h lis3lv02d: make regulator API usage unconditional 2011-10-31 17:30:52 -07:00
list.h
list_bl.h
list_nulls.h
list_sort.h
llc.h
llist.h llist-return-whether-list-is-empty-before-adding-in-llist_add-fix 2011-10-31 17:30:57 -07:00
lockdep.h
log2.h linux/log2.h: Fix rounddown_pow_of_two(1) 2011-12-12 22:06:55 -08:00
loop.h Merge branch 'for-3.2/drivers' of git://git.kernel.dk/linux-block 2011-11-04 17:22:14 -07:00
lp.h
lru_cache.h
lsm_audit.h
lzo.h
m48t86.h
magic.h minix: describe usage of different magic numbers 2011-11-02 16:06:59 -07:00
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 include: replace linux/module.h with "struct module" wherever possible 2011-10-31 19:32:32 -04:00
mdio-gpio.h
mdio.h
media.h
memblock.h memblock: add memblock_start_of_DRAM() 2011-10-31 17:30:47 -07:00
memcontrol.h memcg: skip scanning active lists based on individual size 2011-11-02 16:07:00 -07:00
memory.h
memory_hotplug.h
mempolicy.h
mempool.h
memstick.h
meye.h
mg_disk.h
micrel_phy.h
migrate.h
mii.h
minix_fs.h
miscdevice.h miscdevice.h: fix up implicit use of lists and types 2011-10-31 19:32:29 -04:00
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm.h vmscan: use atomic-long for shrinker batching 2011-12-09 07:50:27 -08:00
mm_inline.h
mm_types.h mm: thp: tail page refcounting fix 2011-11-02 16:06:57 -07:00
mman.h
mmdebug.h
mmiotrace.h treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
mmtimer.h
mmu_context.h
mmu_notifier.h
mmzone.h mm: vmscan: immediately reclaim end-of-LRU dirty pages when writeback completes 2011-10-31 17:30:47 -07:00
mnt_namespace.h
mod_devicetable.h
module.h module.h: relocate MODULE_PARM_DESC into moduleparam.h 2011-10-31 09:20:11 -04:00
moduleloader.h
moduleparam.h module.h: relocate MODULE_PARM_DESC into moduleparam.h 2011-10-31 09:20:11 -04:00
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
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mxm-wmi.h
n_r3964.h
namei.h readlinkat: ensure we return ENOENT for the empty pathname for normal lookups 2011-11-02 12:53:42 +01:00
nbd.h
ncp.h
ncp_fs.h
ncp_mount.h
ncp_no.h
neighbour.h
net.h
net_dropmon.h
net_tstamp.h net: validate HWTSTAMP ioctl parameters 2011-10-19 17:00:35 -04:00
netdevice.h net: Fix corruption in /proc/*/net/dev_mcast 2011-11-28 18:07:29 -05:00
netfilter.h
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h Merge git://github.com/herbertx/crypto 2011-11-01 09:24:41 -07:00
netpoll.h
netrom.h
nfc.h
nfs.h
nfs2.h
nfs3.h
nfs4.h nfsd4: implement new 4.1 open reclaim types 2011-10-19 11:52:12 -04:00
nfs4_mount.h
nfs_fs.h nfs: when attempting to open a directory, fall back on normal lookup (try #5) 2011-11-04 16:39:04 -04:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_idmap.h
nfs_iostat.h
nfs_mount.h
nfs_page.h NFS: Don't rely on PageError in nfs_readpage_release_partial 2011-10-19 13:58:38 -07:00
nfs_xdr.h nfs: when attempting to open a directory, fall back on normal lookup (try #5) 2011-11-04 16:39:04 -04:00
nfsacl.h
nilfs2_fs.h
nl80211.h nl80211: Add sta_flags to the station info 2011-10-14 14:48:23 -04:00
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
nsc_gpio.h
nsproxy.h
nubus.h
numa.h
nvram.h
nwpserial.h
of.h Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
of_address.h
of_device.h
of_fdt.h
of_gpio.h
of_i2c.h
of_irq.h of/irq: introduce of_irq_init 2011-10-31 14:03:22 +01:00
of_mdio.h
of_net.h
of_pci.h
of_pdt.h
of_platform.h of_platform.h: delete needless include <linux/module.h> 2011-10-31 19:32:27 -04:00
of_spi.h
omap3isp.h
omapfb.h
oom.h oom: fix race while temporarily setting current's oom_score_adj 2011-10-31 17:30:45 -07:00
opp.h PM / OPP: Fix build when CONFIG_PM_OPP is not set 2011-11-04 22:28:13 +01:00
oprofile.h
oxu210hp.h
padata.h
page-debug-flags.h
page-flags.h
page-isolation.h
page_cgroup.h
pageblock-flags.h
pagemap.h
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: Fix compile errors with PCI_ATS and !PCI_IOV 2011-10-31 10:23:57 -07:00
pci-dma.h
pci.h PCI: Fix compile errors with PCI_ATS and !PCI_IOV 2011-10-31 10:23:57 -07:00
pci_hotplug.h include: convert various register fcns to macros to avoid include chaining 2011-10-31 19:32:32 -04:00
pci_ids.h x86, amd: Fix up numa_node information for AMD CPU family 15h model 0-0fh northbridge functions 2011-12-05 18:13:11 +01:00
pci_regs.h PCI: Add support for PASID capability 2011-10-14 09:05:35 -07:00
pcieport_if.h
pda_power.h
percpu-defs.h
percpu.h
percpu_counter.h
perf_event.h perf: Fix loss of notification with multi-event 2011-12-05 09:33:03 +01:00
personality.h
pfkeyv2.h
pfn.h
pg.h
phantom.h
phonedev.h
phonet.h
phy.h net: hold sock reference while processing tx timestamps 2011-10-24 02:54:50 -04:00
phy_fixed.h
pid.h
pid_namespace.h
pim.h
pipe_fs_i.h
pkt_cls.h
pkt_sched.h tc: comment spelling fixes 2011-11-22 16:37:01 -05:00
pktcdvd.h
platform_device.h Merge branch 'spi/next' of git://git.secretlab.ca/git/linux-2.6 2011-10-29 07:28:36 -07:00
plist.h
pm.h PM: Update comments describing device power management callbacks 2011-11-28 22:14:55 +01:00
pm_clock.h
pm_domain.h
pm_qos.h
pm_runtime.h PM Sleep: Do not extend wakeup paths to devices with ignore_children set 2011-11-17 21:39:33 +01:00
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
ppdev.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps-gpio.h pps: new client driver using GPIO 2011-11-02 16:07:02 -07:00
pps.h
pps_kernel.h
prctl.h
preempt.h
prefetch.h
printk.h treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
prio_heap.h
prio_tree.h
proc_fs.h
profile.h
proportions.h
pstore.h pstore: pass allocated memory region back to caller 2011-11-17 12:58:07 -08:00
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 treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
radeonfb.h
radix-tree.h
raid_class.h
ramfs.h
ramoops.h
random.h Merge branch 'x86-rdrand-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2011-10-28 05:29:07 -07:00
range.h
rar_register.h
ratelimit.h
rational.h
raw.h
rbtree.h
rculist.h
rculist_bl.h
rculist_nulls.h
rcupdate.h
rcutiny.h
rcutree.h
rds.h
reboot.h
reciprocal_div.h
regmap.h include: replace linux/module.h with "struct module" wherever possible 2011-10-31 19:32:32 -04:00
regset.h
reiserfs_acl.h
reiserfs_fs.h
reiserfs_fs_i.h
reiserfs_fs_sb.h
reiserfs_xattr.h
relay.h
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 RapidIO: add mport driver for Tsi721 bridge 2011-11-02 16:07:01 -07:00
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
rtnetlink.h
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
s3c_adc_battery.h
sc26198.h
scatterlist.h
scc.h
sched.h writeback: remove vm_dirties and task->dirties 2011-11-17 20:49:06 +08:00
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
sdla.h
seccomp.h
securebits.h
security.h
selection.h
selinux.h
selinux_netlink.h
sem.h include/linux/sem.h: make sysv_sem empty if SYSVIPC is disabled 2011-11-02 16:07:01 -07:00
semaphore.h
seq_file.h treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
seq_file_net.h
seqlock.h
serial.h RS485: fix inconsistencies in the meaning of some variables 2011-11-15 12:13:44 -08:00
serial167.h
serial_8250.h
serial_core.h
serial_max3100.h
serial_mfd.h
serial_pnx8xxx.h
serial_reg.h
serial_sci.h Merge branches 'sh/pm-runtime' and 'common/clkfwk' into sh-fixes-for-linus 2011-11-11 16:16:25 +09:00
serialP.h
serio.h include: convert various register fcns to macros to avoid include chaining 2011-10-31 19:32:32 -04:00
sfi.h
sfi_acpi.h
sh_clk.h sh: clkfwk: Kill off remaining debugfs cruft. 2011-11-11 16:11:41 +09:00
sh_dma.h
sh_eth.h
sh_intc.h
sh_pfc.h ARM: mach-shmobile: move helper macro PORTCR to sh_pfc.h 2011-11-11 16:45:35 +09:00
sh_timer.h
shm.h
shmem_fs.h
shrinker.h vmscan: use atomic-long for shrinker batching 2011-12-09 07:50:27 -08:00
sht15.h
sigma.h firmware: Sigma: Fix endianess issues 2011-11-29 11:59:50 +00:00
signal.h
signalfd.h
skbuff.h include: linux: skbuf.h: Fix parameter documentation 2011-11-01 00:55:48 -04:00
slab.h
slab_def.h
slob_def.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smsc911x.h
snmp.h
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
stackprotector.h
stacktrace.h
stallion.h
start_kernel.h
stat.h
statfs.h
stddef.h
stmmac.h
stop_machine.h stop_machine.h: fix implicit use of smp.h for smp_processor_id 2011-10-31 19:32:28 -04:00
string.h lib/string.c: introduce memchr_inv() 2011-10-31 17:30:47 -07:00
string_helpers.h
stringify.h
sungem_phy.h
superhyway.h
suspend.h PM / VT: Cleanup #if defined uglyness and fix compile error 2011-10-16 23:28:51 +02:00
suspend_ioctls.h
svga.h
swab.h
swap.h mm: change isolate mode from #define to bitwise type 2011-10-31 17:30:44 -07:00
swapops.h
swiotlb.h
synclink.h
sys.h
syscalls.h Cross Memory Attach 2011-10-31 17:30:44 -07:00
syscore_ops.h
sysctl.h sysctl: add support for poll() 2011-11-02 16:07:02 -07:00
sysdev.h sysdev.h: dont include <linux/module.h> for no reason 2011-10-31 19:32:24 -04:00
sysfs.h sysfs: Implement support for tagged files in sysfs. 2011-10-19 19:24:14 -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
telephony.h
termios.h
textsearch.h include: replace linux/module.h with "struct module" wherever possible 2011-10-31 19:32:32 -04:00
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
toshiba.h
tpm.h
tpm_command.h
trace_clock.h
trace_seq.h treewide: use __printf not __attribute__((format(printf,...))) 2011-10-31 17:30:54 -07:00
tracehook.h
tracepoint.h
transport_class.h
trdevice.h
tsacct_kern.h
tty.h Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty 2011-10-26 15:11:09 +02:00
tty_driver.h
tty_flip.h
tty_ldisc.h
typecheck.h
types.h
u64_stats_sync.h
uaccess.h
ucb1400.h
udf_fs_i.h
udp.h
uinput.h Input: force feedback - potential integer wrap in input_ff_create() 2011-10-12 21:13:11 -07:00
uio.h
uio_driver.h include: replace linux/module.h with "struct module" wherever possible 2011-10-31 19:32:32 -04:00
ultrasound.h
un.h
unistd.h
usb.h include: convert various register fcns to macros to avoid include chaining 2011-10-31 19:32:32 -04:00
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h
utime.h
uts.h
utsname.h sysctl: add support for poll() 2011-11-02 16:07:02 -07:00
uuid.h
uvcvideo.h
uwb.h uwb.h: fix implicit use of asm/page.h for PAGE_SIZE 2011-10-31 19:32:31 -04:00
v4l2-mediabus.h
v4l2-subdev.h
vermagic.h vermagic: delete unused include of <linux/module.h> 2011-10-31 19:32:23 -04:00
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 [media] v4l: Add AUTO option for the V4L2_CID_POWER_LINE_FREQUENCY control 2011-11-03 18:29:09 -02:00
virtio.h virtio.h: correct comment for struct virtio_driver 2011-11-02 11:40:59 +10:30
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_config.h virtio-pci: make reset operation safer 2011-11-24 13:04:48 +10:30
virtio_console.h
virtio_ids.h
virtio_mmio.h virtio-mmio: Correct the name of the guest features selector 2011-11-24 13:04:47 +10:30
virtio_net.h
virtio_pci.h
virtio_ring.h virtio: modify vring_init and vring_size to take account of the layout containing *_event_idx 2011-11-02 11:40:59 +10:30
virtio_rng.h
vlynq.h include: replace linux/module.h with "struct module" wherever possible 2011-10-31 19:32:32 -04:00
vm_event_item.h
vmalloc.h xen: map foreign pages for shared rings by updating the PTEs directly 2011-11-16 12:13:08 -05:00
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 writeback: Add a 'reason' to wb_writeback_work 2011-10-31 00:33:36 +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