kernel-fxtec-pro1x/include/linux
Michael Halcrow 88b4a07e66 [PATCH] eCryptfs: Public key transport mechanism
This is the transport code for public key functionality in eCryptfs.  It
manages encryption/decryption request queues with a transport mechanism.
Currently, netlink is the only implemented transport.

Each inode has a unique File Encryption Key (FEK).  Under passphrase, a File
Encryption Key Encryption Key (FEKEK) is generated from a salt/passphrase
combo on mount.  This FEKEK encrypts each FEK and writes it into the header of
each file using the packet format specified in RFC 2440.  This is all
symmetric key encryption, so it can all be done via the kernel crypto API.

These new patches introduce public key encryption of the FEK.  There is no
asymmetric key encryption support in the kernel crypto API, so eCryptfs pushes
the FEK encryption and decryption out to a userspace daemon.  After
considering our requirements and determining the complexity of using various
transport mechanisms, we settled on netlink for this communication.

eCryptfs stores authentication tokens into the kernel keyring.  These tokens
correlate with individual keys.  For passphrase mode of operation, the
authentication token contains the symmetric FEKEK.  For public key, the
authentication token contains a PKI type and an opaque data blob managed by
individual PKI modules in userspace.

Each user who opens a file under an eCryptfs partition mounted in public key
mode must be running a daemon.  That daemon has the user's credentials and has
access to all of the keys to which the user should have access.  The daemon,
when started, initializes the pluggable PKI modules available on the system
and registers itself with the eCryptfs kernel module.  Userspace utilities
register public key authentication tokens into the user session keyring.
These authentication tokens correlate key signatures with PKI modules and PKI
blobs.  The PKI blobs contain PKI-specific information necessary for the PKI
module to carry out asymmetric key encryption and decryption.

When the eCryptfs module parses the header of an existing file and finds a Tag
1 (Public Key) packet (see RFC 2440), it reads in the public key identifier
(signature).  The asymmetrically encrypted FEK is in the Tag 1 packet;
eCryptfs puts together a decrypt request packet containing the signature and
the encrypted FEK, then it passes it to the daemon registered for the
current->euid via a netlink unicast to the PID of the daemon, which was
registered at the time the daemon was started by the user.

The daemon actually just makes calls to libecryptfs, which implements request
packet parsing and manages PKI modules.  libecryptfs grabs the public key
authentication token for the given signature from the user session keyring.
This auth tok tells libecryptfs which PKI module should receive the request.
libecryptfs then makes a decrypt() call to the PKI module, and it passes along
the PKI block from the auth tok.  The PKI uses the blob to figure out how it
should decrypt the data passed to it; it performs the decryption and passes
the decrypted data back to libecryptfs.  libecryptfs then puts together a
reply packet with the decrypted FEK and passes that back to the eCryptfs
module.

The eCryptfs module manages these request callouts to userspace code via
message context structs.  The module maintains an array of message context
structs and places the elements of the array on two lists: a free and an
allocated list.  When eCryptfs wants to make a request, it moves a msg ctx
from the free list to the allocated list, sets its state to pending, and fires
off the message to the user's registered daemon.

When eCryptfs receives a netlink message (via the callback), it correlates the
msg ctx struct in the alloc list with the data in the message itself.  The
msg->index contains the offset of the array of msg ctx structs.  It verifies
that the registered daemon PID is the same as the PID of the process that sent
the message.  It also validates a sequence number between the received packet
and the msg ctx.  Then, it copies the contents of the message (the reply
packet) into the msg ctx struct, sets the state in the msg ctx to done, and
wakes up the process that was sleeping while waiting for the reply.

The sleeping process was whatever was performing the sys_open().  This process
originally called ecryptfs_send_message(); it is now in
ecryptfs_wait_for_response().  When it wakes up and sees that the msg ctx
state was set to done, it returns a pointer to the message contents (the reply
packet) and returns.  If all went well, this packet contains the decrypted
FEK, which is then copied into the crypt_stat struct, and life continues as
normal.

The case for creation of a new file is very similar, only instead of a decrypt
request, eCryptfs sends out an encrypt request.

> - We have a great clod of key mangement code in-kernel.  Why is that
>   not suitable (or growable) for public key management?

eCryptfs uses Howells' keyring to store persistent key data and PKI state
information.  It defers public key cryptographic transformations to userspace
code.  The userspace data manipulation request really is orthogonal to key
management in and of itself.  What eCryptfs basically needs is a secure way to
communicate with a particular daemon for a particular task doing a syscall,
based on the UID.  Nothing running under another UID should be able to access
that channel of communication.

> - Is it appropriate that new infrastructure for public key
> management be private to a particular fs?

The messaging.c file contains a lot of code that, perhaps, could be extracted
into a separate kernel service.  In essence, this would be a sort of
request/reply mechanism that would involve a userspace daemon.  I am not aware
of anything that does quite what eCryptfs does, so I was not aware of any
existing tools to do just what we wanted.

>   What happens if one of these daemons exits without sending a quit
>   message?

There is a stale uid<->pid association in the hash table for that user.  When
the user registers a new daemon, eCryptfs cleans up the old association and
generates a new one.  See ecryptfs_process_helo().

> - _why_ does it use netlink?

Netlink provides the transport mechanism that would minimize the complexity of
the implementation, given that we can have multiple daemons (one per user).  I
explored the possibility of using relayfs, but that would involve having to
introduce control channels and a protocol for creating and tearing down
channels for the daemons.  We do not have to worry about any of that with
netlink.

Signed-off-by: Michael Halcrow <mhalcrow@us.ibm.com>
Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-12 09:48:36 -08:00
..
amba
byteorder [PATCH] cleanup linux/byteorder/swabb.h 2007-02-11 10:51:34 -08:00
dvb
hdlc
isdn
lockd [PATCH] lockd endianness annotations 2006-12-13 09:05:52 -08:00
mmc mmc: Allow host drivers to specify max block count 2007-02-04 20:54:10 +01:00
mtd [MTD] OneNAND: Implement read-while-load 2007-01-10 14:58:42 +02:00
netfilter [NETFILTER]: add IPv6-capable TCPMSS target 2007-02-08 12:39:16 -08:00
netfilter_arp [NETFILTER]: arp_tables: fix userspace compilation 2007-01-09 14:33:11 -08:00
netfilter_bridge [EBTABLES]: Split ebt_replace into user and kernel variants, annotate. 2006-12-02 21:32:05 -08:00
netfilter_ipv4 [NETFILTER]: ip_tables: remove declaration of non-existant ipt_find_target function 2007-02-08 12:39:22 -08:00
netfilter_ipv6 [NETFILTER]: ip6_tables: remove redundant structure definitions 2007-02-08 12:39:23 -08:00
nfsd [PATCH] include/linux/nfsd/const.h: remove NFS_SUPER_MAGIC 2007-02-12 09:48:36 -08:00
raid [PATCH] md: avoid possible BUG_ON in md bitmap handling 2007-02-09 09:25:47 -08:00
spi [PATCH] SPI eeprom driver 2007-02-12 09:48:31 -08:00
sunrpc [PATCH] knfsd: SUNRPC: support IPv6 addresses in RPC server's UDP receive path 2007-02-12 09:48:36 -08:00
tc_act
tc_ematch
usb USB serial: add dynamic id support to usb-serial core 2007-02-07 15:44:33 -08:00
8250_pci.h
a.out.h
ac97_codec.h
acct.h [PATCH] severing module.h->sched.h 2006-12-04 02:00:22 -05:00
acpi.h ACPICA: Remove duplicate table definitions (non-conflicting), cont 2007-02-02 21:14:29 -05:00
adb.h
adfs_fs.h
adfs_fs_i.h
adfs_fs_sb.h
aer.h
affs_hardblocks.h
agp_backend.h
agpgart.h
aio.h [PATCH] optimize o_direct on block devices 2006-12-13 09:05:50 -08:00
aio_abi.h
amifd.h
amifdreg.h
amigaffs.h
apm-emulation.h [APM] Add shared version of APM emulation 2007-02-09 17:08:57 +00:00
apm_bios.h
arcdevice.h
arcfb.h
ata.h ata: Add defines for the iordy bits 2007-02-09 17:39:39 -05:00
atalk.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 [ATM]: atmarp.h needs to always include linux/types.h 2007-02-08 16:01:09 -08:00
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
attribute_container.h
audit.h audit: Add auditing to ipsec 2006-12-06 20:14:22 -08:00
auto_fs.h
auto_fs4.h
auxvec.h
awe_voice.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h
backlight.h ACPI: video: Add dev argument for backlight_device_register 2006-12-20 01:42:19 -05:00
baycom.h
bcd.h
bfs_fs.h
binfmts.h
bio.h [PATCH] optimize o_direct on block devices 2006-12-13 09:05:50 -08:00
bit_spinlock.h
bitmap.h
bitops.h [PATCH] fix various kernel-doc in header files 2007-01-26 13:51:00 -08:00
bitrev.h [PATCH] bit reverse library 2006-12-08 08:28:39 -08:00
blkdev.h cfq-iosched: remove cfq_io_context last_queue 2007-02-11 23:14:44 +01:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bootmem.h [PATCH] remove HASH_HIGHMEM 2006-12-07 08:39:37 -08:00
bottom_half.h [PATCH] add bottom_half.h 2006-12-07 08:39:20 -08:00
bpqether.h
buffer_head.h [PATCH] warning fix: unsigned->signed 2007-02-12 09:48:29 -08:00
bug.h [PATCH] Generic BUG implementation 2006-12-08 08:28:39 -08:00
cache.h
calc64.h
capability.h
capi.h
cciss_ioctl.h [PATCH] cciss: add support for 1024 logical volumes 2006-12-07 08:39:30 -08:00
cd1400.h
cdev.h [PATCH] cdev.h: forward declarations 2007-01-30 08:26:45 -08:00
cdk.h
cdrom.h
cfag12864b.h [PATCH] drivers: add LCD support 2007-02-11 10:51:24 -08:00
chio.h
circ_buf.h
clk.h
clocksource.h [PATCH] clocksource: small cleanup 2006-12-10 09:57:22 -08:00
cm4000_cs.h
cn_proc.h
cobalt-nvram.h
coda.h
coda_cache.h
coda_fs_i.h
coda_linux.h [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
coda_proc.h
coda_psdev.h
coff.h
com20020.h
compat.h
compat_ioctl.h
compiler-gcc.h [PATCH] extend the set of "__attribute__" shortcut macros 2007-02-11 10:51:35 -08:00
compiler-gcc3.h
compiler-gcc4.h
compiler-intel.h
compiler.h include/linux/compiler.h: reject gcc 3 < gcc 3.2 2006-12-12 19:28:50 +01:00
completion.h
comstats.h
concap.h
configfs.h configfs.h: Remove dead macro definitions. 2006-12-12 20:05:50 +01:00
connector.h [CONNECTOR]: Replace delayed work with usual work queue. 2006-12-18 01:53:58 -08:00
console.h [PATCH] drivers/char/vc_screen.c: proper prototypes 2007-02-11 10:51:27 -08:00
console_struct.h [PATCH] vt: refactor console SAK processing 2007-02-11 10:51:24 -08:00
consolemap.h
cpu.h Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-12-07 08:59:11 -08:00
cpufreq.h
cpumask.h
cpuset.h [PATCH] cpuset procfs warning fix 2006-12-30 10:56:43 -08:00
cramfs_fs.h
cramfs_fs_sb.h
crash_dump.h
crc-ccitt.h
crc16.h
crc32.h [PATCH] crc32: replace bitreverse by bitrev32 2006-12-08 08:28:39 -08:00
crc32c.h
crypto.h [CRYPTO] api: Use structs for cipher/compression 2007-02-07 09:21:02 +11:00
cryptohash.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
dcache.h
dccp.h [DCCP]: Whitespace cleanups 2006-12-11 14:35:00 -08:00
dcookies.h
debug_locks.h [PATCH] lock debugging: fix DEBUG_LOCKS_WARN_ON() & debug_locks_silent 2006-12-22 08:55:48 -08:00
debugfs.h
delay.h
delayacct.h [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
device-mapper.h [PATCH] dm: suspend: add noflush pushback 2006-12-08 08:29:09 -08:00
device.h devres: device resource management 2007-02-09 17:39:36 -05:00
devpts_fs.h
dio.h
dirent.h
dlm.h
dlm_device.h
dm-ioctl.h [PATCH] dm: ioctl: add noflush suspend 2006-12-08 08:29:09 -08:00
dm9000.h
dma-mapping.h devres: device resource management 2007-02-09 17:39:36 -05:00
dmaengine.h
dmapool.h devres: device resource management 2007-02-09 17:39:36 -05:00
dmi.h
dn.h [PATCH] fix misannotation of linkinfo_dn 2007-02-11 11:18:07 -08:00
dnotify.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
ds1286.h
ds1742rtc.h
ds17287rtc.h
dtlk.h
edd.h
efi.h [PATCH] efi_set_rtc_mmss() is not __init 2007-02-01 16:17:06 -08:00
efs_dir.h
efs_fs.h
efs_fs_i.h
efs_fs_sb.h
efs_vh.h
eisa.h [EISA] EISA registration with !CONFIG_EISA 2007-02-09 16:23:18 +00:00
elevator.h [PATCH] cfq-iosched: don't allow sync merges across queues 2006-12-20 11:04:12 +01:00
elf-em.h
elf-fdpic.h
elf.h [PATCH] elf.h: forward declare struct file 2006-12-07 08:39:48 -08:00
elfcore.h
elfnote.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h
eventpoll.h
ext2_fs.h
ext2_fs_sb.h
ext3_fs.h
ext3_fs_i.h
ext3_fs_sb.h
ext3_jbd.h [PATCH] ext3: uninline large functions 2006-12-07 08:39:35 -08:00
ext4_fs.h
ext4_fs_extents.h
ext4_fs_i.h
ext4_fs_sb.h
ext4_jbd2.h [PATCH] ext4: uninline large functions 2006-12-07 08:39:35 -08:00
fadvise.h
fault-inject.h [PATCH] fault-injection: defaults likely to please a new user 2006-12-08 08:29:03 -08:00
fb.h [PATCH] fbdev: remove references to non-existent fbmon_valid_timings() 2006-12-13 09:05:55 -08:00
fcdevice.h
fcntl.h
fd.h
fd1772.h
fddidevice.h
fdreg.h
fib_rules.h
file.h [PATCH] fdtable: Provide free_fdtable() wrapper 2006-12-22 08:55:50 -08:00
filter.h
firmware.h
flat.h
font.h
freezer.h [PATCH] PM: Fix SMP races in the freezer 2006-12-13 09:05:49 -08:00
fs.h [PATCH] move remove_dquot_ref to dqout.c 2007-02-12 09:48:28 -08:00
fs_enet_pd.h
fs_stack.h [PATCH] fsstack: Introduce fsstack_copy_{attr,inode}_* 2006-12-08 08:28:40 -08:00
fs_struct.h [PATCH] Move fs_cachep to linux/fs_struct.h 2006-12-07 08:39:23 -08:00
fs_uart_pd.h
fsl_devices.h [PPC] Fix compile failure do to introduction of PHY_POLL 2006-12-10 23:26:16 -06:00
fsnotify.h [PATCH] VFS: change struct file to use struct path 2006-12-08 08:28:41 -08:00
fuse.h [PATCH] fuse: add DESTROY operation 2006-12-07 08:39:32 -08:00
futex.h [PATCH] Fix noise in futex.h 2006-12-10 09:55:41 -08:00
gameport.h [PATCH] Fix numerous kcalloc() calls, convert to kzalloc() 2006-12-13 09:05:52 -08:00
gen_stats.h
genalloc.h
generic_acl.h
generic_serial.h [PATCH] tty: switch to ktermios 2006-12-08 08:28:57 -08:00
genetlink.h [GENETLINK]: Move command capabilities to flags. 2006-12-06 18:38:41 -08:00
genhd.h Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2007-02-11 11:37:45 -08:00
getcpu.h
gfp.h [PATCH] optional ZONE_DMA: optional ZONE_DMA in the VM 2007-02-11 10:51:18 -08:00
gfs2_ondisk.h
gigaset_dev.h [PATCH] drivers/isdn/gigaset: new M101 driver (v2) 2007-02-12 09:48:30 -08:00
hardirq.h
harrier_defs.h
hash.h
hayesesp.h
hdlc.h
hdlcdrv.h
hdpu_features.h
hdreg.h [PATCH] use __u8 rather than u8 in userspace SIZE defines in hdreg.h 2007-01-30 08:26:45 -08:00
hdsmart.h
hid-debug.h HID: hid debug from hid-debug.h to hid layer 2007-02-05 10:00:38 +01:00
hid.h USB: ps3 controller hid quirk 2007-02-07 15:44:36 -08:00
hiddev.h
highmem.h [ARM] pass vma for flush_anon_page() 2007-01-08 19:49:54 +00:00
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h
htirq.h
hugetlb.h [PATCH] shared page table for hugetlb page 2006-12-07 08:39:21 -08:00
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hysdn_if.h
i2c-algo-bit.h i2c: Discard the i2c algo del_bus wrappers 2006-12-10 21:21:33 +01:00
i2c-algo-pca.h i2c: Discard the i2c algo del_bus wrappers 2006-12-10 21:21:33 +01:00
i2c-algo-pcf.h i2c: Discard the i2c algo del_bus wrappers 2006-12-10 21:21:33 +01:00
i2c-algo-sgi.h i2c: Discard the i2c algo del_bus wrappers 2006-12-10 21:21:33 +01:00
i2c-dev.h
i2c-id.h [ALSA] ASoC codecs: WM8750 support 2007-02-09 09:00:22 +01:00
i2c-isa.h
i2c-ocores.h
i2c-pnx.h i2c: New Philips PNX bus driver 2006-12-10 21:21:29 +01:00
i2c-pxa.h
i2c.h i2c: Whitespace cleanups 2006-12-10 21:21:31 +01:00
i2o-dev.h [PATCH] use __u8/__u32 in userspace ioctl defines for I2O 2007-01-30 08:26:45 -08:00
i2o.h [PATCH] kernel-doc: fix fusion and i2o docs 2006-12-07 08:39:40 -08:00
i8k.h
ibmtr.h
icmp.h
icmpv6.h
ide.h Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6 2007-02-07 19:32:36 -08:00
idr.h
if.h
if_addr.h [NETLINK]: Put {IFA,IFLA}_{RTA,PAYLOAD} macros back for userspace. 2006-12-08 17:19:33 -08:00
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 [PATCH] mips: if_fddi.h: Add a missing inclusion 2006-12-22 08:55:50 -08:00
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h [NETLINK]: Put {IFA,IFLA}_{RTA,PAYLOAD} macros back for userspace. 2006-12-08 17:19:33 -08:00
if_ltalk.h
if_packet.h [PACKET]: Add optional checksum computation for recvmsg 2007-02-08 12:38:46 -08:00
if_plip.h
if_ppp.h
if_pppox.h
if_shaper.h
if_slip.h
if_strip.h
if_tr.h
if_tun.h
if_tunnel.h [IP] TUNNEL: Fix to be built with user application. 2007-01-23 22:17:23 -08:00
if_vlan.h
if_wanpipe.h
if_wanpipe_common.h
igmp.h [PATCH] severing skbuff.h -> mm.h 2006-12-04 02:00:34 -05:00
in.h
in6.h
in_route.h
inet.h [NET]: Accept wildcard delimiters in in[46]_pton 2006-12-02 22:04:04 -08:00
inet_diag.h
inetdevice.h
init.h [PATCH] Numerous fixes to kernel-doc info in source files. 2007-02-11 10:51:32 -08:00
init_task.h [PATCH] tty: update the tty layer to work with struct pid 2007-02-12 09:48:32 -08:00
initrd.h
inotify.h
input.h input/hid: Supporting more keys from the HUT Consumer Page 2006-12-14 13:37:24 +01:00
interrupt.h devres: device resource management 2007-02-09 17:39:36 -05:00
io.h [PATCH] sort the devres mess out 2007-02-11 11:18:07 -08:00
ioc3.h
ioc4.h
ioctl.h
ioctl32.h
ioport.h devres: device resource management 2007-02-09 17:39:36 -05:00
ioprio.h
ip.h
ip6_tunnel.h
ip_mp_alg.h
ipc.h
ipmi.h [PATCH] IPMI: Add maintenance mode 2006-12-07 08:39:47 -08:00
ipmi_msgdefs.h [PATCH] IPMI: Fix BT long busy 2006-12-07 08:39:47 -08:00
ipmi_smi.h [PATCH] IPMI: Add maintenance mode 2006-12-07 08:39:47 -08:00
ipsec.h
ipv6.h
ipv6_route.h
ipx.h
irda.h
irq.h msi: Kill the msi_desc array. 2007-02-07 15:50:08 -08:00
irq_cpustat.h
irqflags.h
irqreturn.h
isa.h
isapnp.h
isdn.h [PATCH] tty: switch to ktermios 2006-12-08 08:28:57 -08:00
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
iso_fs.h
istallion.h [PATCH] Char: istallion, variables cleanup 2006-12-08 08:29:00 -08:00
ixjuser.h
jbd.h [PATCH] make fs/jbd/transaction.c:__journal_temp_unlink_buffer() static 2006-12-07 08:39:40 -08:00
jbd2.h [PATCH] make fs/jbd2/transaction.c:__kbd2_journal_temp_unlink_buffer() static 2006-12-07 08:39:40 -08:00
jffs.h
jffs2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
Kbuild [PATCH] export ufs_fs.h to userspace 2007-02-12 09:48:30 -08:00
kd.h
kdev_t.h
kernel.h [PATCH] pid: make session_of_pgrp use struct pid instead of pid_t 2007-02-12 09:48:31 -08:00
kernel_stat.h
kernelcapi.h [PATCH] fix fallout from header dependency trimming 2006-12-04 12:45:29 -08:00
kexec.h Merge branch 'release' of master.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6 2006-12-07 15:39:22 -08:00
key-ui.h
key.h
keyboard.h
keyctl.h
kfifo.h [PATCH] Numerous fixes to kernel-doc info in source files. 2007-02-11 10:51:32 -08:00
klist.h
kmalloc_sizes.h
kmod.h
kobj_map.h
kobject.h sysfs: Shadow directory support 2007-02-07 10:37:14 -08:00
kprobes.h [PATCH] kprobes: enable booster on the preemptible kernel 2006-12-07 08:39:38 -08:00
kref.h
ks0108.h [PATCH] drivers: add LCD support 2007-02-11 10:51:24 -08:00
kthread.h
ktime.h [PATCH] Numerous fixes to kernel-doc info in source files. 2007-02-11 10:51:32 -08:00
kvm.h [PATCH] KVM: SVM: Propagate cpu shutdown events to userspace 2007-01-26 13:50:57 -08:00
lapb.h
latency.h
lcd.h
leds.h
libata.h libata: kill ATA_ENABLE_PATA 2007-02-09 17:39:40 -05:00
libps2.h
license.h
limits.h
linkage.h
linux_logo.h
list.h [PATCH] Numerous fixes to kernel-doc info in source files. 2007-02-11 10:51:32 -08:00
llc.h
lm_interface.h
lock_dlm_plock.h
lockdep.h [PATCH] lockdep: forward declare struct task_struct 2007-02-12 09:48:29 -08:00
log2.h [POWERPC] Add "is_power_of_2" checking to log2.h. 2007-02-07 14:03:19 +11:00
loop.h
lp.h
m41t00.h
m48t86.h
magic.h [PATCH] Minix V3 support 2007-02-12 09:48:31 -08:00
major.h
matroxfb.h
mbcache.h
mc6821.h
mc146818rtc.h [PATCH] RTC framework driver for CMOS RTCs 2007-02-11 10:51:32 -08:00
mca-legacy.h
mca.h
memory.h
memory_hotplug.h
mempolicy.h
mempool.h
meye.h
migrate.h
mii.h
minix_fs.h [PATCH] Minix V3 support 2007-02-12 09:48:31 -08:00
miscdevice.h
mm.h [PATCH] Add NOPFN_REFAULT result from vm_ops->nopfn() 2007-02-12 09:48:27 -08:00
mm_inline.h [PATCH] Use ZVC for inactive and active counts 2007-02-11 10:51:17 -08:00
mm_types.h
mman.h
mmtimer.h
mmzone.h [PATCH] optional ZONE_DMA: optional ZONE_DMA in the VM 2007-02-11 10:51:18 -08:00
mnt_namespace.h [PATCH] rename struct namespace to struct mnt_namespace 2006-12-08 08:28:51 -08:00
mod_devicetable.h
module.h /sys/modules/*/holders 2007-02-07 10:37:12 -08:00
moduleloader.h
moduleparam.h [PATCH] Compile-time check re world-writeable module params 2006-12-07 08:39:34 -08:00
mount.h [PATCH] struct vfsmount: keep mnt_count & mnt_expiry_mark away from mnt_flags 2007-02-11 10:51:25 -08:00
mpage.h
mqueue.h
mroute.h
msdos_fs.h
msg.h [PATCH] Fix the size limit of compat space msgsize 2006-12-07 08:39:38 -08:00
msi.h msi: Make MSI useable more architectures 2007-02-07 15:50:08 -08:00
mtio.h more ftape removal 2007-01-23 00:34:54 -05:00
mutex-debug.h
mutex.h [PATCH] fix various kernel-doc in header files 2007-01-26 13:51:00 -08:00
mv643xx.h
n_r3964.h [PATCH] n_r3964: Use struct pid to track user space clients 2006-12-13 09:05:53 -08:00
namei.h [PATCH] struct path: move struct path from fs/namei.c into include/linux 2006-12-08 08:28:40 -08:00
nbd.h [PATCH] nbd: show nbd client pid in sysfs 2006-12-07 08:39:47 -08:00
ncp.h
ncp_fs.h
ncp_fs_i.h
ncp_fs_sb.h
ncp_mount.h [PATCH] ncpfs: Use struct pid to track the userspace watchdog process 2006-12-13 09:05:53 -08:00
ncp_no.h
neighbour.h
net.h [S390]: Add AF_IUCV socket support 2007-02-08 13:51:54 -08:00
netdevice.h [NET]: unregister_netdevice as void 2007-02-08 12:39:06 -08:00
netfilter.h [PATCH] fix fallout from header dependency trimming 2006-12-04 12:45:29 -08:00
netfilter_arp.h
netfilter_bridge.h [NETFILTER]: bridge-netfilter: remove deferred hooks 2006-12-13 16:54:25 -08:00
netfilter_decnet.h
netfilter_ipv4.h [NETFILTER]: bridge-netfilter: remove deferred hooks 2006-12-13 16:54:25 -08:00
netfilter_ipv6.h [NETFILTER]: bridge-netfilter: remove deferred hooks 2006-12-13 16:54:25 -08:00
netlink.h [PATCH] eCryptfs: Public key transport mechanism 2007-02-12 09:48:36 -08:00
netpoll.h WorkQueue: Fix up arch-specific work items where possible 2006-12-05 19:36:26 +00:00
netrom.h
nfs.h
nfs2.h
nfs3.h
nfs4.h
nfs4_acl.h
nfs4_mount.h
nfs_fs.h [PATCH] NFS: Fix races in nfs_revalidate_mapping() 2007-01-24 12:31:06 -08:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_idmap.h
nfs_mount.h
nfs_page.h NFS: Make nfs_updatepage() mark the page as dirty. 2006-12-06 10:46:39 -05:00
nfs_xdr.h NFS: Remove nfs_writepage_sync() 2006-12-06 10:46:38 -05:00
nfsacl.h
nfsd_idmap.h
nls.h
nmi.h [PATCH] x86: all cpu backtrace 2006-12-07 02:14:01 +01:00
node.h
nodemask.h
notifier.h
nsc_gpio.h
nsproxy.h Revert "[PATCH] namespaces: fix exit race by splitting exit" 2007-01-30 13:35:18 -08:00
nubus.h
numa.h
nvram.h
oom.h
oprofile.h
page-flags.h VM: Remove "clear_page_dirty()" and "test_clear_page_dirty()" functions 2006-12-21 09:19:57 -08:00
pagemap.h [PATCH] mm: remove find_trylock_page 2007-02-09 08:06:14 -08:00
pagevec.h
param.h
parport.h
parport_pc.h
parser.h
pata_platform.h
patchkey.h
pci-acpi.h
pci.h [PATCH] sort the devres mess out 2007-02-11 11:18:07 -08:00
pci_hotplug.h
pci_ids.h [PATCH] serial: support for new board 2007-02-11 10:51:33 -08:00
pci_regs.h PCI: Add #defines for Hypertransport MSI fields 2006-12-20 10:54:43 -08:00
pcieport_if.h
percpu.h
percpu_counter.h
personality.h
pfkeyv2.h Merge branch 'HEAD' of master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6 2007-02-08 15:25:18 -08:00
pfn.h
pg.h
phonedev.h
phy.h
pid.h [PATCH] pid: remove now unused do_each_task_pid and while_each_task_pid 2007-02-12 09:48:32 -08:00
pid_namespace.h [PATCH] namespaces: fix task exit disaster 2007-01-30 13:40:36 -08:00
pipe_fs_i.h [PATCH] reorder struct pipe_buf_operations 2006-12-13 09:05:48 -08:00
pkt_cls.h
pkt_sched.h
pktcdvd.h [PATCH] pktcdvd: add sysfs and debugfs interface 2006-12-08 08:28:38 -08:00
platform_device.h Driver core: Make platform_device_add_data accept a const pointer 2006-12-13 15:38:46 -08:00
plist.h
pm.h
pm_legacy.h
pmu.h
pnp.h [PATCH] PNP: export pnp_bus_type 2007-02-11 10:51:28 -08:00
pnpbios.h
poison.h
poll.h [PATCH] severing poll.h -> mm.h 2006-12-04 02:00:36 -05:00
posix-timers.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
ppdev.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
prctl.h
preempt.h
prefetch.h
prio_tree.h
proc_fs.h
profile.h [PATCH] KVM: add VM-exit profiling 2007-01-11 18:18:21 -08:00
ps2esdi.h
ptrace.h
qnx4_fs.h
qnxtypes.h
quota.h [PATCH] QUOTA: Have <linux/quota.h> include <linux/rwsem.h> explicitly 2007-02-12 09:48:28 -08:00
quotaio_v1.h
quotaio_v2.h
quotaops.h [PATCH] proper prototype for remove_inode_dquot_ref() 2006-12-07 08:39:44 -08:00
radeonfb.h
radix-tree.h [PATCH] radix-tree: RCU lockless readside 2006-12-07 08:39:25 -08:00
raid_class.h
ramfs.h
random.h
raw.h
rbtree.h
rcupdate.h
reboot.h
reboot_fixups.h
reciprocal_div.h [PATCH] SLAB: use a multiply instead of a divide in obj_to_index() 2006-12-13 09:05:49 -08:00
reiserfs_acl.h
reiserfs_fs.h [PATCH] struct path: rename Reiserfs's struct path 2006-12-08 08:28:40 -08:00
reiserfs_fs_i.h [PATCH] resierfs: avoid tail packing if an inode was ever mmapped 2007-01-23 07:52:06 -08:00
reiserfs_fs_sb.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2006-12-05 14:37:56 +00:00
reiserfs_xattr.h [PATCH] cleanup include/linux/reiserfs_xattr.h 2007-02-11 11:18:05 -08:00
relay.h [PATCH] Relay: add CPU hotplug support 2007-02-11 10:51:28 -08:00
resource.h
resume-trace.h
rio.h [PATCH] rapidio: fix multi-switch enumeration 2007-02-11 11:18:07 -08:00
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h [PATCH] mm: more rmap debugging 2006-12-22 08:55:49 -08:00
romfs_fs.h
root_dev.h
rose.h
route.h
rslib.h
rtc-v3020.h
rtc.h [PATCH] rtc: Add rtc_merge_alarm() 2006-12-10 09:55:40 -08:00
rtmutex.h [PATCH] fix various kernel-doc in header files 2007-01-26 13:51:00 -08:00
rtnetlink.h [NETLINK]: Restore API compatibility of address and neighbour bits 2006-12-08 17:19:27 -08:00
rwsem-spinlock.h [PATCH] lockdep: name some old style locks 2006-12-07 08:39:36 -08:00
rwsem.h
sc26198.h
scatterlist.h
scc.h
sched.h [PATCH] pid: remove the now unused kill_pg kill_pg_info and __kill_pg_info 2007-02-12 09:48:32 -08:00
screen_info.h [PATCH] i386: Relocatable kernel support 2006-12-07 02:14:04 +01:00
sctp.h [SCTP]: Fix typo adaption -> adaptation as per the latest API draft. 2006-12-22 11:12:04 -08:00
scx200.h
scx200_gpio.h
sdla.h
sdla_fr.h
seccomp.h
securebits.h
security.h [PATCH] Replace regular code with appropriate calls to container_of() 2007-02-11 11:18:06 -08:00
selection.h
selinux.h
selinux_netlink.h
sem.h
seq_file.h [PATCH] struct seq_operations and struct file_operations constification 2006-12-07 08:39:46 -08:00
seqlock.h [PATCH] lockdep: fix seqlock_init() 2006-12-12 08:10:44 -08:00
serial.h
serial167.h
serial_8250.h [PATCH] Exar quad port serial 2006-12-07 08:39:35 -08:00
serial_core.h [PATCH] tty: switch to ktermios 2006-12-08 08:28:57 -08:00
serial_ip3106.h
serial_reg.h
serialP.h
serio.h SERIO: add the sysfs driver name to all modules 2007-02-07 10:37:12 -08:00
shm.h
shmem_fs.h
signal.h [PATCH] Move sighand_cachep to include/signal.h 2006-12-07 08:39:22 -08:00
skbuff.h [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
slab.h [PATCH] More slab.h cleanups 2006-12-13 09:05:49 -08:00
slab_def.h [PATCH] optional ZONE_DMA: optional ZONE_DMA in the VM 2007-02-11 10:51:18 -08:00
smb.h
smb_fs.h
smb_fs_i.h
smb_fs_sb.h [PATCH] smbfs: Make conn_pid a struct pid 2006-12-13 09:05:53 -08:00
smb_mount.h
smbno.h
smp.h [PATCH] declare smp_call_function_single in generic code 2006-12-07 08:39:38 -08:00
smp_lock.h
snmp.h
socket.h [PATCH] scrub non-__GLIBC__ checks in linux/socket.h and linux/stat.h 2007-02-11 10:51:26 -08:00
sockios.h
som.h
sonet.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h [PATCH] Fix sparse annotation of spin unlock macros in one case 2007-02-11 11:18:07 -08:00
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
srcu.h
stacktrace.h
stallion.h [PATCH] Char: stallion, variables cleanup 2006-12-08 08:28:59 -08:00
start_kernel.h [PATCH] i386: cpu_detect extraction 2006-12-07 02:14:08 +01:00
stat.h [PATCH] scrub non-__GLIBC__ checks in linux/socket.h and linux/stat.h 2007-02-11 10:51:26 -08:00
statfs.h
stddef.h
stop_machine.h
string.h
stringify.h
superhyway.h
suspend.h [PATCH] swsusp: Improve handling of highmem 2006-12-07 08:39:27 -08:00
swap.h [PATCH] Drop nr_free_pages_pgdat() 2007-02-11 10:51:18 -08:00
swapops.h
synclink.h
sys.h
syscalls.h
sysctl.h [X.25]: Adds /proc/sys/net/x25/x25_forward to control forwarding. 2007-02-08 13:34:36 -08:00
sysdev.h [POWERPC] Introduce _SYSDEV_ATTR 2007-02-07 14:03:19 +11:00
sysfs.h sysfs: Shadow directory support 2007-02-07 10:37:14 -08:00
sysrq.h [PATCH] debug: add sysrq_always_enabled boot option 2006-12-13 09:05:50 -08:00
sysv_fs.h
task_io_accounting.h [PATCH] io-accounting: core statistics 2006-12-10 09:55:41 -08:00
task_io_accounting_ops.h [PATCH] io-accounting: core statistics 2006-12-10 09:55:41 -08:00
taskstats.h [PATCH] io-accounting: via taskstats 2006-12-10 09:55:41 -08:00
taskstats_kern.h [PATCH] taskstats: cleanup ->signal->stats allocation 2006-12-07 08:39:34 -08:00
tc.h [TC] MIPS: TURBOchannel update to the driver model 2007-02-09 16:23:15 +00:00
tcp.h [TCP]: Seperate DSACK from SACK fast path 2007-02-08 12:38:49 -08:00
telephony.h
termios.h
textsearch.h
textsearch_fsm.h
tfrc.h [DCCP] ccid3: Finer-grained resolution of sending rates 2006-12-11 14:34:42 -08:00
thread_info.h
threads.h
ticable.h
tifm.h tifm_core: add suspend/resume infrastructure for tifm devices 2007-02-04 20:54:10 +01:00
time.h [PATCH] Add const for time{spec,val}_compare arguments 2007-02-11 10:51:31 -08:00
timer.h [PATCH] fix various kernel-doc in header files 2007-01-26 13:51:00 -08:00
times.h
timex.h [PATCH] use cycle_t instead of u64 in struct time_interpolator 2007-02-11 10:51:31 -08:00
tiocl.h
tipc.h
tipc_config.h
topology.h [PATCH] sched: add option to serialize load balancing 2006-12-10 09:55:43 -08:00
toshiba.h
transport_class.h
trdevice.h
tsacct_kern.h
tty.h [PATCH] tty: update the tty layer to work with struct pid 2007-02-12 09:48:32 -08:00
tty_driver.h [PATCH] tty: switch to ktermios and new framework 2006-12-08 08:28:56 -08:00
tty_flip.h
tty_ldisc.h [PATCH] tty: switch to ktermios and new framework 2006-12-08 08:28:56 -08:00
types.h [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
uaccess.h Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-12-07 08:59:11 -08:00
udf_fs.h
udf_fs_i.h
udf_fs_sb.h
udp.h
ufs_fs.h [PATCH] export ufs_fs.h to userspace 2007-02-12 09:48:30 -08:00
ufs_fs_i.h
ufs_fs_sb.h [PATCH] export ufs_fs.h to userspace 2007-02-12 09:48:30 -08:00
uinput.h
uio.h
ultrasound.h
umem.h
un.h
unistd.h
unwind.h Remove stack unwinder for now 2006-12-15 08:47:51 -08:00
usb.h Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 2007-02-07 19:23:21 -08:00
usb_gadget.h
usb_gadgetfs.h USB: <linux/usb_ch9.h> becomes <linux/usb/ch9.h> 2007-02-07 15:44:32 -08:00
usb_usual.h
usbdevice_fs.h
user.h
utime.h
uts.h
utsname.h
vermagic.h
vfs.h
via.h
video_decoder.h
video_encoder.h
video_output.h output: Add display output class support 2006-12-20 01:46:41 -05:00
videodev.h
videodev2.h V4L/DVB (5023): Fix compilation on ppc32 architecture 2007-01-15 16:33:51 -02:00
videotext.h
vmalloc.h
vmstat.h [PATCH] count_vm_events-warning-fix 2007-02-11 10:51:25 -08:00
vt.h
vt_buffer.h
vt_kern.h
wait.h
wanrouter.h [NET] net/wanrouter/wanmain.c: cleanups 2007-02-08 12:38:54 -08:00
watchdog.h
wireless.h
workqueue.h Make workqueue bit operations work on "atomic_long_t" 2006-12-16 09:53:50 -08:00
writeback.h
x25.h
xattr.h [PATCH] cleanup include/linux/xattr.h 2007-02-11 11:18:05 -08:00
xfrm.h [XFRM]: Extension for dynamic update of endpoint address(es) 2007-02-08 13:11:42 -08:00
yam.h
zconf.h
zlib.h
zorro.h
zorro_ids.h
zutil.h