android_kernel_xiaomi_sm8350/include/linux
Steven Rostedt ce6bd420f4 futex: fix for futex_wait signal stack corruption
David Holmes found a bug in the -rt tree with respect to
pthread_cond_timedwait. After trying his test program on the latest git
from mainline, I found the bug was there too.  The bug he was seeing
that his test program showed, was that if one were to do a "Ctrl-Z" on a
process that was in the pthread_cond_timedwait, and then did a "bg" on
that process, it would return with a "-ETIMEDOUT" but early. That is,
the timer would go off early.

Looking into this, I found the source of the problem. And it is a rather
nasty bug at that.

Here's the relevant code from kernel/futex.c: (not in order in the file)

[...]
smlinkage long sys_futex(u32 __user *uaddr, int op, u32 val,
                          struct timespec __user *utime, u32 __user *uaddr2,
                          u32 val3)
{
        struct timespec ts;
        ktime_t t, *tp = NULL;
        u32 val2 = 0;
        int cmd = op & FUTEX_CMD_MASK;

        if (utime && (cmd == FUTEX_WAIT || cmd == FUTEX_LOCK_PI)) {
                if (copy_from_user(&ts, utime, sizeof(ts)) != 0)
                        return -EFAULT;
                if (!timespec_valid(&ts))
                        return -EINVAL;

                t = timespec_to_ktime(ts);
                if (cmd == FUTEX_WAIT)
                        t = ktime_add(ktime_get(), t);
                tp = &t;
        }
[...]
        return do_futex(uaddr, op, val, tp, uaddr2, val2, val3);
}

[...]

long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout,
                u32 __user *uaddr2, u32 val2, u32 val3)
{
        int ret;
        int cmd = op & FUTEX_CMD_MASK;
        struct rw_semaphore *fshared = NULL;

        if (!(op & FUTEX_PRIVATE_FLAG))
                fshared = &current->mm->mmap_sem;

        switch (cmd) {
        case FUTEX_WAIT:
                ret = futex_wait(uaddr, fshared, val, timeout);

[...]

static int futex_wait(u32 __user *uaddr, struct rw_semaphore *fshared,
                      u32 val, ktime_t *abs_time)
{
[...]
               struct restart_block *restart;
                restart = &current_thread_info()->restart_block;
                restart->fn = futex_wait_restart;
                restart->arg0 = (unsigned long)uaddr;
                restart->arg1 = (unsigned long)val;
                restart->arg2 = (unsigned long)abs_time;
                restart->arg3 = 0;
                if (fshared)
                        restart->arg3 |= ARG3_SHARED;
                return -ERESTART_RESTARTBLOCK;
[...]

static long futex_wait_restart(struct restart_block *restart)
{
        u32 __user *uaddr = (u32 __user *)restart->arg0;
        u32 val = (u32)restart->arg1;
        ktime_t *abs_time = (ktime_t *)restart->arg2;
        struct rw_semaphore *fshared = NULL;

        restart->fn = do_no_restart_syscall;
        if (restart->arg3 & ARG3_SHARED)
                fshared = &current->mm->mmap_sem;
        return (long)futex_wait(uaddr, fshared, val, abs_time);
}

So when the futex_wait is interrupt by a signal we break out of the
hrtimer code and set up or return from signal. This code does not return
back to userspace, so we set up a RESTARTBLOCK.  The bug here is that we
save the "abs_time" which is a pointer to the stack variable "ktime_t t"
from sys_futex.

This returns and unwinds the stack before we get to call our signal. On
return from the signal we go to futex_wait_restart, where we update all
the parameters for futex_wait and call it. But here we have a problem
where abs_time is no longer valid.

I verified this with print statements, and sure enough, what abs_time
was set to ends up being garbage when we get to futex_wait_restart.

The solution I did to solve this (with input from Linus Torvalds)
was to add unions to the restart_block to allow system calls to
use the restart with specific parameters.  This way the futex code now
saves the time in a 64bit value in the restart block instead of storing
it on the stack.

Note: I'm a bit nervious to add "linux/types.h" and use u32 and u64
in thread_info.h, when there's a #ifdef __KERNEL__ just below that.
Not sure what that is there for.  If this turns out to be a problem, I've
tested this with using "unsigned int" for u32 and "unsigned long long" for
u64 and it worked just the same. I'm using u32 and u64 just to be
consistent with what the futex code uses.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-12-05 15:46:09 +01:00
..
amba
byteorder
dvb
hdlc
isdn
lockd
mlx4
mmc net: libertas sdio driver 2007-10-17 22:51:13 +02:00
mtd
netfilter [NETFILTER]: Sort matches/targets in Kbuild file 2007-11-07 04:08:21 -08:00
netfilter_arp
netfilter_bridge
netfilter_ipv4 [NETFILTER]: Sort matches/targets in Kbuild file 2007-11-07 04:08:21 -08:00
netfilter_ipv6 [NETFILTER]: Sort matches/targets in Kbuild file 2007-11-07 04:08:21 -08:00
nfsd
raid bitmap.h: remove dead artifacts 2007-10-17 08:43:03 -07:00
rtc
spi
ssb
sunrpc SUNRPC: make sunrpc/xprtsock.c:xs_setup_{udp,tcp}() static 2007-11-26 16:24:50 -05:00
tc_act
tc_ematch
usb
8250_pci.h
a.out.h
ac97_codec.h
acct.h
acpi_pmtmr.h
acpi.h ACPI: fix two IRQ8 issues in IOAPIC mode 2007-11-20 01:16:29 -05:00
adb.h
adfs_fs_i.h
adfs_fs_sb.h
adfs_fs.h
aer.h
affs_hardblocks.h
agp_backend.h
agpgart.h
aio_abi.h
aio.h Remove struct task_struct::io_wait 2007-10-18 14:37:20 -07:00
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm_bios.h Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
apm-emulation.h
arcdevice.h
arcfb.h
async_tx.h
ata.h libata: handle broken cable reporting 2007-11-05 18:10:28 -05:00
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_suni.h
atm_tcp.h
atm_zatm.h
atm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmel_pdc.h
atmel-ssc.h Driver for the Atmel on-chip SSC on AT32AP and AT91 2007-10-17 08:42:47 -07:00
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
attribute_container.h
audit.h [PATCH] audit: watching subtrees 2007-10-21 02:37:45 -04:00
auto_fs4.h
auto_fs.h
auxvec.h increase AT_VECTOR_SIZE to terminate saved_auxv properly 2007-10-17 08:43:00 -07:00
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h mm: per device dirty threshold 2007-10-17 08:42:45 -07:00
backlight.h
baycom.h
bcd.h
bfs_fs.h
binfmts.h Implement file posix capabilities 2007-10-17 08:43:07 -07:00
bio.h
bit_spinlock.h bit_spin_lock: use lock bitops 2007-10-18 14:37:29 -07:00
bitmap.h remove BITS_TO_TYPE macro 2007-10-19 11:53:42 -07:00
bitops.h remove BITS_TO_TYPE macro 2007-10-19 11:53:42 -07:00
bitrev.h
blkdev.h Add UNPLUG traces to all appropriate places 2007-11-09 13:41:32 +01:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bootmem.h Revert "x86_64: allocate sparsemem memmap above 4G" 2007-10-29 14:05:37 -07:00
bottom_half.h
bpqether.h
bsg.h
buffer_head.h
bug.h
cache.h
calc64.h
capability.h capabilities: clean up file capability reading 2007-10-22 08:13:18 -07:00
capi.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h Typo: depricated -> deprecated 2007-10-20 03:10:57 +02:00
cfag12864b.h
cgroup_subsys.h sched: cpu accounting controller (V2) 2007-12-02 20:04:49 +01:00
cgroup.h Add cgroupstats 2007-10-19 11:53:36 -07:00
cgroupstats.h Add cgroupstats 2007-10-19 11:53:36 -07:00
chio.h
circ_buf.h
clk.h
clockchips.h
clocksource.h Fix discrepancy between VDSO based gettimeofday() and sys_gettimeofday(). 2007-10-18 14:37:20 -07:00
cm4000_cs.h
cn_proc.h
coda_cache.h
coda_fs_i.h
coda_linux.h
coda_psdev.h
coda.h
coff.h
com20020.h
compat.h
compiler-gcc3.h Force erroneous inclusions of compiler-*.h files to be errors 2007-10-17 08:42:47 -07:00
compiler-gcc4.h Force erroneous inclusions of compiler-*.h files to be errors 2007-10-17 08:42:47 -07:00
compiler-gcc.h Replace __attribute_pure__ with __pure 2007-10-18 14:37:32 -07:00
compiler-intel.h Force erroneous inclusions of compiler-*.h files to be errors 2007-10-17 08:42:47 -07:00
compiler.h Permit silencing of __deprecated warnings. 2007-10-25 15:10:17 -07:00
completion.h sched: fix fastcall mismatch in completion APIs 2007-10-24 18:23:48 +02:00
comstats.h
concap.h
configfs.h
connector.h
console_struct.h
console.h serial: turn serial console suspend a boot rather than compile time option 2007-10-18 14:37:19 -07:00
consolemap.h unicode diacritics support 2007-10-17 08:42:52 -07:00
const.h
cpu.h Redefine {un}register_hotcpu_notifier() !HOTPLUG_CPU stubs 2007-10-18 14:37:28 -07:00
cpufreq.h
cpuidle.h cpuidle: fix HP nx6125 regression 2007-11-19 21:43:22 -05:00
cpumask.h
cpuset.h hotplug cpu: migrate a task within its cpuset 2007-10-19 11:53:44 -07:00
cramfs_fs_sb.h
cramfs_fs.h cramfs: error message about endianess 2007-10-17 08:42:53 -07:00
crash_dump.h
crc7.h
crc16.h
crc32.h
crc32c.h
crc-ccitt.h
crc-itu-t.h
crypto.h crypto: convert crypto.h to UTF-8 2007-10-19 23:07:36 +02:00
cryptohash.h
ctype.h
cuda.h
cyclades.h Char: cyclades, fix some -W warnings 2007-10-18 14:37:26 -07:00
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
dca.h
dcache.h [PATCH] audit: watching subtrees 2007-10-21 02:37:45 -04:00
dccp.h [DCCP]: Convert Reset code into socket error number 2007-10-24 10:27:48 -02:00
dcookies.h
debug_locks.h
debugfs.h
delay.h
delayacct.h Add cgroupstats 2007-10-19 11:53:36 -07:00
device-mapper.h dm: bounce_pfn limit added 2007-11-02 08:47:25 +01:00
device.h Revert "Driver core: remove class_device_*_bin_file" 2007-10-31 12:51:29 -07:00
devpts_fs.h
dio.h
dirent.h
display.h
dlm_device.h
dlm_netlink.h
dlm.h
dm9000.h
dm-ioctl.h dm io:ctl use constant struct size 2007-10-20 02:00:58 +01:00
dma-mapping.h stop using DMA_xxBIT_MASK 2007-10-18 14:37:21 -07:00
dmaengine.h
dmapool.h
dmar.h Intel IOMMU: DMAR fault handling support 2007-10-22 08:13:19 -07:00
dmi.h
dn.h
dnotify.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
ds1wm.h
ds1286.h
ds17287rtc.h
dtlk.h
edac.h
edd.h Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
eeprom_93cx6.h
efi.h kexec: add BSS to resource tree 2007-10-22 08:13:19 -07:00
efs_dir.h
efs_fs_i.h
efs_fs_sb.h
efs_fs.h efs: new export ops 2007-10-22 08:13:20 -07:00
efs_vh.h
eisa.h
elevator.h
elf-em.h
elf-fdpic.h
elf.h increase AT_VECTOR_SIZE to terminate saved_auxv properly 2007-10-17 08:43:00 -07:00
elfcore-compat.h Add linux/elfcore-compat.h 2007-10-17 08:42:51 -07:00
elfcore.h
elfnote.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h
eventfd.h
eventpoll.h x86 merge fallout: uml 2007-10-29 07:41:32 -07:00
exportfs.h exportfs: update documentation 2007-10-22 08:13:21 -07:00
ext2_fs_sb.h ext2 reservations 2007-10-17 08:43:02 -07:00
ext2_fs.h fix up ext2_fs.h for userspace after reservations backport 2007-11-29 09:24:53 -08:00
ext3_fs_i.h
ext3_fs_sb.h ext3: show all mount options 2007-10-17 08:42:48 -07:00
ext3_fs.h Fix 64KB blocksize in ext3 directories 2007-11-14 18:45:43 -08:00
ext3_jbd.h
ext4_fs_extents.h ext4: Convert ext4_extent_idx.ei_leaf to ext4_extent_idx.ei_leaf_lo 2007-10-17 18:50:03 -04:00
ext4_fs_i.h ext4: Remove (partial, never completed) fragment support 2007-10-17 18:49:59 -04:00
ext4_fs_sb.h ext4: Remove (partial, never completed) fragment support 2007-10-17 18:49:59 -04:00
ext4_fs.h ext4: Convert s_r_blocks_count and s_free_blocks_count 2007-10-17 18:50:02 -04:00
ext4_jbd2.h jbd2: JBD_XXX to JBD2_XXX naming cleanup 2007-10-17 18:49:58 -04:00
f75375s.h hwmon: (f75375s) Allow setting up fans with platform_data 2007-11-08 08:42:46 -05:00
fadvise.h
falloc.h
fault-inject.h
fb.h
fcdevice.h
fcntl.h F_DUPFD_CLOEXEC implementation 2007-10-17 08:43:01 -07:00
fd1772.h
fd.h
fddidevice.h
fdreg.h
fib_rules.h
file.h r/o bind mounts: filesystem helpers for custom 'struct file's 2007-10-17 08:43:04 -07:00
filter.h [NET]: Introduce the sk_detach_filter() call 2007-10-17 21:21:26 -07:00
firewire-cdev.h firewire: adopt read cycle timer ABI from raw1394 2007-10-17 00:00:08 +02:00
firewire-constants.h
firmware.h
flat.h
font.h
freezer.h freezer: introduce freezer-friendly waiting macros 2007-10-18 14:37:19 -07:00
fs_enet_pd.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fs.h exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
fsl_devices.h
fsnotify.h [PATCH] pass dentry to audit_inode()/audit_inode_child() 2007-10-21 02:37:18 -04:00
fuse.h fuse: pass open flags to read and write 2007-11-29 09:24:54 -08:00
futex.h kernel/futex.c: make 3 functions static 2007-11-05 21:53:46 +11:00
gameport.h
gen_stats.h
genalloc.h
generic_acl.h
generic_serial.h
genetlink.h
genhd.h
getcpu.h
gfp.h
gfs2_ondisk.h
gigaset_dev.h
gpio_keys.h
gpio_mouse.h
hardirq.h
harrier_defs.h
hash.h
hayesesp.h
hdlc.h
hdlcdrv.h
hdpu_features.h
hdreg.h
hdsmart.h
hid-debug.h
hid.h get rid of input BIT* duplicate defines 2007-10-19 11:53:42 -07:00
hiddev.h
hidraw.h
highmem.h
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h hrtimer: Rework hrtimer_nanosleep to make sys_compat_nanosleep easier 2007-10-18 22:54:18 +02:00
htirq.h
hugetlb.h hugetlb: fix i_blocks accounting 2007-11-14 18:45:40 -08:00
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hysdn_if.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-algo-sgi.h
i2c-dev.h
i2c-gpio.h
i2c-id.h
i2c-ocores.h
i2c-pnx.h
i2c-pxa.h
i2c.h i2c: Make i2c_check_addr static 2007-11-15 19:24:02 +01:00
i2o-dev.h
i2o.h
i8k.h
i8042.h Input: i8042 - export i8042_command() 2007-10-22 00:56:52 -04:00
ibmtr.h
icmp.h
icmpv6.h
ide.h ide: move ide_fixstring() documentation to ide-iops.c from ide.h 2007-11-05 21:42:29 +01:00
idr.h
ieee80211.h
if_addr.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 include linux/types.h in if_fddi.h 2007-10-17 08:42:52 -07:00
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h
if_ltalk.h
if_macvlan.h
if_packet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_shaper.h
if_slip.h
if_strip.h
if_tr.h
if_tun.h
if_tunnel.h
if_vlan.h
if_wanpipe.h
if.h
igmp.h
in6.h
in_route.h
in.h
inet_diag.h
inet_lro.h
inet.h
inetdevice.h
init_task.h Isolate the explicit usage of signal->pgrp 2007-10-19 11:53:43 -07:00
init.h store __setup_str_* in a more compact way 2007-10-17 08:42:56 -07:00
initrd.h
inotify.h [PATCH] new helper - inotify_evict_watch() 2007-10-21 02:37:38 -04:00
input-polldev.h
input.h Input: adds the context menu key (HUT GenDesc 0x84) 2007-11-27 00:47:04 -05:00
interrupt.h Completely remove deprecated IRQ flags (SA_*) 2007-10-17 08:43:00 -07:00
io.h
ioc3.h
ioc4.h
ioctl.h
ioport.h
ioprio.h
ip6_tunnel.h
ip.h
ipc.h virtualization of sysv msg queues is incomplete 2007-10-19 11:53:48 -07:00
ipmi_msgdefs.h
ipmi_smi.h IPMI: fix comparison in demangle_device_id 2007-10-30 08:06:55 -07:00
ipmi.h IPMI: add polled interface 2007-10-18 14:37:32 -07:00
ipsec.h
ipv6_route.h
ipv6.h
ipx.h
irda.h
irq_cpustat.h
irq.h
irqflags.h
irqreturn.h
isa.h
isapnp.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ivtv.h
ivtvfb.h
ixjuser.h
jbd2.h jbd2: JBD_XXX to JBD2_XXX naming cleanup 2007-10-17 18:49:58 -04:00
jbd.h jbd: config_jbd_debug cannot create /proc entry 2007-10-19 11:53:35 -07:00
jffs2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
kallsyms.h Missing include file in kallsyms.h 2007-11-05 15:12:32 -08:00
kbd_diacr.h unicode diacritics support 2007-10-17 08:42:52 -07:00
kbd_kern.h
Kbuild [TIPC]: Fix headercheck wrt. tipc_config.h 2007-10-30 21:44:00 -07:00
kd.h Fix <linux/kd.h> usage in userspace 2007-11-29 09:24:52 -08:00
kdebug.h
kdev_t.h
kernel_stat.h Add scaled time to taskstats based process accounting 2007-10-18 14:37:28 -07:00
kernel.h printk: add KERN_CONT annotation 2007-10-17 08:43:01 -07:00
kernelcapi.h
kexec.h Extended crashkernel command line 2007-10-19 11:53:49 -07:00
key-type.h KEYS: Make request_key() and co fundamentally asynchronous 2007-10-17 08:42:57 -07:00
key-ui.h
key.h KEYS: Make request_key() and co fundamentally asynchronous 2007-10-17 08:42:57 -07:00
keyboard.h Console keyboard events and accessibility 2007-10-19 11:53:33 -07:00
keyctl.h
kfifo.h
klist.h
kmalloc_sizes.h
kmod.h
kobj_map.h
kobject.h
kprobes.h
kref.h
ks0108.h
kthread.h
ktime.h
kvm_para.h
kvm.h
lapb.h
latency.h
lcd.h
leds.h
lguest_launcher.h lguest: documentation update 2007-10-25 15:02:50 +10:00
lguest.h lguest: documentation update 2007-10-25 15:02:50 +10:00
libata.h libata: workaround DRQ=1 ERR=1 for ATAPI tape drives 2007-11-19 12:28:11 +09:00
libps2.h
license.h
limits.h
linkage.h add WEAK() for creating weak asm labels 2007-10-22 08:13:17 -07:00
linux_logo.h
list.h kernel-api docbook: fix content problems 2007-10-19 11:53:35 -07:00
llc.h
lm_interface.h
lock_dlm_plock.h
lockdep.h workqueue: debug flushing deadlocks with lockdep 2007-10-19 11:53:38 -07:00
log2.h Add a "rounddown_pow_of_two" routine to log2.h 2007-10-17 08:42:56 -07:00
loop.h
lp.h
lzo.h
m41t00.h
m48t86.h
magic.h Task Control Groups: basic task cgroup framework 2007-10-19 11:53:36 -07:00
major.h
maple.h
marker.h Linux Kernel Markers - Samples 2007-10-19 11:53:55 -07:00
matroxfb.h
mbcache.h
mc6821.h
mc146818rtc.h rtc: fall back to requesting only the ports we actually use 2007-11-14 18:45:41 -08:00
mca-legacy.h
mca.h
mdio-bitbang.h
memory_hotplug.h
memory.h memory hotplug: make kmem_cache_node for SLUB on memory online avoid panic 2007-10-22 08:13:17 -07:00
mempolicy.h Task Control Groups: make cpusets a client of cgroups 2007-10-19 11:53:36 -07:00
mempool.h
meye.h
migrate.h
mii.h
minix_fs.h
miscdevice.h
mm_inline.h
mm_types.h increase AT_VECTOR_SIZE to terminate saved_auxv properly 2007-10-17 08:43:00 -07:00
mm.h Drop some headers from mm.h 2007-10-17 08:42:55 -07:00
mman.h
mmtimer.h
mmzone.h mm: test and set zone reclaim lock before starting reclaim 2007-10-17 08:42:46 -07:00
mnt_namespace.h
mod_devicetable.h Virtio interface 2007-10-23 15:49:54 +10:00
module.h Linux Kernel Markers 2007-10-19 11:53:54 -07:00
moduleloader.h
moduleparam.h constify string/array kparam tracking structures 2007-10-17 08:42:56 -07:00
mount.h
mpage.h
mqueue.h
mroute.h [IPV4]: Clean the ip_sockglue.c from some ugly ifdefs 2007-11-07 04:08:55 -08:00
msdos_fs.h
msg.h ipc: store ipcs into IDRs 2007-10-19 11:53:44 -07:00
msi.h
mtio.h
mutex-debug.h
mutex.h Mutex documentation is unclear about software interrupts, tasklets and timers 2007-10-17 08:42:57 -07:00
mv643xx_eth.h mv643xx_eth: Fix MV643XX_ETH offsets used by Pegasos 2 2007-10-30 14:32:16 -04:00
mv643xx.h mv643xx_eth: Move ethernet register definitions into private header 2007-10-23 08:23:00 -07:00
n_r3964.h
namei.h partially fix up the lookup_one_noperm mess 2007-10-17 08:42:44 -07:00
nbd.h NBD: allow hung network I/O to be cancelled 2007-10-17 08:42:55 -07:00
ncp_fs_i.h
ncp_fs_sb.h
ncp_fs.h
ncp_mount.h
ncp_no.h
ncp.h
neighbour.h
net.h [NET]: Add the helper kernel_sock_shutdown() 2007-11-12 18:10:39 -08:00
netdevice.h [NET]: docbook fixes for netif_ functions 2007-11-01 02:21:47 -07:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink.h [NETLINK]: Fix unicast timeouts 2007-11-07 04:15:12 -08:00
netpoll.h
netrom.h
nfs2.h
nfs3.h
nfs4_acl.h
nfs4_mount.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h NFS: make nfs_wb_page_priority() static 2007-11-26 16:24:48 -05:00
nfs_idmap.h
nfs_mount.h
nfs_page.h
nfs_xdr.h
nfs.h
nfsacl.h
nfsd_idmap.h
nl80211.h
nls.h add consts where appropriate in fs/nls/* 2007-10-17 08:42:58 -07:00
nmi.h
node.h
nodemask.h
notifier.h Console events and accessibility 2007-10-19 11:53:34 -07:00
nsc_gpio.h
nsproxy.h Make access to task's nsproxy lighter 2007-10-19 11:53:37 -07:00
nubus.h
numa.h
nvram.h
of_device.h [POWERPC] Move of_device allocation into of_device.[ch] 2007-10-17 22:30:07 +10:00
of_platform.h [SPARC/64]: Consolidate of_register_driver 2007-10-17 21:17:42 -07:00
of.h remove asm/bitops.h includes 2007-10-19 11:53:41 -07:00
oom.h oom: prevent including sched.h in header file 2007-10-17 08:42:46 -07:00
oprofile.h
page-flags.h
page-isolation.h
pageblock-flags.h
pagemap.h
pagevec.h
param.h
parport_pc.h
parport.h [PARPORT] Remove unused 'irq' argument from parport irq functions 2007-10-23 19:53:16 -04:00
parser.h
pata_platform.h
patchkey.h
pci_hotplug.h
pci_ids.h forcedeth: new mcp79 pci ids 2007-11-23 20:54:01 -05:00
pci_regs.h
pci-acpi.h
pci.h PCI: Add Kconfig option to disable deprecated pci_find_* API 2007-11-05 13:35:17 -08:00
pcieport_if.h
pda_power.h
percpu_counter.h lib: percpu_counter_init_irq 2007-10-17 08:42:44 -07:00
percpu.h
personality.h
pfkeyv2.h
pfn.h
pg.h
phantom.h Misc: phantom, improved data passing 2007-10-19 11:53:41 -07:00
phonedev.h
phy_fixed.h
phy.h PHY: Add the phy_device_release device method. 2007-12-04 15:06:33 -05:00
pid_namespace.h pidns: Place under CONFIG_EXPERIMENTAL 2007-11-14 18:45:43 -08:00
pid.h Uninline find_pid etc set of functions 2007-10-19 11:53:41 -07:00
pipe_fs_i.h
pkt_cls.h
pkt_sched.h
pktcdvd.h
platform_device.h
plist.h
pm_legacy.h
pm.h PM: Move definition of struct pm_ops to suspend.h 2007-10-18 14:37:18 -07:00
pmu.h
pnp.h PNP: increase the maximum number of resources 2007-11-29 09:24:52 -08:00
pnpbios.h
poison.h jbd2: JBD_XXX to JBD2_XXX naming cleanup 2007-10-17 18:49:58 -04:00
poll.h
posix_acl_xattr.h
posix_acl.h
posix_types.h
posix-timers.h
power_supply.h
ppdev.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
prctl.h
preempt.h
prefetch.h x86 & generic: change to __builtin_prefetch() 2007-10-19 20:35:04 +02:00
prio_heap.h Fix cpusets update_cpumask 2007-10-19 11:53:41 -07:00
prio_tree.h
proc_fs.h [NETNS]: Fix /proc/net breakage 2007-12-02 00:33:17 +11:00
profile.h make kernel/profile.c:time_hook static 2007-10-17 08:42:55 -07:00
proportions.h lib: floating proportions 2007-10-17 08:42:45 -07:00
ps2esdi.h
ptrace.h
qnx4_fs.h
qnxtypes.h
quicklist.h
quota.h quota: send messages via netlink 2007-10-17 08:42:56 -07:00
quotaio_v1.h
quotaio_v2.h
quotaops.h
radeonfb.h
radix-tree.h
raid_class.h
ramfs.h
random.h
raw.h
rbtree.h
rcupdate.h Immunize rcu_dereference() against crazy compiler writers 2007-10-17 08:42:46 -07:00
reboot.h
reciprocal_div.h
reiserfs_acl.h
reiserfs_fs_i.h
reiserfs_fs_sb.h reiserfs: remove first_zero_hint 2007-10-19 11:53:35 -07:00
reiserfs_fs.h reiserfs: new export ops 2007-10-22 08:13:20 -07:00
reiserfs_xattr.h
relay.h
resource.h
resume-trace.h
rfkill.h
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h
romfs_fs.h
root_dev.h
rose.h
route.h
rslib.h
rtc-v3020.h
rtc.h RTC: convert mutex to bitfield 2007-11-29 09:24:54 -08:00
rtmutex.h
rtnetlink.h [IPV6]: Add ifindex field to ND user option messages. 2007-11-12 17:58:35 -08:00
rwsem-spinlock.h
rwsem.h
rxrpc.h
sc26198.h
scatterlist.h scatterlist: add more safeguards 2007-11-27 09:30:39 +01:00
scc.h
sched.h sched: clean up, move __sched_text_start/end to sched.h 2007-11-28 15:52:56 +01:00
screen_info.h x86_64 EFI boot support: EFI frame buffer driver 2007-11-29 09:24:54 -08:00
sctp.h
scx200_gpio.h
scx200.h
sdla.h
seccomp.h
securebits.h
security.h fix up security_socket_getpeersec_* documentation 2007-10-20 00:53:30 +02:00
selection.h
selinux_netlink.h
selinux.h SELinux: return EOPNOTSUPP not ENOTSUPP 2007-11-17 10:38:16 +11:00
sem.h ipc: store ipcs into IDRs 2007-10-19 11:53:44 -07:00
seq_file.h Fix f_version type: should be u64 instead of unsigned long 2007-10-17 08:42:53 -07:00
seqlock.h
serial167.h
serial_8250.h
serial_core.h IP22ZILOG: fix lockup and sysrq 2007-11-29 09:24:53 -08:00
serial_pnx8xxx.h
serial_reg.h
serial.h
serialP.h
serio.h
shm.h ipc: store ipcs into IDRs 2007-10-19 11:53:44 -07:00
shmem_fs.h
signal.h
signalfd.h rename signalfd_siginfo fields 2007-10-17 08:43:01 -07:00
skbuff.h [SKBUFF]: Free old skb properly in skb_morph 2007-11-26 23:11:19 +08:00
slab_def.h
slab.h Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
slob_def.h
slub_def.h Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
sm501-regs.h
sm501.h
smb_fs_i.h
smb_fs_sb.h
smb_fs.h
smb_mount.h
smb.h
smbno.h
smp_lock.h
smp.h KVM: fix !SMP build error 2007-11-09 22:39:38 +01:00
snmp.h
socket.h [Bluetooth] Add constant for Bluetooth socket options level 2007-10-22 02:59:48 -07:00
sockios.h
som.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types_up.h
spinlock_types.h
spinlock_up.h
spinlock.h
splice.h
srcu.h
stacktrace.h
stallion.h
start_kernel.h
stat.h
statfs.h
stddef.h
stop_machine.h
string.h [TIPC]: Fix headercheck wrt. tipc_config.h 2007-10-30 21:44:00 -07:00
stringify.h
superhyway.h
suspend.h Hibernation: Check if ACPI is enabled during restore in the right place 2007-10-18 14:37:20 -07:00
svga.h
swap.h oom: move prototypes to appropriate header file 2007-10-17 08:42:45 -07:00
swapops.h
synclink.h
sys.h
syscalls.h
sysctl.h [S390] appldata: remove unused binary sysctls. 2007-11-20 11:13:45 +01:00
sysdev.h
sysfs.h
sysrq.h
sysv_fs.h
task_io_accounting_ops.h
task_io_accounting.h
taskstats_kern.h
taskstats.h add-scaled-time-to-taskstats-based-process-accounting fix 2007-10-18 14:37:28 -07:00
tc.h
tcp.h
telephony.h
termios.h
textsearch_fsm.h
textsearch.h
tfrc.h
thread_info.h futex: fix for futex_wait signal stack corruption 2007-12-05 15:46:09 +01:00
threads.h
ticable.h
tick.h
tifm.h
time.h kernel/time/timekeeping.c: cleanups 2007-10-17 08:42:53 -07:00
timer.h
timerfd.h
times.h
timex.h time: add ADJ_OFFSET_SS_READ 2007-11-26 20:42:19 +01:00
tiocl.h
tipc_config.h
tipc.h
topology.h
toshiba.h
transport_class.h
trdevice.h
tsacct_kern.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h [TTY]: Fix network driver interactions with TCGET/SET calls. 2007-11-07 04:14:19 -08:00
types.h fix abuses of ptrdiff_t 2007-10-29 07:41:33 -07:00
uaccess.h
udf_fs_i.h
udf_fs_sb.h
udf_fs.h
udp.h
ufs_fs.h ufs: move non-layout parts of ufs_fs.h to fs/ufs/ 2007-10-17 08:42:51 -07:00
uinput.h get rid of input BIT* duplicate defines 2007-10-19 11:53:42 -07:00
uio_driver.h
uio.h
ultrasound.h
un.h
unistd.h
unwind.h
usb_usual.h
usb.h USB: keep track of whether interface sysfs files exist 2007-11-28 13:58:35 -08:00
usbdevice_fs.h USB: Fix signr comment in usbdevice_fs.h 2007-11-28 13:58:34 -08:00
user_namespace.h
user.h
utime.h
uts.h
utsname.h
vermagic.h
vfs.h
via.h
video_decoder.h
video_encoder.h
video_output.h
videodev2.h V4L/DVB (6321): Remove obsolete VIDIOC_S/G_MPEGCOMP ioctls 2007-10-22 12:01:30 -02:00
videodev.h V4L/DVB (6320): v4l core: remove the unused .hardware V4L1 field 2007-10-22 12:01:24 -02:00
videotext.h
virtio_9p.h 9p: add virtio transport 2007-10-23 13:47:31 -05:00
virtio_blk.h Block driver using virtio. 2007-10-23 15:49:54 +10:00
virtio_config.h Virtio interface 2007-10-23 15:49:54 +10:00
virtio_console.h Virtio console driver 2007-10-23 15:49:55 +10:00
virtio_net.h Net driver using virtio 2007-10-23 15:49:54 +10:00
virtio_ring.h virtio: Force use of power-of-two for descriptor ring sizes 2007-11-12 13:59:40 +11:00
virtio.h Virtio interface 2007-10-23 15:49:54 +10:00
vmalloc.h
vmstat.h
vt_buffer.h
vt_kern.h add CONFIG_VT_UNICODE 2007-10-17 08:42:56 -07:00
vt.h Console events and accessibility 2007-10-19 11:53:34 -07:00
wait.h
wanrouter.h
watchdog.h
wireless.h
workqueue.h workqueue: debug flushing deadlocks with lockdep 2007-10-19 11:53:38 -07:00
writeback.h introduce I_SYNC 2007-10-17 08:43:02 -07:00
x25.h
xattr.h
xfrm.h
xilinxfb.h
yam.h
zconf.h
zlib.h
zorro_ids.h
zorro.h
zutil.h