]> nv-tegra.nvidia Code Review - linux-3.10.git/commitdiff
Merge branch 'fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Wed, 15 Apr 2009 08:58:21 +0000 (09:58 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 15 Apr 2009 08:58:21 +0000 (09:58 +0100)
777 files changed:
Documentation/ABI/testing/debugfs-pktcdvd
Documentation/DocBook/Makefile
Documentation/cgroups/cpuacct.txt
Documentation/cgroups/memory.txt
Documentation/cgroups/resource_counter.txt
Documentation/feature-removal-schedule.txt
Documentation/infiniband/ipoib.txt
Documentation/input/rotary-encoder.txt [new file with mode: 0644]
Documentation/kbuild/makefiles.txt
Documentation/sparse.txt
Documentation/sysctl/net.txt
Documentation/tomoyo.txt [new file with mode: 0644]
Documentation/trace/ftrace.txt [moved from Documentation/ftrace.txt with 100% similarity]
Documentation/trace/kmemtrace.txt [moved from Documentation/vm/kmemtrace.txt with 100% similarity]
Documentation/trace/mmiotrace.txt [moved from Documentation/tracers/mmiotrace.txt with 100% similarity]
Documentation/trace/tracepoints.txt [moved from Documentation/tracepoints.txt with 100% similarity]
Documentation/vm/00-INDEX
Documentation/vm/active_mm.txt [new file with mode: 0644]
Documentation/vm/unevictable-lru.txt
MAINTAINERS
Makefile
arch/Kconfig
arch/arm/mach-omap2/usb-musb.c
arch/frv/include/asm/Kbuild [moved from include/asm-frv/Kbuild with 100% similarity]
arch/frv/include/asm/atomic.h [moved from include/asm-frv/atomic.h with 100% similarity]
arch/frv/include/asm/auxvec.h [moved from include/asm-frv/auxvec.h with 100% similarity]
arch/frv/include/asm/ax88796.h [moved from include/asm-frv/ax88796.h with 100% similarity]
arch/frv/include/asm/bitops.h [moved from include/asm-frv/bitops.h with 100% similarity]
arch/frv/include/asm/bug.h [moved from include/asm-frv/bug.h with 100% similarity]
arch/frv/include/asm/bugs.h [moved from include/asm-frv/bugs.h with 100% similarity]
arch/frv/include/asm/busctl-regs.h [moved from include/asm-frv/busctl-regs.h with 100% similarity]
arch/frv/include/asm/byteorder.h [moved from include/asm-frv/byteorder.h with 100% similarity]
arch/frv/include/asm/cache.h [moved from include/asm-frv/cache.h with 100% similarity]
arch/frv/include/asm/cacheflush.h [moved from include/asm-frv/cacheflush.h with 100% similarity]
arch/frv/include/asm/checksum.h [moved from include/asm-frv/checksum.h with 100% similarity]
arch/frv/include/asm/cpu-irqs.h [moved from include/asm-frv/cpu-irqs.h with 100% similarity]
arch/frv/include/asm/cpumask.h [moved from include/asm-frv/cpumask.h with 100% similarity]
arch/frv/include/asm/cputime.h [moved from include/asm-frv/cputime.h with 100% similarity]
arch/frv/include/asm/current.h [moved from include/asm-frv/current.h with 100% similarity]
arch/frv/include/asm/delay.h [moved from include/asm-frv/delay.h with 100% similarity]
arch/frv/include/asm/device.h [moved from include/asm-frv/device.h with 100% similarity]
arch/frv/include/asm/div64.h [moved from include/asm-frv/div64.h with 100% similarity]
arch/frv/include/asm/dm9000.h [moved from include/asm-frv/dm9000.h with 100% similarity]
arch/frv/include/asm/dma-mapping.h [moved from include/asm-frv/dma-mapping.h with 100% similarity]
arch/frv/include/asm/dma.h [moved from include/asm-frv/dma.h with 100% similarity]
arch/frv/include/asm/elf.h [moved from include/asm-frv/elf.h with 100% similarity]
arch/frv/include/asm/emergency-restart.h [moved from include/asm-frv/emergency-restart.h with 100% similarity]
arch/frv/include/asm/errno.h [moved from include/asm-frv/errno.h with 100% similarity]
arch/frv/include/asm/fb.h [moved from include/asm-frv/fb.h with 100% similarity]
arch/frv/include/asm/fcntl.h [moved from include/asm-frv/fcntl.h with 100% similarity]
arch/frv/include/asm/fpu.h [moved from include/asm-frv/fpu.h with 100% similarity]
arch/frv/include/asm/ftrace.h [moved from include/asm-frv/ftrace.h with 100% similarity]
arch/frv/include/asm/futex.h [moved from include/asm-frv/futex.h with 100% similarity]
arch/frv/include/asm/gdb-stub.h [moved from include/asm-frv/gdb-stub.h with 100% similarity]
arch/frv/include/asm/gpio-regs.h [moved from include/asm-frv/gpio-regs.h with 100% similarity]
arch/frv/include/asm/hardirq.h [moved from include/asm-frv/hardirq.h with 100% similarity]
arch/frv/include/asm/highmem.h [moved from include/asm-frv/highmem.h with 100% similarity]
arch/frv/include/asm/hw_irq.h [moved from include/asm-frv/hw_irq.h with 100% similarity]
arch/frv/include/asm/init.h [moved from include/asm-frv/init.h with 100% similarity]
arch/frv/include/asm/io.h [moved from include/asm-frv/io.h with 100% similarity]
arch/frv/include/asm/ioctl.h [moved from include/asm-frv/ioctl.h with 100% similarity]
arch/frv/include/asm/ioctls.h [moved from include/asm-frv/ioctls.h with 100% similarity]
arch/frv/include/asm/ipcbuf.h [moved from include/asm-frv/ipcbuf.h with 100% similarity]
arch/frv/include/asm/irc-regs.h [moved from include/asm-frv/irc-regs.h with 100% similarity]
arch/frv/include/asm/irq.h [moved from include/asm-frv/irq.h with 100% similarity]
arch/frv/include/asm/irq_regs.h [moved from include/asm-frv/irq_regs.h with 100% similarity]
arch/frv/include/asm/kdebug.h [moved from include/asm-frv/kdebug.h with 100% similarity]
arch/frv/include/asm/kmap_types.h [moved from include/asm-frv/kmap_types.h with 100% similarity]
arch/frv/include/asm/linkage.h [moved from include/asm-frv/linkage.h with 100% similarity]
arch/frv/include/asm/local.h [moved from include/asm-frv/local.h with 100% similarity]
arch/frv/include/asm/math-emu.h [moved from include/asm-frv/math-emu.h with 100% similarity]
arch/frv/include/asm/mb-regs.h [moved from include/asm-frv/mb-regs.h with 100% similarity]
arch/frv/include/asm/mb86943a.h [moved from include/asm-frv/mb86943a.h with 100% similarity]
arch/frv/include/asm/mb93091-fpga-irqs.h [moved from include/asm-frv/mb93091-fpga-irqs.h with 100% similarity]
arch/frv/include/asm/mb93093-fpga-irqs.h [moved from include/asm-frv/mb93093-fpga-irqs.h with 100% similarity]
arch/frv/include/asm/mb93493-irqs.h [moved from include/asm-frv/mb93493-irqs.h with 100% similarity]
arch/frv/include/asm/mb93493-regs.h [moved from include/asm-frv/mb93493-regs.h with 100% similarity]
arch/frv/include/asm/mc146818rtc.h [moved from include/asm-frv/mc146818rtc.h with 100% similarity]
arch/frv/include/asm/mem-layout.h [moved from include/asm-frv/mem-layout.h with 100% similarity]
arch/frv/include/asm/mman.h [moved from include/asm-frv/mman.h with 100% similarity]
arch/frv/include/asm/mmu.h [moved from include/asm-frv/mmu.h with 100% similarity]
arch/frv/include/asm/mmu_context.h [moved from include/asm-frv/mmu_context.h with 100% similarity]
arch/frv/include/asm/module.h [moved from include/asm-frv/module.h with 100% similarity]
arch/frv/include/asm/msgbuf.h [moved from include/asm-frv/msgbuf.h with 100% similarity]
arch/frv/include/asm/mutex.h [moved from include/asm-frv/mutex.h with 100% similarity]
arch/frv/include/asm/page.h [moved from include/asm-frv/page.h with 100% similarity]
arch/frv/include/asm/param.h [moved from include/asm-frv/param.h with 100% similarity]
arch/frv/include/asm/pci.h [moved from include/asm-frv/pci.h with 100% similarity]
arch/frv/include/asm/percpu.h [moved from include/asm-frv/percpu.h with 100% similarity]
arch/frv/include/asm/pgalloc.h [moved from include/asm-frv/pgalloc.h with 100% similarity]
arch/frv/include/asm/pgtable.h [moved from include/asm-frv/pgtable.h with 98% similarity]
arch/frv/include/asm/poll.h [moved from include/asm-frv/poll.h with 100% similarity]
arch/frv/include/asm/posix_types.h [moved from include/asm-frv/posix_types.h with 100% similarity]
arch/frv/include/asm/processor.h [moved from include/asm-frv/processor.h with 100% similarity]
arch/frv/include/asm/ptrace.h [moved from include/asm-frv/ptrace.h with 100% similarity]
arch/frv/include/asm/registers.h [moved from include/asm-frv/registers.h with 100% similarity]
arch/frv/include/asm/resource.h [moved from include/asm-frv/resource.h with 100% similarity]
arch/frv/include/asm/scatterlist.h [moved from include/asm-frv/scatterlist.h with 100% similarity]
arch/frv/include/asm/sections.h [moved from include/asm-frv/sections.h with 100% similarity]
arch/frv/include/asm/segment.h [moved from include/asm-frv/segment.h with 100% similarity]
arch/frv/include/asm/sembuf.h [moved from include/asm-frv/sembuf.h with 100% similarity]
arch/frv/include/asm/serial-regs.h [moved from include/asm-frv/serial-regs.h with 100% similarity]
arch/frv/include/asm/serial.h [moved from include/asm-frv/serial.h with 100% similarity]
arch/frv/include/asm/setup.h [moved from include/asm-frv/setup.h with 100% similarity]
arch/frv/include/asm/shmbuf.h [moved from include/asm-frv/shmbuf.h with 100% similarity]
arch/frv/include/asm/shmparam.h [moved from include/asm-frv/shmparam.h with 100% similarity]
arch/frv/include/asm/sigcontext.h [moved from include/asm-frv/sigcontext.h with 100% similarity]
arch/frv/include/asm/siginfo.h [moved from include/asm-frv/siginfo.h with 100% similarity]
arch/frv/include/asm/signal.h [moved from include/asm-frv/signal.h with 100% similarity]
arch/frv/include/asm/smp.h [moved from include/asm-frv/smp.h with 100% similarity]
arch/frv/include/asm/socket.h [moved from include/asm-frv/socket.h with 100% similarity]
arch/frv/include/asm/sockios.h [moved from include/asm-frv/sockios.h with 100% similarity]
arch/frv/include/asm/spinlock.h [moved from include/asm-frv/spinlock.h with 100% similarity]
arch/frv/include/asm/spr-regs.h [moved from include/asm-frv/spr-regs.h with 100% similarity]
arch/frv/include/asm/stat.h [moved from include/asm-frv/stat.h with 100% similarity]
arch/frv/include/asm/statfs.h [moved from include/asm-frv/statfs.h with 100% similarity]
arch/frv/include/asm/string.h [moved from include/asm-frv/string.h with 100% similarity]
arch/frv/include/asm/suspend.h [moved from include/asm-frv/suspend.h with 100% similarity]
arch/frv/include/asm/swab.h [moved from include/asm-frv/swab.h with 100% similarity]
arch/frv/include/asm/system.h [moved from include/asm-frv/system.h with 100% similarity]
arch/frv/include/asm/termbits.h [moved from include/asm-frv/termbits.h with 100% similarity]
arch/frv/include/asm/termios.h [moved from include/asm-frv/termios.h with 100% similarity]
arch/frv/include/asm/thread_info.h [moved from include/asm-frv/thread_info.h with 97% similarity]
arch/frv/include/asm/timer-regs.h [moved from include/asm-frv/timer-regs.h with 100% similarity]
arch/frv/include/asm/timex.h [moved from include/asm-frv/timex.h with 100% similarity]
arch/frv/include/asm/tlb.h [moved from include/asm-frv/tlb.h with 100% similarity]
arch/frv/include/asm/tlbflush.h [moved from include/asm-frv/tlbflush.h with 100% similarity]
arch/frv/include/asm/topology.h [moved from include/asm-frv/topology.h with 100% similarity]
arch/frv/include/asm/types.h [moved from include/asm-frv/types.h with 100% similarity]
arch/frv/include/asm/uaccess.h [moved from include/asm-frv/uaccess.h with 100% similarity]
arch/frv/include/asm/ucontext.h [moved from include/asm-frv/ucontext.h with 100% similarity]
arch/frv/include/asm/unaligned.h [moved from include/asm-frv/unaligned.h with 100% similarity]
arch/frv/include/asm/unistd.h [moved from include/asm-frv/unistd.h with 100% similarity]
arch/frv/include/asm/user.h [moved from include/asm-frv/user.h with 100% similarity]
arch/frv/include/asm/vga.h [moved from include/asm-frv/vga.h with 100% similarity]
arch/frv/include/asm/virtconvert.h [moved from include/asm-frv/virtconvert.h with 100% similarity]
arch/frv/include/asm/xor.h [moved from include/asm-frv/xor.h with 100% similarity]
arch/ia64/kernel/pci-swiotlb.c
arch/microblaze/Kconfig [new file with mode: 0644]
arch/microblaze/Kconfig.debug [new file with mode: 0644]
arch/microblaze/Makefile [new file with mode: 0644]
arch/microblaze/boot/Makefile [new file with mode: 0644]
arch/microblaze/configs/nommu_defconfig [new file with mode: 0644]
arch/microblaze/include/asm/Kbuild [new file with mode: 0644]
arch/microblaze/include/asm/atomic.h [new file with mode: 0644]
arch/microblaze/include/asm/auxvec.h [new file with mode: 0644]
arch/microblaze/include/asm/bitops.h [new file with mode: 0644]
arch/microblaze/include/asm/bug.h [new file with mode: 0644]
arch/microblaze/include/asm/bugs.h [new file with mode: 0644]
arch/microblaze/include/asm/byteorder.h [new file with mode: 0644]
arch/microblaze/include/asm/cache.h [new file with mode: 0644]
arch/microblaze/include/asm/cacheflush.h [new file with mode: 0644]
arch/microblaze/include/asm/checksum.h [new file with mode: 0644]
arch/microblaze/include/asm/clinkage.h [new file with mode: 0644]
arch/microblaze/include/asm/cpuinfo.h [new file with mode: 0644]
arch/microblaze/include/asm/cputable.h [new file with mode: 0644]
arch/microblaze/include/asm/cputime.h [moved from include/asm-mn10300/cputime.h with 100% similarity]
arch/microblaze/include/asm/current.h [new file with mode: 0644]
arch/microblaze/include/asm/delay.h [new file with mode: 0644]
arch/microblaze/include/asm/device.h [new file with mode: 0644]
arch/microblaze/include/asm/div64.h [new file with mode: 0644]
arch/microblaze/include/asm/dma-mapping.h [new file with mode: 0644]
arch/microblaze/include/asm/dma.h [new file with mode: 0644]
arch/microblaze/include/asm/elf.h [new file with mode: 0644]
arch/microblaze/include/asm/emergency-restart.h [moved from include/asm-mn10300/emergency-restart.h with 100% similarity]
arch/microblaze/include/asm/entry.h [new file with mode: 0644]
arch/microblaze/include/asm/errno.h [moved from include/asm-mn10300/errno.h with 100% similarity]
arch/microblaze/include/asm/exceptions.h [new file with mode: 0644]
arch/microblaze/include/asm/fcntl.h [moved from include/asm-mn10300/fcntl.h with 100% similarity]
arch/microblaze/include/asm/flat.h [new file with mode: 0644]
arch/microblaze/include/asm/ftrace.h [new file with mode: 0644]
arch/microblaze/include/asm/futex.h [moved from include/asm-mn10300/futex.h with 100% similarity]
arch/microblaze/include/asm/gpio.h [new file with mode: 0644]
arch/microblaze/include/asm/hardirq.h [new file with mode: 0644]
arch/microblaze/include/asm/hw_irq.h [new file with mode: 0644]
arch/microblaze/include/asm/io.h [new file with mode: 0644]
arch/microblaze/include/asm/ioctl.h [moved from include/asm-mn10300/ioctl.h with 100% similarity]
arch/microblaze/include/asm/ioctls.h [new file with mode: 0644]
arch/microblaze/include/asm/ipc.h [moved from include/asm-mn10300/ipc.h with 100% similarity]
arch/microblaze/include/asm/ipcbuf.h [new file with mode: 0644]
arch/microblaze/include/asm/irq.h [new file with mode: 0644]
arch/microblaze/include/asm/irq_regs.h [new file with mode: 0644]
arch/microblaze/include/asm/irqflags.h [new file with mode: 0644]
arch/microblaze/include/asm/kdebug.h [new file with mode: 0644]
arch/microblaze/include/asm/kmap_types.h [new file with mode: 0644]
arch/microblaze/include/asm/linkage.h [new file with mode: 0644]
arch/microblaze/include/asm/lmb.h [new file with mode: 0644]
arch/microblaze/include/asm/local.h [moved from include/asm-mn10300/local.h with 100% similarity]
arch/microblaze/include/asm/mman.h [new file with mode: 0644]
arch/microblaze/include/asm/mmu.h [new file with mode: 0644]
arch/microblaze/include/asm/mmu_context.h [new file with mode: 0644]
arch/microblaze/include/asm/module.h [new file with mode: 0644]
arch/microblaze/include/asm/msgbuf.h [new file with mode: 0644]
arch/microblaze/include/asm/mutex.h [new file with mode: 0644]
arch/microblaze/include/asm/namei.h [new file with mode: 0644]
arch/microblaze/include/asm/of_device.h [new file with mode: 0644]
arch/microblaze/include/asm/of_platform.h [new file with mode: 0644]
arch/microblaze/include/asm/page.h [new file with mode: 0644]
arch/microblaze/include/asm/param.h [new file with mode: 0644]
arch/microblaze/include/asm/pci-bridge.h [new file with mode: 0644]
arch/microblaze/include/asm/pci.h [new file with mode: 0644]
arch/microblaze/include/asm/percpu.h [moved from include/asm-mn10300/percpu.h with 100% similarity]
arch/microblaze/include/asm/pgalloc.h [new file with mode: 0644]
arch/microblaze/include/asm/pgtable.h [new file with mode: 0644]
arch/microblaze/include/asm/poll.h [moved from include/asm-mn10300/poll.h with 100% similarity]
arch/microblaze/include/asm/posix_types.h [new file with mode: 0644]
arch/microblaze/include/asm/processor.h [new file with mode: 0644]
arch/microblaze/include/asm/prom.h [new file with mode: 0644]
arch/microblaze/include/asm/ptrace.h [new file with mode: 0644]
arch/microblaze/include/asm/pvr.h [new file with mode: 0644]
arch/microblaze/include/asm/registers.h [new file with mode: 0644]
arch/microblaze/include/asm/resource.h [moved from include/asm-mn10300/resource.h with 100% similarity]
arch/microblaze/include/asm/scatterlist.h [new file with mode: 0644]
arch/microblaze/include/asm/sections.h [new file with mode: 0644]
arch/microblaze/include/asm/segment.h [new file with mode: 0644]
arch/microblaze/include/asm/selfmod.h [new file with mode: 0644]
arch/microblaze/include/asm/sembuf.h [new file with mode: 0644]
arch/microblaze/include/asm/serial.h [new file with mode: 0644]
arch/microblaze/include/asm/setup.h [new file with mode: 0644]
arch/microblaze/include/asm/shmbuf.h [new file with mode: 0644]
arch/microblaze/include/asm/shmparam.h [new file with mode: 0644]
arch/microblaze/include/asm/sigcontext.h [new file with mode: 0644]
arch/microblaze/include/asm/siginfo.h [new file with mode: 0644]
arch/microblaze/include/asm/signal.h [new file with mode: 0644]
arch/microblaze/include/asm/socket.h [new file with mode: 0644]
arch/microblaze/include/asm/sockios.h [new file with mode: 0644]
arch/microblaze/include/asm/stat.h [new file with mode: 0644]
arch/microblaze/include/asm/statfs.h [moved from include/asm-mn10300/statfs.h with 100% similarity]
arch/microblaze/include/asm/string.h [new file with mode: 0644]
arch/microblaze/include/asm/swab.h [new file with mode: 0644]
arch/microblaze/include/asm/syscalls.h [new file with mode: 0644]
arch/microblaze/include/asm/system.h [new file with mode: 0644]
arch/microblaze/include/asm/termbits.h [new file with mode: 0644]
arch/microblaze/include/asm/termios.h [new file with mode: 0644]
arch/microblaze/include/asm/thread_info.h [new file with mode: 0644]
arch/microblaze/include/asm/timex.h [new file with mode: 0644]
arch/microblaze/include/asm/tlb.h [new file with mode: 0644]
arch/microblaze/include/asm/tlbflush.h [new file with mode: 0644]
arch/microblaze/include/asm/topology.h [new file with mode: 0644]
arch/microblaze/include/asm/types.h [new file with mode: 0644]
arch/microblaze/include/asm/uaccess.h [new file with mode: 0644]
arch/microblaze/include/asm/ucontext.h [new file with mode: 0644]
arch/microblaze/include/asm/unaligned.h [new file with mode: 0644]
arch/microblaze/include/asm/unistd.h [new file with mode: 0644]
arch/microblaze/include/asm/user.h [new file with mode: 0644]
arch/microblaze/include/asm/vga.h [new file with mode: 0644]
arch/microblaze/include/asm/xor.h [moved from include/asm-mn10300/xor.h with 100% similarity]
arch/microblaze/kernel/Makefile [new file with mode: 0644]
arch/microblaze/kernel/asm-offsets.c [new file with mode: 0644]
arch/microblaze/kernel/cpu/Makefile [new file with mode: 0644]
arch/microblaze/kernel/cpu/cache.c [new file with mode: 0644]
arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c [new file with mode: 0644]
arch/microblaze/kernel/cpu/cpuinfo-static.c [new file with mode: 0644]
arch/microblaze/kernel/cpu/cpuinfo.c [new file with mode: 0644]
arch/microblaze/kernel/cpu/mb.c [new file with mode: 0644]
arch/microblaze/kernel/cpu/pvr.c [new file with mode: 0644]
arch/microblaze/kernel/early_printk.c [new file with mode: 0644]
arch/microblaze/kernel/entry-nommu.S [new file with mode: 0644]
arch/microblaze/kernel/exceptions.c [new file with mode: 0644]
arch/microblaze/kernel/head.S [new file with mode: 0644]
arch/microblaze/kernel/heartbeat.c [new file with mode: 0644]
arch/microblaze/kernel/hw_exception_handler.S [new file with mode: 0644]
arch/microblaze/kernel/init_task.c [new file with mode: 0644]
arch/microblaze/kernel/intc.c [new file with mode: 0644]
arch/microblaze/kernel/irq.c [new file with mode: 0644]
arch/microblaze/kernel/microblaze_ksyms.c [new file with mode: 0644]
arch/microblaze/kernel/module.c [new file with mode: 0644]
arch/microblaze/kernel/of_device.c [new file with mode: 0644]
arch/microblaze/kernel/of_platform.c [new file with mode: 0644]
arch/microblaze/kernel/process.c [new file with mode: 0644]
arch/microblaze/kernel/prom.c [new file with mode: 0644]
arch/microblaze/kernel/prom_parse.c [new file with mode: 0644]
arch/microblaze/kernel/ptrace.c [new file with mode: 0644]
arch/microblaze/kernel/selfmod.c [new file with mode: 0644]
arch/microblaze/kernel/setup.c [new file with mode: 0644]
arch/microblaze/kernel/signal.c [new file with mode: 0644]
arch/microblaze/kernel/sys_microblaze.c [new file with mode: 0644]
arch/microblaze/kernel/syscall_table.S [new file with mode: 0644]
arch/microblaze/kernel/timer.c [new file with mode: 0644]
arch/microblaze/kernel/traps.c [new file with mode: 0644]
arch/microblaze/kernel/vmlinux.lds.S [new file with mode: 0644]
arch/microblaze/lib/Makefile [new file with mode: 0644]
arch/microblaze/lib/checksum.c [new file with mode: 0644]
arch/microblaze/lib/fastcopy.S [new file with mode: 0644]
arch/microblaze/lib/memcpy.c [new file with mode: 0644]
arch/microblaze/lib/memmove.c [new file with mode: 0644]
arch/microblaze/lib/memset.c [new file with mode: 0644]
arch/microblaze/lib/uaccess.c [new file with mode: 0644]
arch/microblaze/mm/Makefile [new file with mode: 0644]
arch/microblaze/mm/init.c [new file with mode: 0644]
arch/microblaze/platform/Kconfig.platform [new file with mode: 0644]
arch/microblaze/platform/Makefile [new file with mode: 0644]
arch/microblaze/platform/generic/Kconfig.auto [new file with mode: 0644]
arch/microblaze/platform/generic/Makefile [new file with mode: 0644]
arch/microblaze/platform/generic/system.dts [new file with mode: 0644]
arch/microblaze/platform/platform.c [new file with mode: 0644]
arch/mips/include/asm/mach-rc32434/gpio.h
arch/mips/rb532/devices.c
arch/mn10300/Kconfig
arch/mn10300/Makefile
arch/mn10300/include/asm/Kbuild [moved from include/asm-mn10300/Kbuild with 100% similarity]
arch/mn10300/include/asm/atomic.h [moved from include/asm-mn10300/atomic.h with 100% similarity]
arch/mn10300/include/asm/auxvec.h [moved from include/asm-mn10300/auxvec.h with 100% similarity]
arch/mn10300/include/asm/bitops.h [moved from include/asm-mn10300/bitops.h with 100% similarity]
arch/mn10300/include/asm/bug.h [moved from include/asm-mn10300/bug.h with 100% similarity]
arch/mn10300/include/asm/bugs.h [moved from include/asm-mn10300/bugs.h with 100% similarity]
arch/mn10300/include/asm/busctl-regs.h [moved from include/asm-mn10300/busctl-regs.h with 100% similarity]
arch/mn10300/include/asm/byteorder.h [moved from include/asm-mn10300/byteorder.h with 100% similarity]
arch/mn10300/include/asm/cache.h [moved from include/asm-mn10300/cache.h with 98% similarity]
arch/mn10300/include/asm/cacheflush.h [moved from include/asm-mn10300/cacheflush.h with 100% similarity]
arch/mn10300/include/asm/checksum.h [moved from include/asm-mn10300/checksum.h with 100% similarity]
arch/mn10300/include/asm/cpu-regs.h [moved from include/asm-mn10300/cpu-regs.h with 100% similarity]
arch/mn10300/include/asm/cputime.h [new file with mode: 0644]
arch/mn10300/include/asm/current.h [moved from include/asm-mn10300/current.h with 100% similarity]
arch/mn10300/include/asm/delay.h [moved from include/asm-mn10300/delay.h with 100% similarity]
arch/mn10300/include/asm/device.h [moved from include/asm-mn10300/device.h with 100% similarity]
arch/mn10300/include/asm/div64.h [moved from include/asm-mn10300/div64.h with 100% similarity]
arch/mn10300/include/asm/dma-mapping.h [moved from include/asm-mn10300/dma-mapping.h with 100% similarity]
arch/mn10300/include/asm/dma.h [moved from include/asm-mn10300/dma.h with 100% similarity]
arch/mn10300/include/asm/dmactl-regs.h [moved from include/asm-mn10300/dmactl-regs.h with 100% similarity]
arch/mn10300/include/asm/elf.h [moved from include/asm-mn10300/elf.h with 100% similarity]
arch/mn10300/include/asm/emergency-restart.h [new file with mode: 0644]
arch/mn10300/include/asm/errno.h [new file with mode: 0644]
arch/mn10300/include/asm/exceptions.h [moved from include/asm-mn10300/exceptions.h with 100% similarity]
arch/mn10300/include/asm/fb.h [moved from include/asm-mn10300/fb.h with 100% similarity]
arch/mn10300/include/asm/fcntl.h [new file with mode: 0644]
arch/mn10300/include/asm/fpu.h [moved from include/asm-mn10300/fpu.h with 100% similarity]
arch/mn10300/include/asm/frame.inc [moved from include/asm-mn10300/frame.inc with 100% similarity]
arch/mn10300/include/asm/ftrace.h [moved from include/asm-mn10300/ftrace.h with 100% similarity]
arch/mn10300/include/asm/futex.h [new file with mode: 0644]
arch/mn10300/include/asm/gdb-stub.h [moved from include/asm-mn10300/gdb-stub.h with 100% similarity]
arch/mn10300/include/asm/hardirq.h [moved from include/asm-mn10300/hardirq.h with 100% similarity]
arch/mn10300/include/asm/highmem.h [moved from include/asm-mn10300/highmem.h with 100% similarity]
arch/mn10300/include/asm/hw_irq.h [moved from include/asm-mn10300/hw_irq.h with 100% similarity]
arch/mn10300/include/asm/intctl-regs.h [moved from include/asm-mn10300/intctl-regs.h with 100% similarity]
arch/mn10300/include/asm/io.h [moved from include/asm-mn10300/io.h with 100% similarity]
arch/mn10300/include/asm/ioctl.h [new file with mode: 0644]
arch/mn10300/include/asm/ioctls.h [moved from include/asm-mn10300/ioctls.h with 100% similarity]
arch/mn10300/include/asm/ipc.h [new file with mode: 0644]
arch/mn10300/include/asm/ipcbuf.h [moved from include/asm-mn10300/ipcbuf.h with 100% similarity]
arch/mn10300/include/asm/irq.h [moved from include/asm-mn10300/irq.h with 97% similarity]
arch/mn10300/include/asm/irq_regs.h [moved from include/asm-mn10300/irq_regs.h with 100% similarity]
arch/mn10300/include/asm/kdebug.h [moved from include/asm-mn10300/kdebug.h with 100% similarity]
arch/mn10300/include/asm/kmap_types.h [moved from include/asm-mn10300/kmap_types.h with 100% similarity]
arch/mn10300/include/asm/kprobes.h [moved from include/asm-mn10300/kprobes.h with 100% similarity]
arch/mn10300/include/asm/linkage.h [moved from include/asm-mn10300/linkage.h with 100% similarity]
arch/mn10300/include/asm/local.h [new file with mode: 0644]
arch/mn10300/include/asm/mc146818rtc.h [moved from include/asm-mn10300/mc146818rtc.h with 100% similarity]
arch/mn10300/include/asm/mman.h [moved from include/asm-mn10300/mman.h with 100% similarity]
arch/mn10300/include/asm/mmu.h [moved from include/asm-mn10300/mmu.h with 100% similarity]
arch/mn10300/include/asm/mmu_context.h [moved from include/asm-mn10300/mmu_context.h with 100% similarity]
arch/mn10300/include/asm/module.h [moved from include/asm-mn10300/module.h with 100% similarity]
arch/mn10300/include/asm/msgbuf.h [moved from include/asm-mn10300/msgbuf.h with 100% similarity]
arch/mn10300/include/asm/mutex.h [moved from include/asm-mn10300/mutex.h with 100% similarity]
arch/mn10300/include/asm/nmi.h [moved from include/asm-mn10300/nmi.h with 100% similarity]
arch/mn10300/include/asm/page.h [moved from include/asm-mn10300/page.h with 100% similarity]
arch/mn10300/include/asm/page_offset.h [moved from include/asm-mn10300/page_offset.h with 100% similarity]
arch/mn10300/include/asm/param.h [moved from include/asm-mn10300/param.h with 100% similarity]
arch/mn10300/include/asm/pci.h [moved from include/asm-mn10300/pci.h with 100% similarity]
arch/mn10300/include/asm/percpu.h [new file with mode: 0644]
arch/mn10300/include/asm/pgalloc.h [moved from include/asm-mn10300/pgalloc.h with 100% similarity]
arch/mn10300/include/asm/pgtable.h [moved from include/asm-mn10300/pgtable.h with 100% similarity]
arch/mn10300/include/asm/pio-regs.h [moved from include/asm-mn10300/pio-regs.h with 100% similarity]
arch/mn10300/include/asm/poll.h [new file with mode: 0644]
arch/mn10300/include/asm/posix_types.h [moved from include/asm-mn10300/posix_types.h with 100% similarity]
arch/mn10300/include/asm/processor.h [moved from include/asm-mn10300/processor.h with 100% similarity]
arch/mn10300/include/asm/ptrace.h [moved from include/asm-mn10300/ptrace.h with 100% similarity]
arch/mn10300/include/asm/reset-regs.h [moved from include/asm-mn10300/reset-regs.h with 100% similarity]
arch/mn10300/include/asm/resource.h [new file with mode: 0644]
arch/mn10300/include/asm/rtc-regs.h [moved from include/asm-mn10300/rtc-regs.h with 100% similarity]
arch/mn10300/include/asm/rtc.h [moved from include/asm-mn10300/rtc.h with 100% similarity]
arch/mn10300/include/asm/scatterlist.h [moved from include/asm-mn10300/scatterlist.h with 100% similarity]
arch/mn10300/include/asm/sections.h [moved from include/asm-mn10300/sections.h with 100% similarity]
arch/mn10300/include/asm/sembuf.h [moved from include/asm-mn10300/sembuf.h with 100% similarity]
arch/mn10300/include/asm/serial-regs.h [moved from include/asm-mn10300/serial-regs.h with 100% similarity]
arch/mn10300/include/asm/serial.h [moved from include/asm-mn10300/serial.h with 97% similarity]
arch/mn10300/include/asm/setup.h [moved from include/asm-mn10300/setup.h with 100% similarity]
arch/mn10300/include/asm/shmbuf.h [moved from include/asm-mn10300/shmbuf.h with 100% similarity]
arch/mn10300/include/asm/shmparam.h [moved from include/asm-mn10300/shmparam.h with 100% similarity]
arch/mn10300/include/asm/sigcontext.h [moved from include/asm-mn10300/sigcontext.h with 100% similarity]
arch/mn10300/include/asm/siginfo.h [moved from include/asm-mn10300/siginfo.h with 100% similarity]
arch/mn10300/include/asm/signal.h [moved from include/asm-mn10300/signal.h with 100% similarity]
arch/mn10300/include/asm/smp.h [moved from include/asm-mn10300/smp.h with 100% similarity]
arch/mn10300/include/asm/socket.h [moved from include/asm-mn10300/socket.h with 100% similarity]
arch/mn10300/include/asm/sockios.h [moved from include/asm-mn10300/sockios.h with 100% similarity]
arch/mn10300/include/asm/spinlock.h [moved from include/asm-mn10300/spinlock.h with 100% similarity]
arch/mn10300/include/asm/stat.h [moved from include/asm-mn10300/stat.h with 100% similarity]
arch/mn10300/include/asm/statfs.h [new file with mode: 0644]
arch/mn10300/include/asm/string.h [moved from include/asm-mn10300/string.h with 100% similarity]
arch/mn10300/include/asm/swab.h [moved from include/asm-mn10300/swab.h with 100% similarity]
arch/mn10300/include/asm/system.h [moved from include/asm-mn10300/system.h with 100% similarity]
arch/mn10300/include/asm/termbits.h [moved from include/asm-mn10300/termbits.h with 100% similarity]
arch/mn10300/include/asm/termios.h [moved from include/asm-mn10300/termios.h with 100% similarity]
arch/mn10300/include/asm/thread_info.h [moved from include/asm-mn10300/thread_info.h with 100% similarity]
arch/mn10300/include/asm/timer-regs.h [moved from include/asm-mn10300/timer-regs.h with 100% similarity]
arch/mn10300/include/asm/timex.h [moved from include/asm-mn10300/timex.h with 96% similarity]
arch/mn10300/include/asm/tlb.h [moved from include/asm-mn10300/tlb.h with 100% similarity]
arch/mn10300/include/asm/tlbflush.h [moved from include/asm-mn10300/tlbflush.h with 100% similarity]
arch/mn10300/include/asm/topology.h [moved from include/asm-mn10300/topology.h with 100% similarity]
arch/mn10300/include/asm/types.h [moved from include/asm-mn10300/types.h with 100% similarity]
arch/mn10300/include/asm/uaccess.h [moved from include/asm-mn10300/uaccess.h with 100% similarity]
arch/mn10300/include/asm/ucontext.h [moved from include/asm-mn10300/ucontext.h with 100% similarity]
arch/mn10300/include/asm/unaligned.h [moved from include/asm-mn10300/unaligned.h with 100% similarity]
arch/mn10300/include/asm/unistd.h [moved from include/asm-mn10300/unistd.h with 100% similarity]
arch/mn10300/include/asm/user.h [moved from include/asm-mn10300/user.h with 100% similarity]
arch/mn10300/include/asm/vga.h [moved from include/asm-mn10300/vga.h with 100% similarity]
arch/mn10300/include/asm/xor.h [new file with mode: 0644]
arch/mn10300/kernel/entry.S
arch/mn10300/kernel/gdb-io-serial-low.S
arch/mn10300/kernel/gdb-io-serial.c
arch/mn10300/kernel/gdb-io-ttysm-low.S
arch/mn10300/kernel/gdb-io-ttysm.c
arch/mn10300/kernel/gdb-stub.c
arch/mn10300/kernel/head.S
arch/mn10300/kernel/irq.c
arch/mn10300/kernel/mn10300-serial-low.S
arch/mn10300/kernel/mn10300-serial.c
arch/mn10300/kernel/mn10300-watchdog.c
arch/mn10300/kernel/setup.c
arch/mn10300/kernel/traps.c
arch/mn10300/oprofile/Kconfig [deleted file]
arch/mn10300/proc-mn103e010/include/proc/cache.h [moved from include/asm-mn10300/proc-mn103e010/cache.h with 100% similarity]
arch/mn10300/proc-mn103e010/include/proc/clock.h [moved from include/asm-mn10300/proc-mn103e010/clock.h with 94% similarity]
arch/mn10300/proc-mn103e010/include/proc/irq.h [moved from include/asm-mn10300/proc-mn103e010/irq.h with 100% similarity]
arch/mn10300/proc-mn103e010/include/proc/proc.h [moved from include/asm-mn10300/proc-mn103e010/proc.h with 100% similarity]
arch/mn10300/unit-asb2303/include/unit/clock.h [moved from include/asm-mn10300/unit-asb2303/clock.h with 100% similarity]
arch/mn10300/unit-asb2303/include/unit/leds.h [moved from include/asm-mn10300/unit-asb2303/leds.h with 100% similarity]
arch/mn10300/unit-asb2303/include/unit/serial.h [moved from include/asm-mn10300/unit-asb2303/serial.h with 99% similarity]
arch/mn10300/unit-asb2303/include/unit/smc91111.h [moved from include/asm-mn10300/unit-asb2303/smc91111.h with 100% similarity]
arch/mn10300/unit-asb2303/include/unit/timex.h [moved from include/asm-mn10300/unit-asb2303/timex.h with 98% similarity]
arch/mn10300/unit-asb2303/leds.c
arch/mn10300/unit-asb2303/smc91111.c
arch/mn10300/unit-asb2305/include/unit/clock.h [moved from include/asm-mn10300/unit-asb2305/clock.h with 100% similarity]
arch/mn10300/unit-asb2305/include/unit/leds.h [moved from include/asm-mn10300/unit-asb2305/leds.h with 100% similarity]
arch/mn10300/unit-asb2305/include/unit/serial.h [moved from include/asm-mn10300/unit-asb2305/serial.h with 99% similarity]
arch/mn10300/unit-asb2305/include/unit/timex.h [moved from include/asm-mn10300/unit-asb2305/timex.h with 98% similarity]
arch/mn10300/unit-asb2305/leds.c
arch/mn10300/unit-asb2305/unit-init.c
arch/powerpc/include/asm/parport.h
arch/s390/Kconfig
arch/sh/Kconfig
arch/sh/boards/board-ap325rxa.c
arch/sh/boards/board-urquell.c
arch/sh/drivers/pci/ops-sh7785lcr.c
arch/sh/drivers/pci/pci-sh7780.h
arch/sh/drivers/pci/pci.c
arch/sh/include/asm/dma-mapping.h
arch/sh/include/asm/scatterlist.h
arch/sh/include/asm/topology.h
arch/sh/include/asm/unistd_32.h
arch/sh/include/asm/unistd_64.h
arch/sh/kernel/cpu/sh4a/setup-sh7786.c
arch/sh/kernel/syscalls_32.S
arch/sh/kernel/syscalls_64.S
arch/sh/mm/consistent.c
arch/sparc/include/asm/parport.h
arch/x86/Kconfig
arch/x86/boot/video-vga.c
arch/x86/include/asm/cpu_debug.h [changed mode: 0755->0644]
arch/x86/include/asm/fixmap.h
arch/x86/include/asm/io.h
arch/x86/include/asm/paravirt.h
arch/x86/include/asm/processor.h
arch/x86/include/asm/required-features.h
arch/x86/include/asm/sigcontext.h
arch/x86/include/asm/xen/page.h
arch/x86/include/asm/xsave.h
arch/x86/kernel/apic/apic_flat_64.c
arch/x86/kernel/apic/io_apic.c
arch/x86/kernel/cpu/cpu_debug.c [changed mode: 0755->0644]
arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
arch/x86/kernel/ftrace.c
arch/x86/kernel/irq.c
arch/x86/kernel/microcode_core.c
arch/x86/kernel/mpparse.c
arch/x86/kernel/ptrace.c
arch/x86/kernel/reboot.c
arch/x86/kernel/xsave.c
arch/x86/mm/gup.c
arch/x86/mm/ioremap.c
arch/x86/mm/pat.c
arch/x86/mm/pgtable.c
arch/x86/xen/enlighten.c
arch/x86/xen/mmu.c
arch/x86/xen/mmu.h
arch/x86/xen/smp.c
arch/x86/xen/xen-ops.h
drivers/acpi/battery.c
drivers/ata/ahci.c
drivers/ata/libata-core.c
drivers/ata/sata_via.c
drivers/atm/solos-pci.c
drivers/block/cciss.c
drivers/block/xsysace.c
drivers/char/agp/intel-agp.c
drivers/char/sysrq.c
drivers/edac/edac_core.h
drivers/edac/edac_device.c
drivers/edac/edac_mc.c
drivers/edac/edac_pci.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem_debugfs.c
drivers/gpu/drm/i915/i915_gem_tiling.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_fb.c
drivers/gpu/drm/i915/intel_hdmi.c
drivers/gpu/drm/i915/intel_sdvo.c
drivers/hwmon/Kconfig
drivers/hwmon/Makefile
drivers/hwmon/hp_accel.c
drivers/hwmon/sht15.c [new file with mode: 0644]
drivers/i2c/algos/i2c-algo-pca.c
drivers/i2c/busses/Kconfig
drivers/i2c/i2c-core.c
drivers/ide/at91_ide.c
drivers/ide/falconide.c
drivers/ide/ide-acpi.c
drivers/ide/ide-atapi.c
drivers/ide/ide-cd.c
drivers/ide/ide-disk.c
drivers/ide/ide-disk_proc.c
drivers/ide/ide-dma-sff.c
drivers/ide/ide-h8300.c
drivers/ide/ide-io-std.c
drivers/ide/ide-io.c
drivers/ide/ide-ioctls.c
drivers/ide/ide-iops.c
drivers/ide/ide-lib.c
drivers/ide/ide-park.c
drivers/ide/ide-pm.c
drivers/ide/ide-probe.c
drivers/ide/ide-proc.c
drivers/ide/ide-taskfile.c
drivers/ide/ns87415.c
drivers/ide/q40ide.c
drivers/ide/scc_pata.c
drivers/ide/tx4938ide.c
drivers/ide/tx4939ide.c
drivers/infiniband/core/cma.c
drivers/infiniband/hw/cxgb3/cxio_hal.c
drivers/infiniband/hw/cxgb3/cxio_hal.h
drivers/infiniband/hw/cxgb3/iwch.c
drivers/infiniband/hw/cxgb3/iwch.h
drivers/infiniband/hw/cxgb3/iwch_cm.c
drivers/infiniband/hw/cxgb3/iwch_cm.h
drivers/infiniband/hw/cxgb3/iwch_qp.c
drivers/infiniband/hw/mlx4/main.c
drivers/infiniband/hw/nes/nes.h
drivers/infiniband/hw/nes/nes_cm.c
drivers/infiniband/hw/nes/nes_cm.h
drivers/infiniband/hw/nes/nes_hw.c
drivers/infiniband/hw/nes/nes_hw.h
drivers/infiniband/hw/nes/nes_nic.c
drivers/infiniband/ulp/ipoib/ipoib_vlan.c
drivers/input/input.c
drivers/input/keyboard/atkbd.c
drivers/input/keyboard/bf54x-keys.c
drivers/input/keyboard/hilkbd.c
drivers/input/misc/Kconfig
drivers/input/misc/Makefile
drivers/input/misc/ati_remote2.c
drivers/input/misc/rb532_button.c [new file with mode: 0644]
drivers/input/misc/rotary_encoder.c [new file with mode: 0644]
drivers/input/mouse/Kconfig
drivers/input/mouse/Makefile
drivers/input/mouse/hgpk.c
drivers/input/mouse/maplemouse.c [new file with mode: 0644]
drivers/input/mouse/pc110pad.c
drivers/input/serio/i8042-x86ia64io.h
drivers/input/touchscreen/Kconfig
drivers/input/touchscreen/Makefile
drivers/input/touchscreen/ad7877.c [new file with mode: 0644]
drivers/input/touchscreen/ad7879.c [new file with mode: 0644]
drivers/input/touchscreen/mainstone-wm97xx.c
drivers/input/touchscreen/ucb1400_ts.c
drivers/input/touchscreen/wm97xx-core.c
drivers/input/touchscreen/zylonite-wm97xx.c [new file with mode: 0644]
drivers/leds/leds-gpio.c
drivers/md/dm-ioctl.c
drivers/md/dm-kcopyd.c
drivers/md/dm-linear.c
drivers/md/dm-table.c
drivers/md/dm.c
drivers/md/dm.h
drivers/media/dvb/ttpci/Kconfig
drivers/media/dvb/ttpci/Makefile
drivers/media/dvb/ttpci/av7110.c
drivers/media/dvb/ttpci/av7110_hw.c
drivers/media/dvb/ttpci/av7110_hw.h
drivers/media/dvb/ttpci/fdump.c [deleted file]
drivers/misc/eeprom/at24.c
drivers/misc/eeprom/at25.c
drivers/misc/sgi-xp/xpc.h
drivers/misc/sgi-xp/xpc_channel.c
drivers/misc/sgi-xp/xpc_main.c
drivers/misc/sgi-xp/xpc_partition.c
drivers/misc/sgi-xp/xpc_sn2.c
drivers/misc/sgi-xp/xpc_uv.c
drivers/net/atl1c/atl1c_main.c
drivers/net/benet/be_main.c
drivers/net/jme.c
drivers/net/mlx4/port.c
drivers/net/smc91x.h
drivers/net/wireless/ath9k/pci.c
drivers/net/wireless/p54/p54pci.c
drivers/parisc/superio.c
drivers/pci/dmar.c
drivers/pci/intel-iommu.c
drivers/scsi/3w-9xxx.c
drivers/scsi/aacraid/aachba.c
drivers/scsi/lpfc/lpfc_scsi.c
drivers/scsi/mpt2sas/mpt2sas_base.c
drivers/scsi/qla1280.c
drivers/scsi/scsi_priv.h
drivers/scsi/scsi_wait_scan.c
drivers/serial/Kconfig
drivers/sh/intc.c
drivers/spi/spi.c
drivers/staging/b3dfg/b3dfg.c
drivers/usb/class/cdc-acm.c
drivers/usb/otg/nop-usb-xceiv.c
drivers/usb/serial/ti_usb_3410_5052.c
drivers/video/aty/radeon_base.c
drivers/video/backlight/backlight.c
drivers/video/backlight/lcd.c
drivers/video/cirrusfb.c
drivers/video/console/fbcon.c
drivers/video/efifb.c
drivers/video/fbmem.c
drivers/video/intelfb/intelfb.h
drivers/video/intelfb/intelfb_i2c.c
drivers/video/intelfb/intelfbdrv.c
drivers/video/intelfb/intelfbhw.c
drivers/video/s3fb.c
drivers/video/sa1100fb.c
drivers/video/sa1100fb.h
drivers/video/sis/sis_main.c
drivers/video/skeletonfb.c
drivers/video/uvesafb.c
drivers/video/vfb.c
drivers/watchdog/Kconfig
drivers/watchdog/Makefile
drivers/watchdog/at91rm9200_wdt.c
drivers/watchdog/i6300esb.c
drivers/watchdog/ks8695_wdt.c
drivers/watchdog/omap_wdt.c
drivers/watchdog/orion5x_wdt.c
drivers/xen/cpu_hotplug.c
drivers/xen/manage.c
firmware/.gitignore
firmware/Makefile
firmware/README.AddingFirmware [new file with mode: 0644]
firmware/WHENCE
firmware/av7110/Boot.S [new file with mode: 0644]
firmware/av7110/bootcode.bin.ihex [new file with mode: 0644]
firmware/ihex2fw.c [moved from scripts/ihex2fw.c with 100% similarity]
firmware/slicoss/gbdownload.sys.ihex [deleted file]
firmware/slicoss/gbrcvucode.sys.ihex [deleted file]
firmware/slicoss/oasisdbgdownload.sys.ihex [deleted file]
firmware/slicoss/oasisdownload.sys.ihex [deleted file]
firmware/slicoss/oasisrcvucode.sys.ihex [deleted file]
firmware/sxg/saharadbgdownloadB.sys.ihex [deleted file]
firmware/sxg/saharadownloadB.sys.ihex [deleted file]
firmware/yamaha/yss225_registers.bin.ihex [new file with mode: 0644]
fs/afs/netdevices.c
fs/ext2/inode.c
fs/ext4/extents.c
fs/ext4/inode.c
fs/ext4/super.c
fs/fuse/file.c
fs/hfs/inode.c
fs/hfs/mdb.c
fs/jbd/revoke.c
fs/nilfs2/bmap.c
fs/nilfs2/nilfs.h
fs/nilfs2/recovery.c
fs/nilfs2/sufile.c
fs/nilfs2/sufile.h
fs/nilfs2/super.c
fs/nilfs2/the_nilfs.c
fs/xfs/linux-2.6/xfs_aops.c
fs/xfs/linux-2.6/xfs_aops.h
fs/xfs/linux-2.6/xfs_buf.c
fs/xfs/linux-2.6/xfs_fs_subr.c
fs/xfs/linux-2.6/xfs_lrw.c
fs/xfs/linux-2.6/xfs_sync.c
fs/xfs/linux-2.6/xfs_sync.h
fs/xfs/xfs_iget.c
fs/xfs/xfs_iomap.c
fs/xfs/xfs_iomap.h
fs/xfs/xfs_log.c
fs/xfs/xfs_mount.h
fs/xfs/xfs_vnodeops.c
include/asm-generic/percpu.h
include/asm-generic/siginfo.h
include/asm-mn10300/.gitignore [deleted file]
include/drm/drm_pciids.h
include/drm/i915_drm.h
include/linux/capability.h
include/linux/debug_locks.h
include/linux/device-mapper.h
include/linux/fb.h
include/linux/fiemap.h
include/linux/ftrace.h
include/linux/i2c.h
include/linux/ide.h
include/linux/init_task.h
include/linux/irq.h
include/linux/kmod.h
include/linux/pci_ids.h
include/linux/percpu.h
include/linux/rotary_encoder.h [new file with mode: 0644]
include/linux/sched.h
include/linux/sht15.h [new file with mode: 0644]
include/linux/spi/ad7879.h [new file with mode: 0644]
include/linux/stringify.h
include/linux/syscalls.h
include/linux/usb/serial.h
include/scsi/scsi_scan.h [new file with mode: 0644]
include/trace/syscall.h [new file with mode: 0644]
include/video/cyblafb.h [deleted file]
init/Kconfig
init/initramfs.c
ipc/mq_sysctl.c
kernel/fork.c
kernel/futex.c
kernel/irq/numa_migrate.c
kernel/module.c
kernel/mutex.c
kernel/panic.c
kernel/posix-cpu-timers.c
kernel/power/disk.c
kernel/power/user.c
kernel/ptrace.c
kernel/sched.c
kernel/sched_cpupri.c
kernel/sched_rt.c
kernel/sys.c
kernel/sysctl.c
kernel/timer.c
kernel/trace/Kconfig
kernel/trace/blktrace.c
kernel/trace/trace.c
kernel/trace/trace_events.c
kernel/trace/trace_events_filter.c
kernel/trace/trace_events_stage_2.h
kernel/trace/trace_syscalls.c
lib/debug_locks.c
lib/vsprintf.c
mm/Kconfig
mm/filemap.c
mm/memcontrol.c
mm/shmem.c
mm/util.c
scripts/.gitignore
scripts/Makefile
scripts/Makefile.headersinst
scripts/gen_initramfs_list.sh
scripts/get_maintainer.pl [new file with mode: 0755]
scripts/headerdep.pl
scripts/kconfig/kxgettext.c
scripts/mod/modpost.c
scripts/setlocalversion
security/keys/request_key.c
security/tomoyo/common.c
security/tomoyo/common.h
security/tomoyo/domain.c
security/tomoyo/file.c
security/tomoyo/realpath.c
security/tomoyo/realpath.h
security/tomoyo/tomoyo.c
security/tomoyo/tomoyo.h
sound/isa/Kconfig
sound/isa/wavefront/wavefront_fx.c
sound/isa/wavefront/yss225.c [deleted file]
sound/pci/hda/hda_intel.c

index bf9c16b64c34feff4087a6b83b78995d213bcc96..cf11736acb76a9e9822b1fc52a11165476f1671e 100644 (file)
@@ -1,4 +1,4 @@
-What:           /debug/pktcdvd/pktcdvd[0-7]
+What:           /sys/kernel/debug/pktcdvd/pktcdvd[0-7]
 Date:           Oct. 2006
 KernelVersion:  2.6.20
 Contact:        Thomas Maier <balagi@justmail.de>
@@ -10,10 +10,10 @@ debugfs interface
 The pktcdvd module (packet writing driver) creates
 these files in debugfs:
 
-/debug/pktcdvd/pktcdvd[0-7]/
+/sys/kernel/debug/pktcdvd/pktcdvd[0-7]/
     info            (0444) Lots of driver statistics and infos.
 
 Example:
 -------
 
-cat /debug/pktcdvd/pktcdvd0/info
+cat /sys/kernel/debug/pktcdvd/pktcdvd0/info
index a3a83d38f96fa44a1d17d917e297959cce5036fc..8918a32c6b3a567903d02d87aad5577f2c13a12c 100644 (file)
@@ -31,7 +31,7 @@ PS_METHOD     = $(prefer-db2x)
 
 ###
 # The targets that may be used.
-PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs
+PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs
 
 BOOKS := $(addprefix $(obj)/,$(DOCBOOKS))
 xmldocs: $(BOOKS)
@@ -213,11 +213,12 @@ silent_gen_xml = :
 dochelp:
        @echo  ' Linux kernel internal documentation in different formats:'
        @echo  '  htmldocs        - HTML'
-       @echo  '  installmandocs  - install man pages generated by mandocs'
-       @echo  '  mandocs         - man pages'
        @echo  '  pdfdocs         - PDF'
        @echo  '  psdocs          - Postscript'
        @echo  '  xmldocs         - XML DocBook'
+       @echo  '  mandocs         - man pages'
+       @echo  '  installmandocs  - install man pages generated by mandocs'
+       @echo  '  cleandocs       - clean all generated DocBook files'
 
 ###
 # Temporary files left by various tools
@@ -235,6 +236,10 @@ clean-files := $(DOCBOOKS) \
 
 clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) man
 
+cleandocs:
+       $(Q)rm -f $(call objectify, $(clean-files))
+       $(Q)rm -rf $(call objectify, $(clean-dirs))
+
 # Declare the contents of the .PHONY variable as phony.  We keep that
 # information in a variable se we can use it in if_changed and friends.
 
index bb775fbe43d78f6f5083f03a7986d9edf9012a05..8b930946c52a7dec05657470016946b1c3492123 100644 (file)
@@ -30,3 +30,21 @@ The above steps create a new group g1 and move the current shell
 process (bash) into it. CPU time consumed by this bash and its children
 can be obtained from g1/cpuacct.usage and the same is accumulated in
 /cgroups/cpuacct.usage also.
+
+cpuacct.stat file lists a few statistics which further divide the
+CPU time obtained by the cgroup into user and system times. Currently
+the following statistics are supported:
+
+user: Time spent by tasks of the cgroup in user mode.
+system: Time spent by tasks of the cgroup in kernel mode.
+
+user and system are in USER_HZ unit.
+
+cpuacct controller uses percpu_counter interface to collect user and
+system times. This has two side effects:
+
+- It is theoretically possible to see wrong values for user and system times.
+  This is because percpu_counter_read() on 32bit systems isn't safe
+  against concurrent writes.
+- It is possible to see slightly outdated values for user and system times
+  due to the batch processing nature of percpu_counter.
index a98a7fe7aabb6aa165c0d334770123ac41ebf9a4..1a608877b14e074cfc2a7fe4def001aa70e47b2b 100644 (file)
@@ -6,15 +6,14 @@ used here with the memory controller that is used in hardware.
 
 Salient features
 
-a. Enable control of both RSS (mapped) and Page Cache (unmapped) pages
+a. Enable control of Anonymous, Page Cache (mapped and unmapped) and
+   Swap Cache memory pages.
 b. The infrastructure allows easy addition of other types of memory to control
 c. Provides *zero overhead* for non memory controller users
 d. Provides a double LRU: global memory pressure causes reclaim from the
    global LRU; a cgroup on hitting a limit, reclaims from the per
    cgroup LRU
 
-NOTE: Swap Cache (unmapped) is not accounted now.
-
 Benefits and Purpose of the memory controller
 
 The memory controller isolates the memory behaviour of a group of tasks
@@ -290,34 +289,44 @@ will be charged as a new owner of it.
   moved to the parent. If you want to avoid that, force_empty will be useful.
 
 5.2 stat file
-  memory.stat file includes following statistics (now)
-       cache                   - # of pages from page-cache and shmem.
-       rss                     - # of pages from anonymous memory.
-       pgpgin                  - # of event of charging
-       pgpgout                 - # of event of uncharging
-       active_anon             - # of pages on active lru of anon, shmem.
-       inactive_anon           - # of pages on active lru of anon, shmem
-       active_file             - # of pages on active lru of file-cache
-       inactive_file           - # of pages on inactive lru of file cache
-       unevictable             - # of pages cannot be reclaimed.(mlocked etc)
-
-       Below is depend on CONFIG_DEBUG_VM.
-       inactive_ratio          - VM internal parameter. (see mm/page_alloc.c)
-       recent_rotated_anon     - VM internal parameter. (see mm/vmscan.c)
-       recent_rotated_file     - VM internal parameter. (see mm/vmscan.c)
-       recent_scanned_anon     - VM internal parameter. (see mm/vmscan.c)
-       recent_scanned_file     - VM internal parameter. (see mm/vmscan.c)
-
-  Memo:
+
+memory.stat file includes following statistics
+
+cache          - # of bytes of page cache memory.
+rss            - # of bytes of anonymous and swap cache memory.
+pgpgin         - # of pages paged in (equivalent to # of charging events).
+pgpgout                - # of pages paged out (equivalent to # of uncharging events).
+active_anon    - # of bytes of anonymous and  swap cache memory on active
+                 lru list.
+inactive_anon  - # of bytes of anonymous memory and swap cache memory on
+                 inactive lru list.
+active_file    - # of bytes of file-backed memory on active lru list.
+inactive_file  - # of bytes of file-backed memory on inactive lru list.
+unevictable    - # of bytes of memory that cannot be reclaimed (mlocked etc).
+
+The following additional stats are dependent on CONFIG_DEBUG_VM.
+
+inactive_ratio         - VM internal parameter. (see mm/page_alloc.c)
+recent_rotated_anon    - VM internal parameter. (see mm/vmscan.c)
+recent_rotated_file    - VM internal parameter. (see mm/vmscan.c)
+recent_scanned_anon    - VM internal parameter. (see mm/vmscan.c)
+recent_scanned_file    - VM internal parameter. (see mm/vmscan.c)
+
+Memo:
        recent_rotated means recent frequency of lru rotation.
        recent_scanned means recent # of scans to lru.
        showing for better debug please see the code for meanings.
 
+Note:
+       Only anonymous and swap cache memory is listed as part of 'rss' stat.
+       This should not be confused with the true 'resident set size' or the
+       amount of physical memory used by the cgroup. Per-cgroup rss
+       accounting is not done yet.
 
 5.3 swappiness
   Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only.
 
-  Following cgroup's swapiness can't be changed.
+  Following cgroups' swapiness can't be changed.
   - root cgroup (uses /proc/sys/vm/swappiness).
   - a cgroup which uses hierarchy and it has child cgroup.
   - a cgroup which uses hierarchy and not the root of hierarchy.
index f196ac1d7d2526507a55ff6bc70f903fcc9ee56d..95b24d766eab755ac443f095ff613a638494bafb 100644 (file)
@@ -47,13 +47,18 @@ to work with it.
 
 2. Basic accounting routines
 
- a. void res_counter_init(struct res_counter *rc)
+ a. void res_counter_init(struct res_counter *rc,
+                               struct res_counter *rc_parent)
 
        Initializes the resource counter. As usual, should be the first
        routine called for a new counter.
 
- b. int res_counter_charge[_locked]
-                       (struct res_counter *rc, unsigned long val)
+       The struct res_counter *parent can be used to define a hierarchical
+       child -> parent relationship directly in the res_counter structure,
+       NULL can be used to define no relationship.
+
+ c. int res_counter_charge(struct res_counter *rc, unsigned long val,
+                               struct res_counter **limit_fail_at)
 
        When a resource is about to be allocated it has to be accounted
        with the appropriate resource counter (controller should determine
@@ -67,15 +72,25 @@ to work with it.
          * if the charging is performed first, then it should be uncharged
            on error path (if the one is called).
 
- c. void res_counter_uncharge[_locked]
+       If the charging fails and a hierarchical dependency exists, the
+       limit_fail_at parameter is set to the particular res_counter element
+       where the charging failed.
+
+ d. int res_counter_charge_locked
+                       (struct res_counter *rc, unsigned long val)
+
+       The same as res_counter_charge(), but it must not acquire/release the
+       res_counter->lock internally (it must be called with res_counter->lock
+       held).
+
+ e. void res_counter_uncharge[_locked]
                        (struct res_counter *rc, unsigned long val)
 
        When a resource is released (freed) it should be de-accounted
        from the resource counter it was accounted to.  This is called
        "uncharging".
 
-    The _locked routines imply that the res_counter->lock is taken.
-
+       The _locked routines imply that the res_counter->lock is taken.
 
  2.1 Other accounting routines
 
index 7e2af10e82645570a7ad426bc3e73ea3b6497ea7..de491a3e23131001c7e308e30aa12f8326159f69 100644 (file)
@@ -428,3 +428,12 @@ Why:       In 2.6.27, the semantics of /sys/bus/pci/slots was redefined to
        After a reasonable transition period, we will remove the legacy
        fakephp interface.
 Who:   Alex Chiang <achiang@hp.com>
+
+---------------------------
+
+What:  i2c-voodoo3 driver
+When:  October 2009
+Why:   Superseded by tdfxfb. I2C/DDC support used to live in a separate
+       driver but this caused driver conflicts.
+Who:   Jean Delvare <khali@linux-fr.org>
+       Krzysztof Helt <krzysztof.h1@wp.pl>
index 864ff32837803da00c5c0d8cfde27e754216ef95..6d40f00b358caa42a1d217fb7f6c6a185915ea86 100644 (file)
@@ -24,6 +24,49 @@ Partitions and P_Keys
   The P_Key for any interface is given by the "pkey" file, and the
   main interface for a subinterface is in "parent."
 
+Datagram vs Connected modes
+
+  The IPoIB driver supports two modes of operation: datagram and
+  connected.  The mode is set and read through an interface's
+  /sys/class/net/<intf name>/mode file.
+
+  In datagram mode, the IB UD (Unreliable Datagram) transport is used
+  and so the interface MTU has is equal to the IB L2 MTU minus the
+  IPoIB encapsulation header (4 bytes).  For example, in a typical IB
+  fabric with a 2K MTU, the IPoIB MTU will be 2048 - 4 = 2044 bytes.
+
+  In connected mode, the IB RC (Reliable Connected) transport is used.
+  Connected mode is to takes advantage of the connected nature of the
+  IB transport and allows an MTU up to the maximal IP packet size of
+  64K, which reduces the number of IP packets needed for handling
+  large UDP datagrams, TCP segments, etc and increases the performance
+  for large messages.
+
+  In connected mode, the interface's UD QP is still used for multicast
+  and communication with peers that don't support connected mode. In
+  this case, RX emulation of ICMP PMTU packets is used to cause the
+  networking stack to use the smaller UD MTU for these neighbours.
+
+Stateless offloads
+
+  If the IB HW supports IPoIB stateless offloads, IPoIB advertises
+  TCP/IP checksum and/or Large Send (LSO) offloading capability to the
+  network stack.
+
+  Large Receive (LRO) offloading is also implemented and may be turned
+  on/off using ethtool calls.  Currently LRO is supported only for
+  checksum offload capable devices.
+
+  Stateless offloads are supported only in datagram mode.  
+
+Interrupt moderation
+
+  If the underlying IB device supports CQ event moderation, one can
+  use ethtool to set interrupt mitigation parameters and thus reduce
+  the overhead incurred by handling interrupts.  The main code path of
+  IPoIB doesn't use events for TX completion signaling so only RX
+  moderation is supported.
+
 Debugging Information
 
   By compiling the IPoIB driver with CONFIG_INFINIBAND_IPOIB_DEBUG set
@@ -55,3 +98,5 @@ References
     http://ietf.org/rfc/rfc4391.txt 
   IP over InfiniBand (IPoIB) Architecture (RFC 4392)
     http://ietf.org/rfc/rfc4392.txt 
+  IP over InfiniBand: Connected Mode (RFC 4755)
+    http://ietf.org/rfc/rfc4755.txt
diff --git a/Documentation/input/rotary-encoder.txt b/Documentation/input/rotary-encoder.txt
new file mode 100644 (file)
index 0000000..435102a
--- /dev/null
@@ -0,0 +1,101 @@
+rotary-encoder - a generic driver for GPIO connected devices
+Daniel Mack <daniel@caiaq.de>, Feb 2009
+
+0. Function
+-----------
+
+Rotary encoders are devices which are connected to the CPU or other
+peripherals with two wires. The outputs are phase-shifted by 90 degrees
+and by triggering on falling and rising edges, the turn direction can
+be determined.
+
+The phase diagram of these two outputs look like this:
+
+                  _____       _____       _____
+                 |     |     |     |     |     |
+  Channel A  ____|     |_____|     |_____|     |____
+
+                 :  :  :  :  :  :  :  :  :  :  :  :
+            __       _____       _____       _____
+              |     |     |     |     |     |     |
+  Channel B   |_____|     |_____|     |_____|     |__
+
+                 :  :  :  :  :  :  :  :  :  :  :  :
+  Event          a  b  c  d  a  b  c  d  a  b  c  d
+
+                |<-------->|
+                 one step
+
+
+For more information, please see
+       http://en.wikipedia.org/wiki/Rotary_encoder
+
+
+1. Events / state machine
+-------------------------
+
+a) Rising edge on channel A, channel B in low state
+       This state is used to recognize a clockwise turn
+
+b) Rising edge on channel B, channel A in high state
+       When entering this state, the encoder is put into 'armed' state,
+       meaning that there it has seen half the way of a one-step transition.
+
+c) Falling edge on channel A, channel B in high state
+       This state is used to recognize a counter-clockwise turn
+
+d) Falling edge on channel B, channel A in low state
+       Parking position. If the encoder enters this state, a full transition
+       should have happend, unless it flipped back on half the way. The
+       'armed' state tells us about that.
+
+2. Platform requirements
+------------------------
+
+As there is no hardware dependent call in this driver, the platform it is
+used with must support gpiolib. Another requirement is that IRQs must be
+able to fire on both edges.
+
+
+3. Board integration
+--------------------
+
+To use this driver in your system, register a platform_device with the
+name 'rotary-encoder' and associate the IRQs and some specific platform
+data with it.
+
+struct rotary_encoder_platform_data is declared in
+include/linux/rotary-encoder.h and needs to be filled with the number of
+steps the encoder has and can carry information about externally inverted
+signals (because of used invertig buffer or other reasons).
+
+Because GPIO to IRQ mapping is platform specific, this information must
+be given in seperately to the driver. See the example below.
+
+---------<snip>---------
+
+/* board support file example */
+
+#include <linux/input.h>
+#include <linux/rotary_encoder.h>
+
+#define GPIO_ROTARY_A 1
+#define GPIO_ROTARY_B 2
+
+static struct rotary_encoder_platform_data my_rotary_encoder_info = {
+       .steps          = 24,
+       .axis           = ABS_X,
+       .gpio_a         = GPIO_ROTARY_A,
+       .gpio_b         = GPIO_ROTARY_B,
+       .inverted_a     = 0,
+       .inverted_b     = 0,
+};
+
+static struct platform_device rotary_encoder_device = {
+       .name           = "rotary-encoder",
+       .id             = 0,
+       .dev            = {
+               .platform_data = &my_rotary_encoder_info,
+       }
+};
+
index 51104f9194a54feb64058f4b8f35f3b4d7cbc88f..d4b05672f9f76f3a17bde1c3599c23182ca8d361 100644 (file)
@@ -40,10 +40,16 @@ This document describes the Linux kernel Makefiles.
           --- 6.7 Custom kbuild commands
           --- 6.8 Preprocessing linker scripts
 
-       === 7 Kbuild Variables
-       === 8 Makefile language
-       === 9 Credits
-       === 10 TODO
+       === 7 Kbuild syntax for exported headers
+               --- 7.1 header-y
+               --- 7.2 objhdr-y
+               --- 7.3 destination-y
+               --- 7.4 unifdef-y (deprecated)
+
+       === 8 Kbuild Variables
+       === 9 Makefile language
+       === 10 Credits
+       === 11 TODO
 
 === 1 Overview
 
@@ -1143,8 +1149,69 @@ When kbuild executes, the following steps are followed (roughly):
        The kbuild infrastructure for *lds file are used in several
        architecture-specific files.
 
+=== 7 Kbuild syntax for exported headers
+
+The kernel include a set of headers that is exported to userspace.
+Many headers can be exported as-is but other headers requires  a
+minimal pre-processing before they are ready for user-space.
+The pre-processing does:
+- drop kernel specific annotations
+- drop include of compiler.h
+- drop all sections that is kernel internat (guarded by ifdef __KERNEL__)
+
+Each relevant directory contain a file name "Kbuild" which specify the
+headers to be exported.
+See subsequent chapter for the syntax of the Kbuild file.
+
+       --- 7.1 header-y
+
+       header-y specify header files to be exported.
+
+               Example:
+                       #include/linux/Kbuild
+                       header-y += usb/
+                       header-y += aio_abi.h
+
+       The convention is to list one file per line and
+       preferably in alphabetic order.
+
+       header-y also specify which subdirectories to visit.
+       A subdirectory is identified by a trailing '/' which
+       can be seen in the example above for the usb subdirectory.
+
+       Subdirectories are visited before their parent directories.
+
+       --- 7.2 objhdr-y
+
+       objhdr-y specifies generated files to be exported.
+       Generated files are special as they need to be looked
+       up in another directory when doing 'make O=...' builds.
+
+               Example:
+                       #include/linux/Kbuild
+                       objhdr-y += version.h
+
+       --- 7.3 destination-y
+
+       When an architecture have a set of exported headers that needs to be
+       exported to a different directory destination-y is used.
+       destination-y specify the destination directory for all exported
+       headers in the file where it is present.
+
+               Example:
+                       #arch/xtensa/platforms/s6105/include/platform/Kbuild
+                       destination-y := include/linux
+
+       In the example above all exported headers in the Kbuild file
+       will be located in the directory "include/linux" when exported.
+
+
+       --- 7.4 unifdef-y (deprecated)
+
+       unifdef-y is deprecated. A direct replacement is header-y.
+
 
-=== 7 Kbuild Variables
+=== 8 Kbuild Variables
 
 The top Makefile exports the following variables:
 
@@ -1206,7 +1273,7 @@ The top Makefile exports the following variables:
        INSTALL_MOD_STRIP will used as the option(s) to the strip command.
 
 
-=== 8 Makefile language
+=== 9 Makefile language
 
 The kernel Makefiles are designed to be run with GNU Make.  The Makefiles
 use only the documented features of GNU Make, but they do use many
@@ -1225,14 +1292,14 @@ time the left-hand side is used.
 There are some cases where "=" is appropriate.  Usually, though, ":="
 is the right choice.
 
-=== 9 Credits
+=== 10 Credits
 
 Original version made by Michael Elizabeth Chastain, <mailto:mec@shout.net>
 Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
 Updates by Sam Ravnborg <sam@ravnborg.org>
 Language QA by Jan Engelhardt <jengelh@gmx.de>
 
-=== 10 TODO
+=== 11 TODO
 
 - Describe how kbuild supports shipped files with _shipped.
 - Generating offset header files.
index 42f43fa59f24c75c1f553dc5078f88b949302fd9..34c76a55bc0423182db5c73f76415503e2a7de1d 100644 (file)
@@ -42,6 +42,14 @@ sure that bitwise types don't get mixed up (little-endian vs big-endian
 vs cpu-endian vs whatever), and there the constant "0" really _is_
 special.
 
+__bitwise__ - to be used for relatively compact stuff (gfp_t, etc.) that
+is mostly warning-free and is supposed to stay that way.  Warnings will
+be generated without __CHECK_ENDIAN__.
+
+__bitwise - noisy stuff; in particular, __le*/__be* are that.  We really
+don't want to drown in noise unless we'd explicitly asked for it.
+
+
 Getting sparse
 ~~~~~~~~~~~~~~
 
index a34d55b65441a3cd2469efe71438b60ce3c53e4e..df38ef046f8d1372ef2ff0d45debb7b15c04f64c 100644 (file)
@@ -95,7 +95,7 @@ of struct cmsghdr structures with appended data.
 
 There is only one file in this directory.
 unix_dgram_qlen limits the max number of datagrams queued in Unix domain
-socket's buffer. It will not take effect unless PF_UNIX flag is spicified.
+socket's buffer. It will not take effect unless PF_UNIX flag is specified.
 
 
 3. /proc/sys/net/ipv4 - IPV4 settings
diff --git a/Documentation/tomoyo.txt b/Documentation/tomoyo.txt
new file mode 100644 (file)
index 0000000..b3a232c
--- /dev/null
@@ -0,0 +1,55 @@
+--- What is TOMOYO? ---
+
+TOMOYO is a name-based MAC extension (LSM module) for the Linux kernel.
+
+LiveCD-based tutorials are available at
+http://tomoyo.sourceforge.jp/en/1.6.x/1st-step/ubuntu8.04-live/
+http://tomoyo.sourceforge.jp/en/1.6.x/1st-step/centos5-live/ .
+Though these tutorials use non-LSM version of TOMOYO, they are useful for you
+to know what TOMOYO is.
+
+--- How to enable TOMOYO? ---
+
+Build the kernel with CONFIG_SECURITY_TOMOYO=y and pass "security=tomoyo" on
+kernel's command line.
+
+Please see http://tomoyo.sourceforge.jp/en/2.2.x/ for details.
+
+--- Where is documentation? ---
+
+User <-> Kernel interface documentation is available at
+http://tomoyo.sourceforge.jp/en/2.2.x/policy-reference.html .
+
+Materials we prepared for seminars and symposiums are available at
+http://sourceforge.jp/projects/tomoyo/docs/?category_id=532&language_id=1 .
+Below lists are chosen from three aspects.
+
+What is TOMOYO?
+  TOMOYO Linux Overview
+    http://sourceforge.jp/projects/tomoyo/docs/lca2009-takeda.pdf
+  TOMOYO Linux: pragmatic and manageable security for Linux
+    http://sourceforge.jp/projects/tomoyo/docs/freedomhectaipei-tomoyo.pdf
+  TOMOYO Linux: A Practical Method to Understand and Protect Your Own Linux Box
+    http://sourceforge.jp/projects/tomoyo/docs/PacSec2007-en-no-demo.pdf
+
+What can TOMOYO do?
+  Deep inside TOMOYO Linux
+    http://sourceforge.jp/projects/tomoyo/docs/lca2009-kumaneko.pdf
+  The role of "pathname based access control" in security.
+    http://sourceforge.jp/projects/tomoyo/docs/lfj2008-bof.pdf
+
+History of TOMOYO?
+  Realities of Mainlining
+    http://sourceforge.jp/projects/tomoyo/docs/lfj2008.pdf
+
+--- What is future plan? ---
+
+We believe that inode based security and name based security are complementary
+and both should be used together. But unfortunately, so far, we cannot enable
+multiple LSM modules at the same time. We feel sorry that you have to give up
+SELinux/SMACK/AppArmor etc. when you want to use TOMOYO.
+
+We hope that LSM becomes stackable in future. Meanwhile, you can use non-LSM
+version of TOMOYO, available at http://tomoyo.sourceforge.jp/en/1.6.x/ .
+LSM version of TOMOYO is a subset of non-LSM version of TOMOYO. We are planning
+to port non-LSM version's functionalities to LSM versions.
index 2131b00b63f68bc071f8a479de25bbfd2fd4172e..2f77ced35df71550db59439efefad0a3045957d3 100644 (file)
@@ -1,5 +1,7 @@
 00-INDEX
        - this file.
+active_mm.txt
+       - An explanation from Linus about tsk->active_mm vs tsk->mm.
 balance
        - various information on memory balancing.
 hugetlbpage.txt
diff --git a/Documentation/vm/active_mm.txt b/Documentation/vm/active_mm.txt
new file mode 100644 (file)
index 0000000..4ee1f64
--- /dev/null
@@ -0,0 +1,83 @@
+List:       linux-kernel
+Subject:    Re: active_mm
+From:       Linus Torvalds <torvalds () transmeta ! com>
+Date:       1999-07-30 21:36:24
+
+Cc'd to linux-kernel, because I don't write explanations all that often,
+and when I do I feel better about more people reading them.
+
+On Fri, 30 Jul 1999, David Mosberger wrote:
+>
+> Is there a brief description someplace on how "mm" vs. "active_mm" in
+> the task_struct are supposed to be used?  (My apologies if this was
+> discussed on the mailing lists---I just returned from vacation and
+> wasn't able to follow linux-kernel for a while).
+
+Basically, the new setup is:
+
+ - we have "real address spaces" and "anonymous address spaces". The
+   difference is that an anonymous address space doesn't care about the
+   user-level page tables at all, so when we do a context switch into an
+   anonymous address space we just leave the previous address space
+   active.
+
+   The obvious use for a "anonymous address space" is any thread that
+   doesn't need any user mappings - all kernel threads basically fall into
+   this category, but even "real" threads can temporarily say that for
+   some amount of time they are not going to be interested in user space,
+   and that the scheduler might as well try to avoid wasting time on
+   switching the VM state around. Currently only the old-style bdflush
+   sync does that.
+
+ - "tsk->mm" points to the "real address space". For an anonymous process,
+   tsk->mm will be NULL, for the logical reason that an anonymous process
+   really doesn't _have_ a real address space at all.
+
+ - however, we obviously need to keep track of which address space we
+   "stole" for such an anonymous user. For that, we have "tsk->active_mm",
+   which shows what the currently active address space is.
+
+   The rule is that for a process with a real address space (ie tsk->mm is
+   non-NULL) the active_mm obviously always has to be the same as the real
+   one.
+
+   For a anonymous process, tsk->mm == NULL, and tsk->active_mm is the
+   "borrowed" mm while the anonymous process is running. When the
+   anonymous process gets scheduled away, the borrowed address space is
+   returned and cleared.
+
+To support all that, the "struct mm_struct" now has two counters: a
+"mm_users" counter that is how many "real address space users" there are,
+and a "mm_count" counter that is the number of "lazy" users (ie anonymous
+users) plus one if there are any real users.
+
+Usually there is at least one real user, but it could be that the real
+user exited on another CPU while a lazy user was still active, so you do
+actually get cases where you have a address space that is _only_ used by
+lazy users. That is often a short-lived state, because once that thread
+gets scheduled away in favour of a real thread, the "zombie" mm gets
+released because "mm_users" becomes zero.
+
+Also, a new rule is that _nobody_ ever has "init_mm" as a real MM any
+more. "init_mm" should be considered just a "lazy context when no other
+context is available", and in fact it is mainly used just at bootup when
+no real VM has yet been created. So code that used to check
+
+       if (current->mm == &init_mm)
+
+should generally just do
+
+       if (!current->mm)
+
+instead (which makes more sense anyway - the test is basically one of "do
+we have a user context", and is generally done by the page fault handler
+and things like that).
+
+Anyway, I put a pre-patch-2.3.13-1 on ftp.kernel.org just a moment ago,
+because it slightly changes the interfaces to accomodate the alpha (who
+would have thought it, but the alpha actually ends up having one of the
+ugliest context switch codes - unlike the other architectures where the MM
+and register state is separate, the alpha PALcode joins the two, and you
+need to switch both together).
+
+(From http://marc.info/?l=linux-kernel&m=93337278602211&w=2)
index 0706a7282a8ca6ce26b39fd7d7d7c930d6891c94..2d70d0d95108e2ceb23af366e6d3169ca1101e7f 100644 (file)
-
-This document describes the Linux memory management "Unevictable LRU"
-infrastructure and the use of this infrastructure to manage several types
-of "unevictable" pages.  The document attempts to provide the overall
-rationale behind this mechanism and the rationale for some of the design
-decisions that drove the implementation.  The latter design rationale is
-discussed in the context of an implementation description.  Admittedly, one
-can obtain the implementation details--the "what does it do?"--by reading the
-code.  One hopes that the descriptions below add value by provide the answer
-to "why does it do that?".
-
-Unevictable LRU Infrastructure:
-
-The Unevictable LRU adds an additional LRU list to track unevictable pages
-and to hide these pages from vmscan.  This mechanism is based on a patch by
-Larry Woodman of Red Hat to address several scalability problems with page
+                       ==============================
+                       UNEVICTABLE LRU INFRASTRUCTURE
+                       ==============================
+
+========
+CONTENTS
+========
+
+ (*) The Unevictable LRU
+
+     - The unevictable page list.
+     - Memory control group interaction.
+     - Marking address spaces unevictable.
+     - Detecting Unevictable Pages.
+     - vmscan's handling of unevictable pages.
+
+ (*) mlock()'d pages.
+
+     - History.
+     - Basic management.
+     - mlock()/mlockall() system call handling.
+     - Filtering special vmas.
+     - munlock()/munlockall() system call handling.
+     - Migrating mlocked pages.
+     - mmap(MAP_LOCKED) system call handling.
+     - munmap()/exit()/exec() system call handling.
+     - try_to_unmap().
+     - try_to_munlock() reverse map scan.
+     - Page reclaim in shrink_*_list().
+
+
+============
+INTRODUCTION
+============
+
+This document describes the Linux memory manager's "Unevictable LRU"
+infrastructure and the use of this to manage several types of "unevictable"
+pages.
+
+The document attempts to provide the overall rationale behind this mechanism
+and the rationale for some of the design decisions that drove the
+implementation.  The latter design rationale is discussed in the context of an
+implementation description.  Admittedly, one can obtain the implementation
+details - the "what does it do?" - by reading the code.  One hopes that the
+descriptions below add value by provide the answer to "why does it do that?".
+
+
+===================
+THE UNEVICTABLE LRU
+===================
+
+The Unevictable LRU facility adds an additional LRU list to track unevictable
+pages and to hide these pages from vmscan.  This mechanism is based on a patch
+by Larry Woodman of Red Hat to address several scalability problems with page
 reclaim in Linux.  The problems have been observed at customer sites on large
-memory x86_64 systems.  For example, a non-numal x86_64 platform with 128GB
-of main memory will have over 32 million 4k pages in a single zone.  When a
-large fraction of these pages are not evictable for any reason [see below],
-vmscan will spend a lot of time scanning the LRU lists looking for the small
-fraction of pages that are evictable.  This can result in a situation where
-all cpus are spending 100% of their time in vmscan for hours or days on end,
-with the system completely unresponsive.
-
-The Unevictable LRU infrastructure addresses the following classes of
-unevictable pages:
-
-+ page owned by ramfs
-+ page mapped into SHM_LOCKed shared memory regions
-+ page mapped into VM_LOCKED [mlock()ed] vmas
-
-The infrastructure might be able to handle other conditions that make pages
+memory x86_64 systems.
+
+To illustrate this with an example, a non-NUMA x86_64 platform with 128GB of
+main memory will have over 32 million 4k pages in a single zone.  When a large
+fraction of these pages are not evictable for any reason [see below], vmscan
+will spend a lot of time scanning the LRU lists looking for the small fraction
+of pages that are evictable.  This can result in a situation where all CPUs are
+spending 100% of their time in vmscan for hours or days on end, with the system
+completely unresponsive.
+
+The unevictable list addresses the following classes of unevictable pages:
+
+ (*) Those owned by ramfs.
+
+ (*) Those mapped into SHM_LOCK'd shared memory regions.
+
+ (*) Those mapped into VM_LOCKED [mlock()ed] VMAs.
+
+The infrastructure may also be able to handle other conditions that make pages
 unevictable, either by definition or by circumstance, in the future.
 
 
-The Unevictable LRU List
+THE UNEVICTABLE PAGE LIST
+-------------------------
 
 The Unevictable LRU infrastructure consists of an additional, per-zone, LRU list
 called the "unevictable" list and an associated page flag, PG_unevictable, to
-indicate that the page is being managed on the unevictable list.  The
-PG_unevictable flag is analogous to, and mutually exclusive with, the PG_active
-flag in that it indicates on which LRU list a page resides when PG_lru is set.
-The unevictable LRU list is source configurable based on the UNEVICTABLE_LRU
-Kconfig option.
+indicate that the page is being managed on the unevictable list.
+
+The PG_unevictable flag is analogous to, and mutually exclusive with, the
+PG_active flag in that it indicates on which LRU list a page resides when
+PG_lru is set.  The unevictable list is compile-time configurable based on the
+UNEVICTABLE_LRU Kconfig option.
 
 The Unevictable LRU infrastructure maintains unevictable pages on an additional
 LRU list for a few reasons:
 
-1) We get to "treat unevictable pages just like we treat other pages in the
-   system, which means we get to use the same code to manipulate them, the
-   same code to isolate them (for migrate, etc.), the same code to keep track
-   of the statistics, etc..." [Rik van Riel]
+ (1) We get to "treat unevictable pages just like we treat other pages in the
+     system - which means we get to use the same code to manipulate them, the
+     same code to isolate them (for migrate, etc.), the same code to keep track
+     of the statistics, etc..." [Rik van Riel]
+
+ (2) We want to be able to migrate unevictable pages between nodes for memory
+     defragmentation, workload management and memory hotplug.  The linux kernel
+     can only migrate pages that it can successfully isolate from the LRU
+     lists.  If we were to maintain pages elsewhere than on an LRU-like list,
+     where they can be found by isolate_lru_page(), we would prevent their
+     migration, unless we reworked migration code to find the unevictable pages
+     itself.
 
-2) We want to be able to migrate unevictable pages between nodes--for memory
-   defragmentation, workload management and memory hotplug.  The linux kernel
-   can only migrate pages that it can successfully isolate from the lru lists.
-   If we were to maintain pages elsewise than on an lru-like list, where they
-   can be found by isolate_lru_page(), we would prevent their migration, unless
-   we reworked migration code to find the unevictable pages.
 
+The unevictable list does not differentiate between file-backed and anonymous,
+swap-backed pages.  This differentiation is only important while the pages are,
+in fact, evictable.
 
-The unevictable LRU list does not differentiate between file backed and swap
-backed [anon] pages.  This differentiation is only important while the pages
-are, in fact, evictable.
+The unevictable list benefits from the "arrayification" of the per-zone LRU
+lists and statistics originally proposed and posted by Christoph Lameter.
 
-The unevictable LRU list benefits from the "arrayification" of the per-zone
-LRU lists and statistics originally proposed and posted by Christoph Lameter.
+The unevictable list does not use the LRU pagevec mechanism. Rather,
+unevictable pages are placed directly on the page's zone's unevictable list
+under the zone lru_lock.  This allows us to prevent the stranding of pages on
+the unevictable list when one task has the page isolated from the LRU and other
+tasks are changing the "evictability" state of the page.
 
-The unevictable list does not use the lru pagevec mechanism. Rather,
-unevictable pages are placed directly on the page's zone's unevictable
-list under the zone lru_lock.  The reason for this is to prevent stranding
-of pages on the unevictable list when one task has the page isolated from the
-lru and other tasks are changing the "evictability" state of the page.
 
+MEMORY CONTROL GROUP INTERACTION
+--------------------------------
 
-Unevictable LRU and Memory Controller Interaction
+The unevictable LRU facility interacts with the memory control group [aka
+memory controller; see Documentation/cgroups/memory.txt] by extending the
+lru_list enum.
+
+The memory controller data structure automatically gets a per-zone unevictable
+list as a result of the "arrayification" of the per-zone LRU lists (one per
+lru_list enum element).  The memory controller tracks the movement of pages to
+and from the unevictable list.
 
-The memory controller data structure automatically gets a per zone unevictable
-lru list as a result of the "arrayification" of the per-zone LRU lists.  The
-memory controller tracks the movement of pages to and from the unevictable list.
 When a memory control group comes under memory pressure, the controller will
 not attempt to reclaim pages on the unevictable list.  This has a couple of
-effects.  Because the pages are "hidden" from reclaim on the unevictable list,
-the reclaim process can be more efficient, dealing only with pages that have
-a chance of being reclaimed.  On the other hand, if too many of the pages
-charged to the control group are unevictable, the evictable portion of the
-working set of the tasks in the control group may not fit into the available
-memory.  This can cause the control group to thrash or to oom-kill tasks.
-
-
-Unevictable LRU:  Detecting Unevictable Pages
-
-The function page_evictable(page, vma) in vmscan.c determines whether a
-page is evictable or not.  For ramfs pages and pages in SHM_LOCKed regions,
-page_evictable() tests a new address space flag, AS_UNEVICTABLE, in the page's
-address space using a wrapper function.  Wrapper functions are used to set,
-clear and test the flag to reduce the requirement for #ifdef's throughout the
-source code.  AS_UNEVICTABLE is set on ramfs inode/mapping when it is created.
-This flag remains for the life of the inode.
-
-For shared memory regions, AS_UNEVICTABLE is set when an application
-successfully SHM_LOCKs the region and is removed when the region is
-SHM_UNLOCKed.  Note that shmctl(SHM_LOCK, ...) does not populate the page
-tables for the region as does, for example, mlock().   So, we make no special
-effort to push any pages in the SHM_LOCKed region to the unevictable list.
-Vmscan will do this when/if it encounters the pages during reclaim.  On
-SHM_UNLOCK, shmctl() scans the pages in the region and "rescues" them from the
-unevictable list if no other condition keeps them unevictable.  If a SHM_LOCKed
-region is destroyed, the pages are also "rescued" from the unevictable list in
-the process of freeing them.
-
-page_evictable() detects mlock()ed pages by testing an additional page flag,
-PG_mlocked via the PageMlocked() wrapper.  If the page is NOT mlocked, and a
-non-NULL vma is supplied, page_evictable() will check whether the vma is
+effects:
+
+ (1) Because the pages are "hidden" from reclaim on the unevictable list, the
+     reclaim process can be more efficient, dealing only with pages that have a
+     chance of being reclaimed.
+
+ (2) On the other hand, if too many of the pages charged to the control group
+     are unevictable, the evictable portion of the working set of the tasks in
+     the control group may not fit into the available memory.  This can cause
+     the control group to thrash or to OOM-kill tasks.
+
+
+MARKING ADDRESS SPACES UNEVICTABLE
+----------------------------------
+
+For facilities such as ramfs none of the pages attached to the address space
+may be evicted.  To prevent eviction of any such pages, the AS_UNEVICTABLE
+address space flag is provided, and this can be manipulated by a filesystem
+using a number of wrapper functions:
+
+ (*) void mapping_set_unevictable(struct address_space *mapping);
+
+       Mark the address space as being completely unevictable.
+
+ (*) void mapping_clear_unevictable(struct address_space *mapping);
+
+       Mark the address space as being evictable.
+
+ (*) int mapping_unevictable(struct address_space *mapping);
+
+       Query the address space, and return true if it is completely
+       unevictable.
+
+These are currently used in two places in the kernel:
+
+ (1) By ramfs to mark the address spaces of its inodes when they are created,
+     and this mark remains for the life of the inode.
+
+ (2) By SYSV SHM to mark SHM_LOCK'd address spaces until SHM_UNLOCK is called.
+
+     Note that SHM_LOCK is not required to page in the locked pages if they're
+     swapped out; the application must touch the pages manually if it wants to
+     ensure they're in memory.
+
+
+DETECTING UNEVICTABLE PAGES
+---------------------------
+
+The function page_evictable() in vmscan.c determines whether a page is
+evictable or not using the query function outlined above [see section "Marking
+address spaces unevictable"] to check the AS_UNEVICTABLE flag.
+
+For address spaces that are so marked after being populated (as SHM regions
+might be), the lock action (eg: SHM_LOCK) can be lazy, and need not populate
+the page tables for the region as does, for example, mlock(), nor need it make
+any special effort to push any pages in the SHM_LOCK'd area to the unevictable
+list.  Instead, vmscan will do this if and when it encounters the pages during
+a reclamation scan.
+
+On an unlock action (such as SHM_UNLOCK), the unlocker (eg: shmctl()) must scan
+the pages in the region and "rescue" them from the unevictable list if no other
+condition is keeping them unevictable.  If an unevictable region is destroyed,
+the pages are also "rescued" from the unevictable list in the process of
+freeing them.
+
+page_evictable() also checks for mlocked pages by testing an additional page
+flag, PG_mlocked (as wrapped by PageMlocked()).  If the page is NOT mlocked,
+and a non-NULL VMA is supplied, page_evictable() will check whether the VMA is
 VM_LOCKED via is_mlocked_vma().  is_mlocked_vma() will SetPageMlocked() and
 update the appropriate statistics if the vma is VM_LOCKED.  This method allows
 efficient "culling" of pages in the fault path that are being faulted in to
-VM_LOCKED vmas.
+VM_LOCKED VMAs.
 
 
-Unevictable Pages and Vmscan [shrink_*_list()]
+VMSCAN'S HANDLING OF UNEVICTABLE PAGES
+--------------------------------------
 
 If unevictable pages are culled in the fault path, or moved to the unevictable
-list at mlock() or mmap() time, vmscan will never encounter the pages until
-they have become evictable again, for example, via munlock() and have been
-"rescued" from the unevictable list.  However, there may be situations where we
-decide, for the sake of expediency, to leave a unevictable page on one of the
-regular active/inactive LRU lists for vmscan to deal with.  Vmscan checks for
-such pages in all of the shrink_{active|inactive|page}_list() functions and
-will "cull" such pages that it encounters--that is, it diverts those pages to
-the unevictable list for the zone being scanned.
-
-There may be situations where a page is mapped into a VM_LOCKED vma, but the
-page is not marked as PageMlocked.  Such pages will make it all the way to
+list at mlock() or mmap() time, vmscan will not encounter the pages until they
+have become evictable again (via munlock() for example) and have been "rescued"
+from the unevictable list.  However, there may be situations where we decide,
+for the sake of expediency, to leave a unevictable page on one of the regular
+active/inactive LRU lists for vmscan to deal with.  vmscan checks for such
+pages in all of the shrink_{active|inactive|page}_list() functions and will
+"cull" such pages that it encounters: that is, it diverts those pages to the
+unevictable list for the zone being scanned.
+
+There may be situations where a page is mapped into a VM_LOCKED VMA, but the
+page is not marked as PG_mlocked.  Such pages will make it all the way to
 shrink_page_list() where they will be detected when vmscan walks the reverse
-map in try_to_unmap().  If try_to_unmap() returns SWAP_MLOCK, shrink_page_list()
-will cull the page at that point.
+map in try_to_unmap().  If try_to_unmap() returns SWAP_MLOCK,
+shrink_page_list() will cull the page at that point.
 
-To "cull" an unevictable page, vmscan simply puts the page back on the lru
-list using putback_lru_page()--the inverse operation to isolate_lru_page()--
-after dropping the page lock.  Because the condition which makes the page
-unevictable may change once the page is unlocked, putback_lru_page() will
-recheck the unevictable state of a page that it places on the unevictable lru
-list.  If the page has become unevictable, putback_lru_page() removes it from
-the list and retries, including the page_unevictable() test.  Because such a
-race is a rare event and movement of pages onto the unevictable list should be
-rare, these extra evictabilty checks should not occur in the majority of calls
-to putback_lru_page().
+To "cull" an unevictable page, vmscan simply puts the page back on the LRU list
+using putback_lru_page() - the inverse operation to isolate_lru_page() - after
+dropping the page lock.  Because the condition which makes the page unevictable
+may change once the page is unlocked, putback_lru_page() will recheck the
+unevictable state of a page that it places on the unevictable list.  If the
+page has become unevictable, putback_lru_page() removes it from the list and
+retries, including the page_unevictable() test.  Because such a race is a rare
+event and movement of pages onto the unevictable list should be rare, these
+extra evictabilty checks should not occur in the majority of calls to
+putback_lru_page().
 
 
-Mlocked Page:  Prior Work
+=============
+MLOCKED PAGES
+=============
 
-The "Unevictable Mlocked Pages" infrastructure is based on work originally
+The unevictable page list is also useful for mlock(), in addition to ramfs and
+SYSV SHM.  Note that mlock() is only available in CONFIG_MMU=y situations; in
+NOMMU situations, all mappings are effectively mlocked.
+
+
+HISTORY
+-------
+
+The "Unevictable mlocked Pages" infrastructure is based on work originally
 posted by Nick Piggin in an RFC patch entitled "mm: mlocked pages off LRU".
-Nick posted his patch as an alternative to a patch posted by Christoph
-Lameter to achieve the same objective--hiding mlocked pages from vmscan.
-In Nick's patch, he used one of the struct page lru list link fields as a count
-of VM_LOCKED vmas that map the page.  This use of the link field for a count
-prevented the management of the pages on an LRU list.  Thus, mlocked pages were
-not migratable as isolate_lru_page() could not find them and the lru list link
-field was not available to the migration subsystem.  Nick resolved this by
-putting mlocked pages back on the lru list before attempting to isolate them,
-thus abandoning the count of VM_LOCKED vmas.  When Nick's patch was integrated
-with the Unevictable LRU work, the count was replaced by walking the reverse
-map to determine whether any VM_LOCKED vmas mapped the page.  More on this
-below.
-
-
-Mlocked Pages:  Basic Management
-
-Mlocked pages--pages mapped into a VM_LOCKED vma--represent one class of
-unevictable pages.  When such a page has been "noticed" by the memory
-management subsystem, the page is marked with the PG_mlocked [PageMlocked()]
-flag.  A PageMlocked() page will be placed on the unevictable LRU list when
-it is added to the LRU.   Pages can be "noticed" by memory management in
-several places:
-
-1) in the mlock()/mlockall() system call handlers.
-2) in the mmap() system call handler when mmap()ing a region with the
-   MAP_LOCKED flag, or mmap()ing a region in a task that has called
-   mlockall() with the MCL_FUTURE flag.  Both of these conditions result
-   in the VM_LOCKED flag being set for the vma.
-3) in the fault path, if mlocked pages are "culled" in the fault path,
-   and when a VM_LOCKED stack segment is expanded.
-4) as mentioned above, in vmscan:shrink_page_list() when attempting to
-   reclaim a page in a VM_LOCKED vma via try_to_unmap().
-
-Mlocked pages become unlocked and rescued from the unevictable list when:
-
-1) mapped in a range unlocked via the munlock()/munlockall() system calls.
-2) munmapped() out of the last VM_LOCKED vma that maps the page, including
-   unmapping at task exit.
-3) when the page is truncated from the last VM_LOCKED vma of an mmap()ed file.
-4) before a page is COWed in a VM_LOCKED vma.
-
-
-Mlocked Pages:  mlock()/mlockall() System Call Handling
+Nick posted his patch as an alternative to a patch posted by Christoph Lameter
+to achieve the same objective: hiding mlocked pages from vmscan.
+
+In Nick's patch, he used one of the struct page LRU list link fields as a count
+of VM_LOCKED VMAs that map the page.  This use of the link field for a count
+prevented the management of the pages on an LRU list, and thus mlocked pages
+were not migratable as isolate_lru_page() could not find them, and the LRU list
+link field was not available to the migration subsystem.
+
+Nick resolved this by putting mlocked pages back on the lru list before
+attempting to isolate them, thus abandoning the count of VM_LOCKED VMAs.  When
+Nick's patch was integrated with the Unevictable LRU work, the count was
+replaced by walking the reverse map to determine whether any VM_LOCKED VMAs
+mapped the page.  More on this below.
+
+
+BASIC MANAGEMENT
+----------------
+
+mlocked pages - pages mapped into a VM_LOCKED VMA - are a class of unevictable
+pages.  When such a page has been "noticed" by the memory management subsystem,
+the page is marked with the PG_mlocked flag.  This can be manipulated using the
+PageMlocked() functions.
+
+A PG_mlocked page will be placed on the unevictable list when it is added to
+the LRU.  Such pages can be "noticed" by memory management in several places:
+
+ (1) in the mlock()/mlockall() system call handlers;
+
+ (2) in the mmap() system call handler when mmapping a region with the
+     MAP_LOCKED flag;
+
+ (3) mmapping a region in a task that has called mlockall() with the MCL_FUTURE
+     flag
+
+ (4) in the fault path, if mlocked pages are "culled" in the fault path,
+     and when a VM_LOCKED stack segment is expanded; or
+
+ (5) as mentioned above, in vmscan:shrink_page_list() when attempting to
+     reclaim a page in a VM_LOCKED VMA via try_to_unmap()
+
+all of which result in the VM_LOCKED flag being set for the VMA if it doesn't
+already have it set.
+
+mlocked pages become unlocked and rescued from the unevictable list when:
+
+ (1) mapped in a range unlocked via the munlock()/munlockall() system calls;
+
+ (2) munmap()'d out of the last VM_LOCKED VMA that maps the page, including
+     unmapping at task exit;
+
+ (3) when the page is truncated from the last VM_LOCKED VMA of an mmapped file;
+     or
+
+ (4) before a page is COW'd in a VM_LOCKED VMA.
+
+
+mlock()/mlockall() SYSTEM CALL HANDLING
+---------------------------------------
 
 Both [do_]mlock() and [do_]mlockall() system call handlers call mlock_fixup()
-for each vma in the range specified by the call.  In the case of mlockall(),
+for each VMA in the range specified by the call.  In the case of mlockall(),
 this is the entire active address space of the task.  Note that mlock_fixup()
-is used for both mlock()ing and munlock()ing a range of memory.  A call to
-mlock() an already VM_LOCKED vma, or to munlock() a vma that is not VM_LOCKED
-is treated as a no-op--mlock_fixup() simply returns.
-
-If the vma passes some filtering described in "Mlocked Pages:  Filtering Vmas"
-below, mlock_fixup() will attempt to merge the vma with its neighbors or split
-off a subset of the vma if the range does not cover the entire vma.  Once the
-vma has been merged or split or neither, mlock_fixup() will call
-__mlock_vma_pages_range() to fault in the pages via get_user_pages() and
-to mark the pages as mlocked via mlock_vma_page().
-
-Note that the vma being mlocked might be mapped with PROT_NONE.  In this case,
-get_user_pages() will be unable to fault in the pages.  That's OK.  If pages
-do end up getting faulted into this VM_LOCKED vma, we'll handle them in the
+is used for both mlocking and munlocking a range of memory.  A call to mlock()
+an already VM_LOCKED VMA, or to munlock() a VMA that is not VM_LOCKED is
+treated as a no-op, and mlock_fixup() simply returns.
+
+If the VMA passes some filtering as described in "Filtering Special Vmas"
+below, mlock_fixup() will attempt to merge the VMA with its neighbors or split
+off a subset of the VMA if the range does not cover the entire VMA.  Once the
+VMA has been merged or split or neither, mlock_fixup() will call
+__mlock_vma_pages_range() to fault in the pages via get_user_pages() and to
+mark the pages as mlocked via mlock_vma_page().
+
+Note that the VMA being mlocked might be mapped with PROT_NONE.  In this case,
+get_user_pages() will be unable to fault in the pages.  That's okay.  If pages
+do end up getting faulted into this VM_LOCKED VMA, we'll handle them in the
 fault path or in vmscan.
 
 Also note that a page returned by get_user_pages() could be truncated or
-migrated out from under us, while we're trying to mlock it.  To detect
-this, __mlock_vma_pages_range() tests the page_mapping after acquiring
-the page lock.  If the page is still associated with its mapping, we'll
-go ahead and call mlock_vma_page().  If the mapping is gone, we just
-unlock the page and move on.  Worse case, this results in page mapped
-in a VM_LOCKED vma remaining on a normal LRU list without being
-PageMlocked().  Again, vmscan will detect and cull such pages.
-
-mlock_vma_page(), called with the page locked [N.B., not "mlocked"], will
-TestSetPageMlocked() for each page returned by get_user_pages().  We use
-TestSetPageMlocked() because the page might already be mlocked by another
-task/vma and we don't want to do extra work.  We especially do not want to
-count an mlocked page more than once in the statistics.  If the page was
-already mlocked, mlock_vma_page() is done.
+migrated out from under us, while we're trying to mlock it.  To detect this,
+__mlock_vma_pages_range() checks page_mapping() after acquiring the page lock.
+If the page is still associated with its mapping, we'll go ahead and call
+mlock_vma_page().  If the mapping is gone, we just unlock the page and move on.
+In the worst case, this will result in a page mapped in a VM_LOCKED VMA
+remaining on a normal LRU list without being PageMlocked().  Again, vmscan will
+detect and cull such pages.
+
+mlock_vma_page() will call TestSetPageMlocked() for each page returned by
+get_user_pages().  We use TestSetPageMlocked() because the page might already
+be mlocked by another task/VMA and we don't want to do extra work.  We
+especially do not want to count an mlocked page more than once in the
+statistics.  If the page was already mlocked, mlock_vma_page() need do nothing
+more.
 
 If the page was NOT already mlocked, mlock_vma_page() attempts to isolate the
 page from the LRU, as it is likely on the appropriate active or inactive list
-at that time.  If the isolate_lru_page() succeeds, mlock_vma_page() will
-putback the page--putback_lru_page()--which will notice that the page is now
-mlocked and divert the page to the zone's unevictable LRU list.  If
+at that time.  If the isolate_lru_page() succeeds, mlock_vma_page() will put
+back the page - by calling putback_lru_page() - which will notice that the page
+is now mlocked and divert the page to the zone's unevictable list.  If
 mlock_vma_page() is unable to isolate the page from the LRU, vmscan will handle
-it later if/when it attempts to reclaim the page.
+it later if and when it attempts to reclaim the page.
 
 
-Mlocked Pages:  Filtering Special Vmas
+FILTERING SPECIAL VMAS
+----------------------
 
-mlock_fixup() filters several classes of "special" vmas:
+mlock_fixup() filters several classes of "special" VMAs:
 
-1) vmas with VM_IO|VM_PFNMAP set are skipped entirely.  The pages behind
+1) VMAs with VM_IO or VM_PFNMAP set are skipped entirely.  The pages behind
    these mappings are inherently pinned, so we don't need to mark them as
-   mlocked.  In any case, most of the pages have no struct page in which to
-   so mark the page.  Because of this, get_user_pages() will fail for these
-   vmas, so there is no sense in attempting to visit them.
-
-2) vmas mapping hugetlbfs page are already effectively pinned into memory.
-   We don't need nor want to mlock() these pages.  However, to preserve the
-   prior behavior of mlock()--before the unevictable/mlock changes--
-   mlock_fixup() will call make_pages_present() in the hugetlbfs vma range
-   to allocate the huge pages and populate the ptes.
-
-3) vmas with VM_DONTEXPAND|VM_RESERVED are generally user space mappings of
-   kernel pages, such as the vdso page, relay channel pages, etc.  These pages
+   mlocked.  In any case, most of the pages have no struct page in which to so
+   mark the page.  Because of this, get_user_pages() will fail for these VMAs,
+   so there is no sense in attempting to visit them.
+
+2) VMAs mapping hugetlbfs page are already effectively pinned into memory.  We
+   neither need nor want to mlock() these pages.  However, to preserve the
+   prior behavior of mlock() - before the unevictable/mlock changes -
+   mlock_fixup() will call make_pages_present() in the hugetlbfs VMA range to
+   allocate the huge pages and populate the ptes.
+
+3) VMAs with VM_DONTEXPAND or VM_RESERVED are generally userspace mappings of
+   kernel pages, such as the VDSO page, relay channel pages, etc.  These pages
    are inherently unevictable and are not managed on the LRU lists.
-   mlock_fixup() treats these vmas the same as hugetlbfs vmas.  It calls
+   mlock_fixup() treats these VMAs the same as hugetlbfs VMAs.  It calls
    make_pages_present() to populate the ptes.
 
-Note that for all of these special vmas, mlock_fixup() does not set the
+Note that for all of these special VMAs, mlock_fixup() does not set the
 VM_LOCKED flag.  Therefore, we won't have to deal with them later during
-munlock() or munmap()--for example, at task exit.  Neither does mlock_fixup()
-account these vmas against the task's "locked_vm".
-
-Mlocked Pages:  Downgrading the Mmap Semaphore.
-
-mlock_fixup() must be called with the mmap semaphore held for write, because
-it may have to merge or split vmas.  However, mlocking a large region of
-memory can take a long time--especially if vmscan must reclaim pages to
-satisfy the regions requirements.  Faulting in a large region with the mmap
-semaphore held for write can hold off other faults on the address space, in
-the case of a multi-threaded task.  It can also hold off scans of the task's
-address space via /proc.  While testing under heavy load, it was observed that
-the ps(1) command could be held off for many minutes while a large segment was
-mlock()ed down.
-
-To address this issue, and to make the system more responsive during mlock()ing
-of large segments, mlock_fixup() downgrades the mmap semaphore to read mode
-during the call to __mlock_vma_pages_range().  This works fine.  However, the
-callers of mlock_fixup() expect the semaphore to be returned in write mode.
-So, mlock_fixup() "upgrades" the semphore to write mode.  Linux does not
-support an atomic upgrade_sem() call, so mlock_fixup() must drop the semaphore
-and reacquire it in write mode.  In a multi-threaded task, it is possible for
-the task memory map to change while the semaphore is dropped.  Therefore,
-mlock_fixup() looks up the vma at the range start address after reacquiring
-the semaphore in write mode and verifies that it still covers the original
-range.  If not, mlock_fixup() returns an error [-EAGAIN].  All callers of
-mlock_fixup() have been changed to deal with this new error condition.
-
-Note:  when munlocking a region, all of the pages should already be resident--
-unless we have racing threads mlocking() and munlocking() regions.  So,
-unlocking should not have to wait for page allocations nor faults  of any kind.
-Therefore mlock_fixup() does not downgrade the semaphore for munlock().
-
-
-Mlocked Pages:  munlock()/munlockall() System Call Handling
-
-The munlock() and munlockall() system calls are handled by the same functions--
-do_mlock[all]()--as the mlock() and mlockall() system calls with the unlock
-vs lock operation indicated by an argument.  So, these system calls are also
-handled by mlock_fixup().  Again, if called for an already munlock()ed vma,
-mlock_fixup() simply returns.  Because of the vma filtering discussed above,
-VM_LOCKED will not be set in any "special" vmas.  So, these vmas will be
+munlock(), munmap() or task exit.  Neither does mlock_fixup() account these
+VMAs against the task's "locked_vm".
+
+
+munlock()/munlockall() SYSTEM CALL HANDLING
+-------------------------------------------
+
+The munlock() and munlockall() system calls are handled by the same functions -
+do_mlock[all]() - as the mlock() and mlockall() system calls with the unlock vs
+lock operation indicated by an argument.  So, these system calls are also
+handled by mlock_fixup().  Again, if called for an already munlocked VMA,
+mlock_fixup() simply returns.  Because of the VMA filtering discussed above,
+VM_LOCKED will not be set in any "special" VMAs.  So, these VMAs will be
 ignored for munlock.
 
-If the vma is VM_LOCKED, mlock_fixup() again attempts to merge or split off
-the specified range.  The range is then munlocked via the function
-__mlock_vma_pages_range()--the same function used to mlock a vma range--
+If the VMA is VM_LOCKED, mlock_fixup() again attempts to merge or split off the
+specified range.  The range is then munlocked via the function
+__mlock_vma_pages_range() - the same function used to mlock a VMA range -
 passing a flag to indicate that munlock() is being performed.
 
-Because the vma access protections could have been changed to PROT_NONE after
+Because the VMA access protections could have been changed to PROT_NONE after
 faulting in and mlocking pages, get_user_pages() was unreliable for visiting
-these pages for munlocking.  Because we don't want to leave pages mlocked(),
+these pages for munlocking.  Because we don't want to leave pages mlocked,
 get_user_pages() was enhanced to accept a flag to ignore the permissions when
-fetching the pages--all of which should be resident as a result of previous
-mlock()ing.
+fetching the pages - all of which should be resident as a result of previous
+mlocking.
 
 For munlock(), __mlock_vma_pages_range() unlocks individual pages by calling
 munlock_vma_page().  munlock_vma_page() unconditionally clears the PG_mlocked
-flag using TestClearPageMlocked().  As with mlock_vma_page(), munlock_vma_page()
-use the Test*PageMlocked() function to handle the case where the page might
-have already been unlocked by another task.  If the page was mlocked,
-munlock_vma_page() updates that zone statistics for the number of mlocked
-pages.  Note, however, that at this point we haven't checked whether the page
-is mapped by other VM_LOCKED vmas.
-
-We can't call try_to_munlock(), the function that walks the reverse map to check
-for other VM_LOCKED vmas, without first isolating the page from the LRU.
+flag using TestClearPageMlocked().  As with mlock_vma_page(),
+munlock_vma_page() use the Test*PageMlocked() function to handle the case where
+the page might have already been unlocked by another task.  If the page was
+mlocked, munlock_vma_page() updates that zone statistics for the number of
+mlocked pages.  Note, however, that at this point we haven't checked whether
+the page is mapped by other VM_LOCKED VMAs.
+
+We can't call try_to_munlock(), the function that walks the reverse map to
+check for other VM_LOCKED VMAs, without first isolating the page from the LRU.
 try_to_munlock() is a variant of try_to_unmap() and thus requires that the page
-not be on an lru list.  [More on these below.]  However, the call to
-isolate_lru_page() could fail, in which case we couldn't try_to_munlock().
-So, we go ahead and clear PG_mlocked up front, as this might be the only chance
-we have.  If we can successfully isolate the page, we go ahead and
+not be on an LRU list [more on these below].  However, the call to
+isolate_lru_page() could fail, in which case we couldn't try_to_munlock().  So,
+we go ahead and clear PG_mlocked up front, as this might be the only chance we
+have.  If we can successfully isolate the page, we go ahead and
 try_to_munlock(), which will restore the PG_mlocked flag and update the zone
-page statistics if it finds another vma holding the page mlocked.  If we fail
+page statistics if it finds another VMA holding the page mlocked.  If we fail
 to isolate the page, we'll have left a potentially mlocked page on the LRU.
-This is fine, because we'll catch it later when/if vmscan tries to reclaim the
-page.  This should be relatively rare.
-
-Mlocked Pages:  Migrating Them...
-
-A page that is being migrated has been isolated from the lru lists and is
-held locked across unmapping of the page, updating the page's mapping
-[address_space] entry and copying the contents and state, until the
-page table entry has been replaced with an entry that refers to the new
-page.  Linux supports migration of mlocked pages and other unevictable
-pages.  This involves simply moving the PageMlocked and PageUnevictable states
-from the old page to the new page.
-
-Note that page migration can race with mlocking or munlocking of the same
-page.  This has been discussed from the mlock/munlock perspective in the
-respective sections above.  Both processes [migration, m[un]locking], hold
-the page locked.  This provides the first level of synchronization.  Page
-migration zeros out the page_mapping of the old page before unlocking it,
-so m[un]lock can skip these pages by testing the page mapping under page
-lock.
-
-When completing page migration, we place the new and old pages back onto the
-lru after dropping the page lock.  The "unneeded" page--old page on success,
-new page on failure--will be freed when the reference count held by the
-migration process is released.  To ensure that we don't strand pages on the
-unevictable list because of a race between munlock and migration, page
-migration uses the putback_lru_page() function to add migrated pages back to
-the lru.
-
-
-Mlocked Pages:  mmap(MAP_LOCKED) System Call Handling
+This is fine, because we'll catch it later if and if vmscan tries to reclaim
+the page.  This should be relatively rare.
+
+
+MIGRATING MLOCKED PAGES
+-----------------------
+
+A page that is being migrated has been isolated from the LRU lists and is held
+locked across unmapping of the page, updating the page's address space entry
+and copying the contents and state, until the page table entry has been
+replaced with an entry that refers to the new page.  Linux supports migration
+of mlocked pages and other unevictable pages.  This involves simply moving the
+PG_mlocked and PG_unevictable states from the old page to the new page.
+
+Note that page migration can race with mlocking or munlocking of the same page.
+This has been discussed from the mlock/munlock perspective in the respective
+sections above.  Both processes (migration and m[un]locking) hold the page
+locked.  This provides the first level of synchronization.  Page migration
+zeros out the page_mapping of the old page before unlocking it, so m[un]lock
+can skip these pages by testing the page mapping under page lock.
+
+To complete page migration, we place the new and old pages back onto the LRU
+after dropping the page lock.  The "unneeded" page - old page on success, new
+page on failure - will be freed when the reference count held by the migration
+process is released.  To ensure that we don't strand pages on the unevictable
+list because of a race between munlock and migration, page migration uses the
+putback_lru_page() function to add migrated pages back to the LRU.
+
+
+mmap(MAP_LOCKED) SYSTEM CALL HANDLING
+-------------------------------------
 
 In addition the the mlock()/mlockall() system calls, an application can request
-that a region of memory be mlocked using the MAP_LOCKED flag with the mmap()
+that a region of memory be mlocked supplying the MAP_LOCKED flag to the mmap()
 call.  Furthermore, any mmap() call or brk() call that expands the heap by a
 task that has previously called mlockall() with the MCL_FUTURE flag will result
-in the newly mapped memory being mlocked.  Before the unevictable/mlock changes,
-the kernel simply called make_pages_present() to allocate pages and populate
-the page table.
+in the newly mapped memory being mlocked.  Before the unevictable/mlock
+changes, the kernel simply called make_pages_present() to allocate pages and
+populate the page table.
 
 To mlock a range of memory under the unevictable/mlock infrastructure, the
 mmap() handler and task address space expansion functions call
 mlock_vma_pages_range() specifying the vma and the address range to mlock.
-mlock_vma_pages_range() filters vmas like mlock_fixup(), as described above in
-"Mlocked Pages:  Filtering Vmas".  It will clear the VM_LOCKED flag, which will
-have already been set by the caller, in filtered vmas.  Thus these vma's need
-not be visited for munlock when the region is unmapped.
+mlock_vma_pages_range() filters VMAs like mlock_fixup(), as described above in
+"Filtering Special VMAs".  It will clear the VM_LOCKED flag, which will have
+already been set by the caller, in filtered VMAs.  Thus these VMA's need not be
+visited for munlock when the region is unmapped.
 
-For "normal" vmas, mlock_vma_pages_range() calls __mlock_vma_pages_range() to
+For "normal" VMAs, mlock_vma_pages_range() calls __mlock_vma_pages_range() to
 fault/allocate the pages and mlock them.  Again, like mlock_fixup(),
 mlock_vma_pages_range() downgrades the mmap semaphore to read mode before
-attempting to fault/allocate and mlock the pages; and "upgrades" the semaphore
+attempting to fault/allocate and mlock the pages and "upgrades" the semaphore
 back to write mode before returning.
 
-The callers of mlock_vma_pages_range() will have already added the memory
-range to be mlocked to the task's "locked_vm".  To account for filtered vmas,
+The callers of mlock_vma_pages_range() will have already added the memory range
+to be mlocked to the task's "locked_vm".  To account for filtered VMAs,
 mlock_vma_pages_range() returns the number of pages NOT mlocked.  All of the
-callers then subtract a non-negative return value from the task's locked_vm.
-A negative return value represent an error--for example, from get_user_pages()
-attempting to fault in a vma with PROT_NONE access.  In this case, we leave
-the memory range accounted as locked_vm, as the protections could be changed
-later and pages allocated into that region.
+callers then subtract a non-negative return value from the task's locked_vm.  A
+negative return value represent an error - for example, from get_user_pages()
+attempting to fault in a VMA with PROT_NONE access.  In this case, we leave the
+memory range accounted as locked_vm, as the protections could be changed later
+and pages allocated into that region.
 
 
-Mlocked Pages:  munmap()/exit()/exec() System Call Handling
+munmap()/exit()/exec() SYSTEM CALL HANDLING
+-------------------------------------------
 
 When unmapping an mlocked region of memory, whether by an explicit call to
 munmap() or via an internal unmap from exit() or exec() processing, we must
-munlock the pages if we're removing the last VM_LOCKED vma that maps the pages.
+munlock the pages if we're removing the last VM_LOCKED VMA that maps the pages.
 Before the unevictable/mlock changes, mlocking did not mark the pages in any
 way, so unmapping them required no processing.
 
 To munlock a range of memory under the unevictable/mlock infrastructure, the
-munmap() hander and task address space tear down function call
+munmap() handler and task address space call tear down function
 munlock_vma_pages_all().  The name reflects the observation that one always
-specifies the entire vma range when munlock()ing during unmap of a region.
-Because of the vma filtering when mlocking() regions, only "normal" vmas that
+specifies the entire VMA range when munlock()ing during unmap of a region.
+Because of the VMA filtering when mlocking() regions, only "normal" VMAs that
 actually contain mlocked pages will be passed to munlock_vma_pages_all().
 
-munlock_vma_pages_all() clears the VM_LOCKED vma flag and, like mlock_fixup()
+munlock_vma_pages_all() clears the VM_LOCKED VMA flag and, like mlock_fixup()
 for the munlock case, calls __munlock_vma_pages_range() to walk the page table
-for the vma's memory range and munlock_vma_page() each resident page mapped by
-the vma.  This effectively munlocks the page, only if this is the last
-VM_LOCKED vma that maps the page.
-
+for the VMA's memory range and munlock_vma_page() each resident page mapped by
+the VMA.  This effectively munlocks the page, only if this is the last
+VM_LOCKED VMA that maps the page.
 
-Mlocked Page:  try_to_unmap()
 
-[Note:  the code changes represented by this section are really quite small
-compared to the text to describe what happening and why, and to discuss the
-implications.]
+try_to_unmap()
+--------------
 
-Pages can, of course, be mapped into multiple vmas.  Some of these vmas may
+Pages can, of course, be mapped into multiple VMAs.  Some of these VMAs may
 have VM_LOCKED flag set.  It is possible for a page mapped into one or more
-VM_LOCKED vmas not to have the PG_mlocked flag set and therefore reside on one
-of the active or inactive LRU lists.  This could happen if, for example, a
-task in the process of munlock()ing the page could not isolate the page from
-the LRU.  As a result, vmscan/shrink_page_list() might encounter such a page
-as described in "Unevictable Pages and Vmscan [shrink_*_list()]".  To
-handle this situation, try_to_unmap() has been enhanced to check for VM_LOCKED
-vmas while it is walking a page's reverse map.
+VM_LOCKED VMAs not to have the PG_mlocked flag set and therefore reside on one
+of the active or inactive LRU lists.  This could happen if, for example, a task
+in the process of munlocking the page could not isolate the page from the LRU.
+As a result, vmscan/shrink_page_list() might encounter such a page as described
+in section "vmscan's handling of unevictable pages".  To handle this situation,
+try_to_unmap() checks for VM_LOCKED VMAs while it is walking a page's reverse
+map.
 
 try_to_unmap() is always called, by either vmscan for reclaim or for page
-migration, with the argument page locked and isolated from the LRU.  BUG_ON()
-assertions enforce this requirement.  Separate functions handle anonymous and
-mapped file pages, as these types of pages have different reverse map
-mechanisms.
-
-       try_to_unmap_anon()
-
-To unmap anonymous pages, each vma in the list anchored in the anon_vma must be
-visited--at least until a VM_LOCKED vma is encountered.  If the page is being
-unmapped for migration, VM_LOCKED vmas do not stop the process because mlocked
-pages are migratable.  However, for reclaim, if the page is mapped into a
-VM_LOCKED vma, the scan stops.  try_to_unmap() attempts to acquire the mmap
-semphore of the mm_struct to which the vma belongs in read mode.  If this is
-successful, try_to_unmap() will mlock the page via mlock_vma_page()--we
-wouldn't have gotten to try_to_unmap() if the page were already mlocked--and
-will return SWAP_MLOCK, indicating that the page is unevictable.  If the
-mmap semaphore cannot be acquired, we are not sure whether the page is really
-unevictable or not.  In this case, try_to_unmap() will return SWAP_AGAIN.
-
-       try_to_unmap_file() -- linear mappings
-
-Unmapping of a mapped file page works the same, except that the scan visits
-all vmas that maps the page's index/page offset in the page's mapping's
-reverse map priority search tree.  It must also visit each vma in the page's
-mapping's non-linear list, if the list is non-empty.  As for anonymous pages,
-on encountering a VM_LOCKED vma for a mapped file page, try_to_unmap() will
-attempt to acquire the associated mm_struct's mmap semaphore to mlock the page,
-returning SWAP_MLOCK if this is successful, and SWAP_AGAIN, if not.
-
-       try_to_unmap_file() -- non-linear mappings
-
-If a page's mapping contains a non-empty non-linear mapping vma list, then
-try_to_un{map|lock}() must also visit each vma in that list to determine
-whether the page is mapped in a VM_LOCKED vma.  Again, the scan must visit
-all vmas in the non-linear list to ensure that the pages is not/should not be
-mlocked.  If a VM_LOCKED vma is found in the list, the scan could terminate.
-However, there is no easy way to determine whether the page is actually mapped
-in a given vma--either for unmapping or testing whether the VM_LOCKED vma
-actually pins the page.
-
-So, try_to_unmap_file() handles non-linear mappings by scanning a certain
-number of pages--a "cluster"--in each non-linear vma associated with the page's
-mapping, for each file mapped page that vmscan tries to unmap.  If this happens
-to unmap the page we're trying to unmap, try_to_unmap() will notice this on
-return--(page_mapcount(page) == 0)--and return SWAP_SUCCESS.  Otherwise, it
-will return SWAP_AGAIN, causing vmscan to recirculate this page.  We take
-advantage of the cluster scan in try_to_unmap_cluster() as follows:
-
-For each non-linear vma, try_to_unmap_cluster() attempts to acquire the mmap
-semaphore of the associated mm_struct for read without blocking.  If this
-attempt is successful and the vma is VM_LOCKED, try_to_unmap_cluster() will
-retain the mmap semaphore for the scan; otherwise it drops it here.  Then,
-for each page in the cluster, if we're holding the mmap semaphore for a locked
-vma, try_to_unmap_cluster() calls mlock_vma_page() to mlock the page.  This
-call is a no-op if the page is already locked, but will mlock any pages in
-the non-linear mapping that happen to be unlocked.  If one of the pages so
-mlocked is the page passed in to try_to_unmap(), try_to_unmap_cluster() will
-return SWAP_MLOCK, rather than the default SWAP_AGAIN.  This will allow vmscan
-to cull the page, rather than recirculating it on the inactive list.  Again,
-if try_to_unmap_cluster() cannot acquire the vma's mmap sem, it returns
-SWAP_AGAIN, indicating that the page is mapped by a VM_LOCKED vma, but
-couldn't be mlocked.
-
-
-Mlocked pages:  try_to_munlock() Reverse Map Scan
-
-TODO/FIXME:  a better name might be page_mlocked()--analogous to the
-page_referenced() reverse map walker.
-
-When munlock_vma_page()--see "Mlocked Pages:  munlock()/munlockall()
-System Call Handling" above--tries to munlock a page, it needs to
-determine whether or not the page is mapped by any VM_LOCKED vma, without
-actually attempting to unmap all ptes from the page.  For this purpose, the
-unevictable/mlock infrastructure introduced a variant of try_to_unmap() called
-try_to_munlock().
+migration, with the argument page locked and isolated from the LRU.  Separate
+functions handle anonymous and mapped file pages, as these types of pages have
+different reverse map mechanisms.
+
+ (*) try_to_unmap_anon()
+
+     To unmap anonymous pages, each VMA in the list anchored in the anon_vma
+     must be visited - at least until a VM_LOCKED VMA is encountered.  If the
+     page is being unmapped for migration, VM_LOCKED VMAs do not stop the
+     process because mlocked pages are migratable.  However, for reclaim, if
+     the page is mapped into a VM_LOCKED VMA, the scan stops.
+
+     try_to_unmap_anon() attempts to acquire in read mode the mmap semphore of
+     the mm_struct to which the VMA belongs.  If this is successful, it will
+     mlock the page via mlock_vma_page() - we wouldn't have gotten to
+     try_to_unmap_anon() if the page were already mlocked - and will return
+     SWAP_MLOCK, indicating that the page is unevictable.
+
+     If the mmap semaphore cannot be acquired, we are not sure whether the page
+     is really unevictable or not.  In this case, try_to_unmap_anon() will
+     return SWAP_AGAIN.
+
+ (*) try_to_unmap_file() - linear mappings
+
+     Unmapping of a mapped file page works the same as for anonymous mappings,
+     except that the scan visits all VMAs that map the page's index/page offset
+     in the page's mapping's reverse map priority search tree.  It also visits
+     each VMA in the page's mapping's non-linear list, if the list is
+     non-empty.
+
+     As for anonymous pages, on encountering a VM_LOCKED VMA for a mapped file
+     page, try_to_unmap_file() will attempt to acquire the associated
+     mm_struct's mmap semaphore to mlock the page, returning SWAP_MLOCK if this
+     is successful, and SWAP_AGAIN, if not.
+
+ (*) try_to_unmap_file() - non-linear mappings
+
+     If a page's mapping contains a non-empty non-linear mapping VMA list, then
+     try_to_un{map|lock}() must also visit each VMA in that list to determine
+     whether the page is mapped in a VM_LOCKED VMA.  Again, the scan must visit
+     all VMAs in the non-linear list to ensure that the pages is not/should not
+     be mlocked.
+
+     If a VM_LOCKED VMA is found in the list, the scan could terminate.
+     However, there is no easy way to determine whether the page is actually
+     mapped in a given VMA - either for unmapping or testing whether the
+     VM_LOCKED VMA actually pins the page.
+
+     try_to_unmap_file() handles non-linear mappings by scanning a certain
+     number of pages - a "cluster" - in each non-linear VMA associated with the
+     page's mapping, for each file mapped page that vmscan tries to unmap.  If
+     this happens to unmap the page we're trying to unmap, try_to_unmap() will
+     notice this on return (page_mapcount(page) will be 0) and return
+     SWAP_SUCCESS.  Otherwise, it will return SWAP_AGAIN, causing vmscan to
+     recirculate this page.  We take advantage of the cluster scan in
+     try_to_unmap_cluster() as follows:
+
+       For each non-linear VMA, try_to_unmap_cluster() attempts to acquire the
+       mmap semaphore of the associated mm_struct for read without blocking.
+
+       If this attempt is successful and the VMA is VM_LOCKED,
+       try_to_unmap_cluster() will retain the mmap semaphore for the scan;
+       otherwise it drops it here.
+
+       Then, for each page in the cluster, if we're holding the mmap semaphore
+       for a locked VMA, try_to_unmap_cluster() calls mlock_vma_page() to
+       mlock the page.  This call is a no-op if the page is already locked,
+       but will mlock any pages in the non-linear mapping that happen to be
+       unlocked.
+
+       If one of the pages so mlocked is the page passed in to try_to_unmap(),
+       try_to_unmap_cluster() will return SWAP_MLOCK, rather than the default
+       SWAP_AGAIN.  This will allow vmscan to cull the page, rather than
+       recirculating it on the inactive list.
+
+       Again, if try_to_unmap_cluster() cannot acquire the VMA's mmap sem, it
+       returns SWAP_AGAIN, indicating that the page is mapped by a VM_LOCKED
+       VMA, but couldn't be mlocked.
+
+
+try_to_munlock() REVERSE MAP SCAN
+---------------------------------
+
+ [!] TODO/FIXME: a better name might be page_mlocked() - analogous to the
+     page_referenced() reverse map walker.
+
+When munlock_vma_page() [see section "munlock()/munlockall() System Call
+Handling" above] tries to munlock a page, it needs to determine whether or not
+the page is mapped by any VM_LOCKED VMA without actually attempting to unmap
+all PTEs from the page.  For this purpose, the unevictable/mlock infrastructure
+introduced a variant of try_to_unmap() called try_to_munlock().
 
 try_to_munlock() calls the same functions as try_to_unmap() for anonymous and
 mapped file pages with an additional argument specifing unlock versus unmap
 processing.  Again, these functions walk the respective reverse maps looking
-for VM_LOCKED vmas.  When such a vma is found for anonymous pages and file
+for VM_LOCKED VMAs.  When such a VMA is found for anonymous pages and file
 pages mapped in linear VMAs, as in the try_to_unmap() case, the functions
 attempt to acquire the associated mmap semphore, mlock the page via
 mlock_vma_page() and return SWAP_MLOCK.  This effectively undoes the
 pre-clearing of the page's PG_mlocked done by munlock_vma_page.
 
-If try_to_unmap() is unable to acquire a VM_LOCKED vma's associated mmap
-semaphore, it will return SWAP_AGAIN.  This will allow shrink_page_list()
-to recycle the page on the inactive list and hope that it has better luck
-with the page next time.
-
-For file pages mapped into non-linear vmas, the try_to_munlock() logic works
-slightly differently.  On encountering a VM_LOCKED non-linear vma that might
-map the page, try_to_munlock() returns SWAP_AGAIN without actually mlocking
-the page.  munlock_vma_page() will just leave the page unlocked and let
-vmscan deal with it--the usual fallback position.
-
-Note that try_to_munlock()'s reverse map walk must visit every vma in a pages'
-reverse map to determine that a page is NOT mapped into any VM_LOCKED vma.
-However, the scan can terminate when it encounters a VM_LOCKED vma and can
-successfully acquire the vma's mmap semphore for read and mlock the page.
-Although try_to_munlock() can be called many [very many!] times when
-munlock()ing a large region or tearing down a large address space that has been
-mlocked via mlockall(), overall this is a fairly rare event.
-
-Mlocked Page:  Page Reclaim in shrink_*_list()
-
-shrink_active_list() culls any obviously unevictable pages--i.e.,
-!page_evictable(page, NULL)--diverting these to the unevictable lru
-list.  However, shrink_active_list() only sees unevictable pages that
-made it onto the active/inactive lru lists.  Note that these pages do not
-have PageUnevictable set--otherwise, they would be on the unevictable list and
-shrink_active_list would never see them.
+If try_to_unmap() is unable to acquire a VM_LOCKED VMA's associated mmap
+semaphore, it will return SWAP_AGAIN.  This will allow shrink_page_list() to
+recycle the page on the inactive list and hope that it has better luck with the
+page next time.
+
+For file pages mapped into non-linear VMAs, the try_to_munlock() logic works
+slightly differently.  On encountering a VM_LOCKED non-linear VMA that might
+map the page, try_to_munlock() returns SWAP_AGAIN without actually mlocking the
+page.  munlock_vma_page() will just leave the page unlocked and let vmscan deal
+with it - the usual fallback position.
+
+Note that try_to_munlock()'s reverse map walk must visit every VMA in a page's
+reverse map to determine that a page is NOT mapped into any VM_LOCKED VMA.
+However, the scan can terminate when it encounters a VM_LOCKED VMA and can
+successfully acquire the VMA's mmap semphore for read and mlock the page.
+Although try_to_munlock() might be called a great many times when munlocking a
+large region or tearing down a large address space that has been mlocked via
+mlockall(), overall this is a fairly rare event.
+
+
+PAGE RECLAIM IN shrink_*_list()
+-------------------------------
+
+shrink_active_list() culls any obviously unevictable pages - i.e.
+!page_evictable(page, NULL) - diverting these to the unevictable list.
+However, shrink_active_list() only sees unevictable pages that made it onto the
+active/inactive lru lists.  Note that these pages do not have PageUnevictable
+set - otherwise they would be on the unevictable list and shrink_active_list
+would never see them.
 
 Some examples of these unevictable pages on the LRU lists are:
 
-1) ramfs pages that have been placed on the lru lists when first allocated.
+ (1) ramfs pages that have been placed on the LRU lists when first allocated.
+
+ (2) SHM_LOCK'd shared memory pages.  shmctl(SHM_LOCK) does not attempt to
+     allocate or fault in the pages in the shared memory region.  This happens
+     when an application accesses the page the first time after SHM_LOCK'ing
+     the segment.
 
-2) SHM_LOCKed shared memory pages.  shmctl(SHM_LOCK) does not attempt to
-   allocate or fault in the pages in the shared memory region.  This happens
-   when an application accesses the page the first time after SHM_LOCKing
-   the segment.
+ (3) mlocked pages that could not be isolated from the LRU and moved to the
+     unevictable list in mlock_vma_page().
 
-3) Mlocked pages that could not be isolated from the lru and moved to the
-   unevictable list in mlock_vma_page().
+ (4) Pages mapped into multiple VM_LOCKED VMAs, but try_to_munlock() couldn't
+     acquire the VMA's mmap semaphore to test the flags and set PageMlocked.
+     munlock_vma_page() was forced to let the page back on to the normal LRU
+     list for vmscan to handle.
 
-3) Pages mapped into multiple VM_LOCKED vmas, but try_to_munlock() couldn't
-   acquire the vma's mmap semaphore to test the flags and set PageMlocked.
-   munlock_vma_page() was forced to let the page back on to the normal
-   LRU list for vmscan to handle.
+shrink_inactive_list() also diverts any unevictable pages that it finds on the
+inactive lists to the appropriate zone's unevictable list.
 
-shrink_inactive_list() also culls any unevictable pages that it finds on
-the inactive lists, again diverting them to the appropriate zone's unevictable
-lru list.  shrink_inactive_list() should only see SHM_LOCKed pages that became
-SHM_LOCKed after shrink_active_list() had moved them to the inactive list, or
-pages mapped into VM_LOCKED vmas that munlock_vma_page() couldn't isolate from
-the lru to recheck via try_to_munlock().  shrink_inactive_list() won't notice
-the latter, but will pass on to shrink_page_list().
+shrink_inactive_list() should only see SHM_LOCK'd pages that became SHM_LOCK'd
+after shrink_active_list() had moved them to the inactive list, or pages mapped
+into VM_LOCKED VMAs that munlock_vma_page() couldn't isolate from the LRU to
+recheck via try_to_munlock().  shrink_inactive_list() won't notice the latter,
+but will pass on to shrink_page_list().
 
 shrink_page_list() again culls obviously unevictable pages that it could
 encounter for similar reason to shrink_inactive_list().  Pages mapped into
-VM_LOCKED vmas but without PG_mlocked set will make it all the way to
+VM_LOCKED VMAs but without PG_mlocked set will make it all the way to
 try_to_unmap().  shrink_page_list() will divert them to the unevictable list
 when try_to_unmap() returns SWAP_MLOCK, as discussed above.
index 1f02d96a5dbf436d295c33f837f21ea83c5cec16..0cb20d8216945751a3a232d2b15ec72f29470e16 100644 (file)
@@ -72,7 +72,6 @@ M: Mail patches to
 L: Mailing list that is relevant to this area
 W: Web-page with status/info
 T: SCM tree type and location.  Type is one of: git, hg, quilt.
-F: Applicable files and/or directories
 S: Status, one of the following:
 
        Supported:      Someone is actually paid to look after this.
@@ -85,23 +84,40 @@ S: Status, one of the following:
                        it has been replaced by a better system and you
                        should be using that.
 
+F: Files and directories with wildcard patterns.
+   A trailing slash includes all files and subdirectory files.
+       F:      drivers/net/    all files in and below drivers/net
+       F:      drivers/net/*   all files in drivers/net, but not below
+       F:      */net/*         all files in "any top level directory"/net
+   One pattern per line.  Multiple F: lines acceptable.
+X: Files and directories that are NOT maintained, same rules as F:
+   Files exclusions are tested before file matches.
+   Can be useful for excluding a specific subdirectory, for instance:
+       F:      net/
+       X:      net/ipv6/
+   matches all files in and below net excluding net/ipv6/
+
 3C505 NETWORK DRIVER
 P:     Philip Blundell
 M:     philb@gnu.org
 L:     netdev@vger.kernel.org
 S:     Maintained
+F:     drivers/net/3c505*
 
 3C59X NETWORK DRIVER
 P:     Steffen Klassert
 M:     klassert@mathematik.tu-chemnitz.de
 L:     netdev@vger.kernel.org
 S:     Maintained
+F:     Documentation/networking/vortex.txt
+F:     drivers/net/3c59x.c
 
 3CR990 NETWORK DRIVER
 P:     David Dillow
 M:     dave@thedillows.org
 L:     netdev@vger.kernel.org
 S:     Maintained
+F:     drivers/net/typhoon*
 
 3W-9XXX SATA-RAID CONTROLLER DRIVER
 P:     Adam Radford
@@ -109,6 +125,7 @@ M:  linuxraid@amcc.com
 L:     linux-scsi@vger.kernel.org
 W:     http://www.amcc.com
 S:     Supported
+F:     drivers/scsi/3w-9xxx*
 
 3W-XXXX ATA-RAID CONTROLLER DRIVER
 P:     Adam Radford
@@ -116,35 +133,43 @@ M:        linuxraid@amcc.com
 L:     linux-scsi@vger.kernel.org
 W:     http://www.amcc.com
 S:     Supported
+F:     drivers/scsi/3w-xxxx*
 
 53C700 AND 53C700-66 SCSI DRIVER
 P:     James E.J. Bottomley
 M:     James.Bottomley@HansenPartnership.com
 L:     linux-scsi@vger.kernel.org
 S:     Maintained
+F:     drivers/scsi/53c700*
 
 6PACK NETWORK DRIVER FOR AX.25
 P:     Andreas Koensgen
 M:     ajk@iehk.rwth-aachen.de
 L:     linux-hams@vger.kernel.org
 S:     Maintained
+F:     drivers/net/hamradio/6pack.c
 
 8169 10/100/1000 GIGABIT ETHERNET DRIVER
 P:     Francois Romieu
 M:     romieu@fr.zoreil.com
 L:     netdev@vger.kernel.org
 S:     Maintained
+F:     drivers/net/r8169.c
 
 8250/16?50 (AND CLONE UARTS) SERIAL DRIVER
 L:     linux-serial@vger.kernel.org
 W:     http://serial.sourceforge.net
 S:     Orphan
+F:     drivers/serial/8250*
+F:     include/linux/serial_8250.h
 
 8390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.]
 P:     Paul Gortmaker
 M:     p_gortmaker@yahoo.com
 L:     netdev@vger.kernel.org
 S:     Maintained
+F:     drivers/net/*8390*
+F:     drivers/net/ax88796.c
 
 9P FILE SYSTEM
 P:     Eric Van Hensbergen
@@ -155,14 +180,17 @@ P:        Latchesar Ionkov
 M:     lucho@ionkov.net
 L:     v9fs-developer@lists.sourceforge.net
 W:     http://swik.net/v9fs
-T:     git kernel.org:/pub/scm/linux/kernel/ericvh/v9fs.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/ericvh/v9fs.git
 S:     Maintained
+F:     Documentation/filesystems/9p.txt
+F:     fs/9p/
 
 A2232 SERIAL BOARD DRIVER
 P:     Enver Haase
 M:     A2232@gmx.net
 L:     linux-m68k@lists.linux-m68k.org
 S:     Maintained
+F:     drivers/char/ser_a2232*
 
 AACRAID SCSI RAID DRIVER
 P:     Adaptec OEM Raid Solutions
@@ -170,24 +198,29 @@ M:        aacraid@adaptec.com
 L:     linux-scsi@vger.kernel.org
 W:     http://www.adaptec.com/
 S:     Supported
+F:     Documentation/scsi/aacraid.txt
+F:     drivers/scsi/aacraid/
 
 ABIT UGURU 1,2 HARDWARE MONITOR DRIVER
 P:     Hans de Goede
 M:     j.w.r.degoede@hhs.nl
 L:     lm-sensors@lm-sensors.org
 S:     Maintained
+F:     drivers/hwmon/abituguru.c
 
 ABIT UGURU 3 HARDWARE MONITOR DRIVER
 P:     Alistair John Strachan
 M:     alistair@devzero.co.uk
 L:     lm-sensors@lm-sensors.org
 S:     Maintained
+F:     drivers/hwmon/abituguru3.c
 
 ACENIC DRIVER
 P:     Jes Sorensen
 M:     jes@trained-monkey.org
 L:     linux-acenic@sunsite.dk
 S:     Maintained
+F:     drivers/net/acenic*
 
 ACER WMI LAPTOP EXTRAS
 P:     Carlos Corbacho
@@ -195,14 +228,18 @@ M:        carlos@strangeworlds.co.uk
 L:     aceracpi@googlegroups.com (subscribers-only)
 W:     http://code.google.com/p/aceracpi
 S:     Maintained
+F:     drivers/platform/x86/acer-wmi.c
 
 ACPI
 P:     Len Brown
 M:     lenb@kernel.org
 L:     linux-acpi@vger.kernel.org
 W:     http://www.lesswatts.org/projects/acpi/
-T:     git kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git
 S:     Supported
+F:     drivers/acpi/
+F:     drivers/pnp/pnpacpi/
+F:     include/linux/acpi.h
 
 ACPI BATTERY DRIVERS
 P:     Alexey Starikovskiy
@@ -210,6 +247,8 @@ M:  astarikovskiy@suse.de
 L:     linux-acpi@vger.kernel.org
 W:     http://www.lesswatts.org/projects/acpi/
 S:     Supported
+F:     drivers/acpi/battery.c
+F:     drivers/acpi/*sbs*
 
 ACPI EC DRIVER
 P:     Alexey Starikovskiy
@@ -217,6 +256,7 @@ M:  astarikovskiy@suse.de
 L:     linux-acpi@vger.kernel.org
 W:     http://www.lesswatts.org/projects/acpi/
 S:     Supported
+F:     drivers/acpi/ec.c
 
 ACPI FAN DRIVER
 P:     Zhang Rui
@@ -224,12 +264,14 @@ M:        rui.zhang@intel.com
 L:     linux-acpi@vger.kernel.org
 W:     http://www.lesswatts.org/projects/acpi/
 S:     Supported
+F:     drivers/acpi/fan.c
 
 ACPI PCI HOTPLUG DRIVER
 P:     Kristen Carlson Accardi
 M:     kristen.c.accardi@intel.com
 L:     linux-pci@vger.kernel.org
 S:     Supported
+F:     drivers/pci/hotplug/acpi*
 
 ACPI THERMAL DRIVER
 P:     Zhang Rui
@@ -237,6 +279,7 @@ M:  rui.zhang@intel.com
 L:     linux-acpi@vger.kernel.org
 W:     http://www.lesswatts.org/projects/acpi/
 S:     Supported
+F:     drivers/acpi/*thermal*
 
 ACPI VIDEO DRIVER
 P:     Zhang Rui
@@ -244,6 +287,7 @@ M:  rui.zhang@intel.com
 L:     linux-acpi@vger.kernel.org
 W:     http://www.lesswatts.org/projects/acpi/
 S:     Supported
+F:     drivers/acpi/video.c
 
 ACPI WMI DRIVER
 P:     Carlos Corbacho
@@ -251,6 +295,7 @@ M:  carlos@strangeworlds.co.uk
 L:     linux-acpi@vger.kernel.org
 W:     http://www.lesswatts.org/projects/acpi/
 S:     Maintained
+F:     drivers/platform/x86/wmi.c
 
 AD1889 ALSA SOUND DRIVER
 P:     Kyle McMartin
@@ -260,77 +305,99 @@ M:        T-Bone@parisc-linux.org
 W:     http://wiki.parisc-linux.org/AD1889
 L:     linux-parisc@vger.kernel.org
 S:     Maintained
+F:     sound/pci/ad1889.*
 
 ADM1025 HARDWARE MONITOR DRIVER
 P:     Jean Delvare
 M:     khali@linux-fr.org
 L:     lm-sensors@lm-sensors.org
 S:     Maintained
+F:     Documentation/hwmon/adm1025
+F:     drivers/hwmon/adm1025.c
 
 ADM1029 HARDWARE MONITOR DRIVER
 P:     Corentin Labbe
 M:     corentin.labbe@geomatys.fr
 L:     lm-sensors@lm-sensors.org
 S:     Maintained
+F:     drivers/hwmon/adm1029.c
 
 ADM8211 WIRELESS DRIVER
 P:     Michael Wu
 M:     flamingice@sourmilk.net
 L:     linux-wireless@vger.kernel.org
 W:     http://linuxwireless.org/
-T:     git kernel.org:/pub/scm/linux/kernel/git/mwu/mac80211-drivers.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/mwu/mac80211-drivers.git
 S:     Maintained
+F:     drivers/net/wireless/adm8211.*
 
 ADT746X FAN DRIVER
 P:     Colin Leroy
 M:     colin@colino.net
 S:     Maintained
+F:     drivers/macintosh/therm_adt746x.c
 
 ADVANSYS SCSI DRIVER
 P:     Matthew Wilcox
 M:     matthew@wil.cx
 L:     linux-scsi@vger.kernel.org
 S:     Maintained
+F:     Documentation/scsi/advansys.txt
+F:     drivers/scsi/advansys.c
 
 AEDSP16 DRIVER
 P:     Riccardo Facchetti
 M:     fizban@tin.it
 S:     Maintained
+F:     sound/oss/aedsp16.c
 
 AFFS FILE SYSTEM
 P:     Roman Zippel
 M:     zippel@linux-m68k.org
 S:     Maintained
+F:     Documentation/filesystems/affs.txt
+F:     fs/affs/
 
 AFS FILESYSTEM & AF_RXRPC SOCKET DOMAIN
 P:     David Howells
 M:     dhowells@redhat.com
 L:     linux-afs@lists.infradead.org
 S:     Supported
+F:     fs/afs/
+F:     include/net/af_rxrpc.h
+F:     net/rxrpc/af_rxrpc.c
 
 AGPGART DRIVER
 P:     David Airlie
 M:     airlied@linux.ie
-T:     git kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git
 S:     Maintained
+F:     drivers/char/agp/
+F:     include/linux/agp*
 
 AHA152X SCSI DRIVER
 P:     Juergen E. Fischer
-M:     Juergen Fischer <fischer@norbit.de>
+M:     fischer@norbit.de
 L:     linux-scsi@vger.kernel.org
 S:     Maintained
+F:     drivers/scsi/aha152x*
+F:     drivers/scsi/pcmcia/aha152x*
 
 AIC7XXX / AIC79XX SCSI DRIVER
 P:     Hannes Reinecke
 M:     hare@suse.de
 L:     linux-scsi@vger.kernel.org
 S:     Maintained
+F:     drivers/scsi/aic7xxx/
+F:     drivers/scsi/aic7xxx_old/
 
 AIO
 P:     Benjamin LaHaise
 M:     bcrl@kvack.org
 L:     linux-aio@kvack.org
 S:     Supported
+F:     fs/aio.c
+F:     include/linux/*aio*.h
 
 ALCATEL SPEEDTOUCH USB DRIVER
 P:     Duncan Sands
@@ -338,17 +405,22 @@ M:        duncan.sands@free.fr
 L:     linux-usb@vger.kernel.org
 W:     http://www.linux-usb.org/SpeedTouch/
 S:     Maintained
+F:     drivers/usb/atm/speedtch.c
+F:     drivers/usb/atm/usbatm.c
 
 ALCHEMY AU1XX0 MMC DRIVER
 P:     Manuel Lauss
 M:     manuel.lauss@gmail.com
 S:     Maintained
+F:     drivers/mmc/host/au1xmmc.c
 
 ALI1563 I2C DRIVER
 P:     Rudolf Marek
 M:     r.marek@assembler.cz
 L:     linux-i2c@vger.kernel.org
 S:     Maintained
+F:     Documentation/i2c/busses/i2c-ali1563
+F:     drivers/i2c/busses/i2c-ali1563.c
 
 ALPHA PORT
 P:     Richard Henderson
@@ -358,31 +430,41 @@ P:        Ivan Kokshaysky
 M:     ink@jurassic.park.msu.ru
 S:     Maintained for 2.4; PCI support for 2.6.
 L:     linux-alpha@vger.kernel.org
+F:     arch/alpha/
 
 AMD GEODE CS5536 USB DEVICE CONTROLLER DRIVER
 P:     Thomas Dahlmann
 M:     thomas.dahlmann@amd.com
 L:     linux-geode@lists.infradead.org (moderated for non-subscribers)
 S:     Supported
+F:     drivers/usb/gadget/amd5536udc.*
 
 AMD GEODE PROCESSOR/CHIPSET SUPPORT
 P:     Jordan Crouse
 L:     linux-geode@lists.infradead.org (moderated for non-subscribers)
 W:     http://www.amd.com/us-en/ConnectivitySolutions/TechnicalResources/0,,50_2334_2452_11363,00.html
 S:     Supported
+F:     arch/x86/kernel/geode_32.c
+F:     drivers/char/hw_random/geode-rng.c
+F:     drivers/crypto/geode*
+F:     drivers/video/geode/
+F:     arch/x86/include/asm/geode.h
 
 AMD IOMMU (AMD-VI)
 P:     Joerg Roedel
 M:     joerg.roedel@amd.com
 L:     iommu@lists.linux-foundation.org
-T:     git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu.git
 S:     Supported
+F:     arch/x86/kernel/amd_iommu*.c
+F:     arch/x86/include/asm/amd_iommu*.h
 
 AMD MICROCODE UPDATE SUPPORT
-P:      Andreas Herrmann
-M:      andeas.herrmann3@amd.com
-L:      amd64-microcode@amd64.org
-S:      Supported
+P:     Andreas Herrmann
+M:     andreas.herrmann3@amd.com
+L:     amd64-microcode@amd64.org
+S:     Supported
+F:     arch/x86/kernel/microcode_amd.c
 
 AMS (Apple Motion Sensor) DRIVER
 P:     Stelian Pop
@@ -390,6 +472,7 @@ M:  stelian@popies.net
 P:     Michael Hanselmann
 M:     linux-kernel@hansmi.ch
 S:     Supported
+F:     drivers/hwmon/ams/
 
 AMSO1100 RNIC DRIVER
 P:     Tom Tucker
@@ -398,6 +481,7 @@ P:  Steve Wise
 M:     swise@opengridcomputing.com
 L:     general@lists.openfabrics.org
 S:     Maintained
+F:     drivers/infiniband/hw/amso1100/
 
 AOA (Apple Onboard Audio) ALSA DRIVER
 P:     Johannes Berg
@@ -405,6 +489,7 @@ M:  johannes@sipsolutions.net
 L:     linuxppc-dev@ozlabs.org
 L:     alsa-devel@alsa-project.org (subscribers-only)
 S:     Maintained
+F:     sound/aoa/
 
 APM DRIVER
 P:     Stephen Rothwell
@@ -412,48 +497,63 @@ M:        sfr@canb.auug.org.au
 L:     linux-laptop@vger.kernel.org
 W:     http://www.canb.auug.org.au/~sfr/
 S:     Supported
+F:     arch/x86/kernel/apm_32.c
+F:     include/linux/apm_bios.h
 
 APPLE BCM5974 MULTITOUCH DRIVER
 P:     Henrik Rydberg
 M:     rydberg@euromail.se
 L:     linux-input@vger.kernel.org
 S:     Maintained
+F:     drivers/input/mouse/bcm5974.c
 
 APPLE SMC DRIVER
 P:     Nicolas Boichat
 M:     nicolas@boichat.ch
 L:     mactel-linux-devel@lists.sourceforge.net
 S:     Maintained
+F:     drivers/hwmon/applesmc.c
 
 APPLETALK NETWORK LAYER
 P:     Arnaldo Carvalho de Melo
 M:     acme@ghostprotocols.net
 S:     Maintained
+F:     drivers/net/appletalk/
+F:     net/appletalk/
 
 APPLETOUCH TOUCHPAD DRIVER
 P:     Johannes Berg
 M:     johannes@sipsolutions.net
 L:     linux-input@vger.kernel.org
 S:     Maintained
+F:     Documentation/input/appletouch.txt
+F:     drivers/input/mouse/appletouch.c
 
 ARC FRAMEBUFFER DRIVER
 P:     Jaya Kumar
 M:     jayalk@intworks.biz
 S:     Maintained
+F:     drivers/video/arcfb.c
+F:     drivers/video/fb_defio.c
 
 ARM MFM AND FLOPPY DRIVERS
 P:     Ian Molton
 M:     spyro@f2s.com
 S:     Maintained
+F:     arch/arm/lib/floppydma.S
+F:     arch/arm/include/asm/floppy.h
 
 ARM PRIMECELL MMCI PL180/1 DRIVER
 S:     Orphan
+F:     drivers/mmc/host/mmci.*
 
 ARM/ADI ROADRUNNER MACHINE SUPPORT
 P:     Lennert Buytenhek
 M:     kernel@wantstofly.org
 L:     linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
 S:     Maintained
+F:     arch/arm/mach-ixp23xx/
+F:     arch/arm/mach-ixp23xx/include/mach/
 
 ARM/ADS SPHERE MACHINE SUPPORT
 P:     Lennert Buytenhek
@@ -507,7 +607,7 @@ ARM/CORTINA SYSTEMS GEMINI ARM ARCHITECTURE
 P:     Paulius Zaleckas
 M:     paulius.zaleckas@teltonika.lt
 L:     linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
-T:     git gitorious.org/linux-gemini/mainline.git
+T:     git git://gitorious.org/linux-gemini/mainline.git
 S:     Maintained
 
 ARM/EZX SMARTPHONES (A780, A910, A1200, E680, ROKR E2 and ROKR E6)
@@ -643,10 +743,10 @@ W:        http://hackndev.com
 S:     Maintained
 
 ARM/PALMZ72 SUPPORT
-P:     Sergey Lapin
-M:     slapin@ossfans.org
-W:     http://hackndev.com
-S:     Maintained
+P:     Sergey Lapin
+M:     slapin@ossfans.org
+W:     http://hackndev.com
+S:     Maintained
 
 ARM/PLEB SUPPORT
 P:     Peter Chubb
@@ -707,16 +807,17 @@ L:        linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
 S:     Maintained
 
 ARM/NUVOTON W90X900 ARM ARCHITECTURE
-P:      Wan ZongShun
-M:      mcuos.com@gmail.com
-L:      linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
-W:      http://www.mcuos.com
-S:      Maintained
+P:     Wan ZongShun
+M:     mcuos.com@gmail.com
+L:     linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+W:     http://www.mcuos.com
+S:     Maintained
 
 ARPD SUPPORT
 P:     Jonathan Layes
 L:     netdev@vger.kernel.org
 S:     Maintained
+F:     net/ipv4/arp.c
 
 ASUS ACPI EXTRAS DRIVER
 P:     Corentin Chary
@@ -727,12 +828,15 @@ L:        acpi4asus-user@lists.sourceforge.net
 W:     http://sourceforge.net/projects/acpi4asus
 W:     http://xf.iksaif.net/acpi4asus
 S:     Maintained
+F:     arch/x86/kernel/acpi/boot.c
+F:     drivers/platform/x86/asus_acpi.c
 
 ASUS ASB100 HARDWARE MONITOR DRIVER
 P:     Mark M. Hoffman
 M:     mhoffman@lightlink.com
 L:     lm-sensors@lm-sensors.org
 S:     Maintained
+F:     drivers/hwmon/asb100.c
 
 ASUS LAPTOP EXTRAS DRIVER
 P:     Corentin Chary
@@ -741,6 +845,7 @@ L:  acpi4asus-user@lists.sourceforge.net
 W:     http://sourceforge.net/projects/acpi4asus
 W:     http://xf.iksaif.net/acpi4asus
 S:     Maintained
+F:     drivers/platform/x86/asus-laptop.c
 
 ASYNCHRONOUS TRANSFERS/TRANSFORMS (IOAT) API
 P:     Dan Williams
@@ -750,12 +855,19 @@ M:        maciej.sosnowski@intel.com
 L:     linux-kernel@vger.kernel.org
 W:     http://sourceforge.net/projects/xscaleiop
 S:     Supported
+F:     Documentation/crypto/async-tx-api.txt
+F:     crypto/async_tx/
+F:     drivers/dma/
+F:     include/linux/dmaengine.h
+F:     include/linux/async_tx.h
 
 ATA OVER ETHERNET (AOE) DRIVER
 P:     Ed L. Cashin
 M:     ecashin@coraid.com
 W:     http://www.coraid.com/support/linux
 S:     Supported
+F:     Documentation/aoe/
+F:     drivers/block/aoe/
 
 ATHEROS ATH5K WIRELESS DRIVER
 P:     Jiri Slaby
@@ -769,6 +881,7 @@ M:  me@bobcopeland.com
 L:     linux-wireless@vger.kernel.org
 L:     ath5k-devel@lists.ath5k.org
 S:     Maintained
+F:     drivers/net/wireless/ath5k/
 
 ATHEROS ATH9K WIRELESS DRIVER
 P:     Luis R. Rodriguez
@@ -778,6 +891,7 @@ M:  jmalinen@atheros.com
 L:     linux-wireless@vger.kernel.org
 L:     ath9k-devel@lists.ath9k.org
 S:     Supported
+F:     drivers/net/wireless/ath9k/
 
 ATHEROS AR9170 WIRELESS DRIVER
 P:     Christian Lamparter
@@ -791,6 +905,7 @@ ATI_REMOTE2 DRIVER
 P:     Ville Syrjala
 M:     syrjala@sci.fi
 S:     Maintained
+F:     drivers/input/misc/ati_remote2.c
 
 ATLX ETHERNET DRIVERS
 P:     Jay Cliburn
@@ -803,6 +918,7 @@ L:  atl1-devel@lists.sourceforge.net
 W:     http://sourceforge.net/projects/atl1
 W:     http://atl1.sourceforge.net
 S:     Maintained
+F:     drivers/net/atlx/
 
 ATM
 P:     Chas Williams
@@ -811,6 +927,8 @@ L:  linux-atm-general@lists.sourceforge.net (subscribers-only)
 L:     netdev@vger.kernel.org
 W:     http://linux-atm.sourceforge.net
 S:     Maintained
+F:     drivers/atm/
+F:     include/linux/atm*
 
 ATMEL AT91 MCI DRIVER
 P:     Nicolas Ferre
@@ -819,28 +937,34 @@ L:        linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
 W:     http://www.atmel.com/products/AT91/
 W:     http://www.at91.com/
 S:     Maintained
+F:     drivers/mmc/host/at91_mci.c
 
 ATMEL AT91 / AT32 SERIAL DRIVER
 P:     Haavard Skinnemoen
 M:     hskinnemoen@atmel.com
 L:     linux-kernel@vger.kernel.org
 S:     Supported
+F:     drivers/serial/atmel_serial.c
 
 ATMEL LCDFB DRIVER
 P:     Nicolas Ferre
 M:     nicolas.ferre@atmel.com
 L:     linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
 S:     Maintained
+F:     drivers/video/atmel_lcdfb.c
+F:     include/video/atmel_lcdc.h
 
 ATMEL MACB ETHERNET DRIVER
 P:     Haavard Skinnemoen
 M:     hskinnemoen@atmel.com
 S:     Supported
+F:     drivers/net/macb.*
 
 ATMEL SPI DRIVER
 P:     Haavard Skinnemoen
 M:     hskinnemoen@atmel.com
 S:     Supported
+F:     drivers/spi/atmel_spi.*
 
 ATMEL USBA UDC DRIVER
 P:     Haavard Skinnemoen
@@ -848,6 +972,7 @@ M:  hskinnemoen@atmel.com
 L:     kernel@avr32linux.org
 W:     http://avr32linux.org/twiki/bin/view/Main/AtmelUsbDeviceDriver
 S:     Supported
+F:     drivers/usb/gadget/atmel_usba_udc.*
 
 ATMEL WIRELESS DRIVER
 P:     Simon Kelley
@@ -856,6 +981,7 @@ L:  linux-wireless@vger.kernel.org
 W:     http://www.thekelleys.org.uk/atmel
 W:     http://atmelwlandriver.sourceforge.net/
 S:     Maintained
+F:     drivers/net/wireless/atmel*
 
 AUDIT SUBSYSTEM
 P:     Al Viro
@@ -864,8 +990,10 @@ P: Eric Paris
 M:     eparis@redhat.com
 L:     linux-audit@redhat.com (subscribers-only)
 W:     http://people.redhat.com/sgrubb/audit/
-T:     git git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current.git
 S:     Maintained
+F:     include/linux/audit.h
+F:     kernel/audit*
 
 AUXILIARY DISPLAY DRIVERS
 P:     Miguel Ojeda Sandonis
@@ -874,6 +1002,8 @@ L: linux-kernel@vger.kernel.org
 W:     http://miguelojeda.es/auxdisplay.htm
 W:     http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
 S:     Maintained
+F:     drivers/auxdisplay/
+F:     include/linux/cfag12864b.h
 
 AVR32 ARCHITECTURE
 P:     Haavard Skinnemoen
@@ -882,11 +1012,13 @@ W:       http://www.atmel.com/products/AVR32/
 W:     http://avr32linux.org/
 W:     http://avrfreaks.net/
 S:     Supported
+F:     arch/avr32/
 
 AVR32/AT32AP MACHINE SUPPORT
 P:     Haavard Skinnemoen
 M:     hskinnemoen@atmel.com
 S:     Supported
+F:     arch/avr32/mach-at32ap/
 
 AX.25 NETWORK LAYER
 P:     Ralf Baechle
@@ -894,6 +1026,9 @@ M: ralf@linux-mips.org
 L:     linux-hams@vger.kernel.org
 W:     http://www.linux-ax25.org/
 S:     Maintained
+F:     include/linux/ax25.h
+F:     include/net/ax25.h
+F:     net/ax25/
 
 B43 WIRELESS DRIVER
 P:     Michael Buesch
@@ -903,6 +1038,7 @@ M: stefano.brivio@polimi.it
 L:     linux-wireless@vger.kernel.org
 W:     http://linuxwireless.org/en/users/Drivers/b43
 S:     Maintained
+F:     drivers/net/wireless/b43/
 
 B43LEGACY WIRELESS DRIVER
 P:     Larry Finger
@@ -912,11 +1048,14 @@ M:       stefano.brivio@polimi.it
 L:     linux-wireless@vger.kernel.org
 W:     http://linuxwireless.org/en/users/Drivers/b43
 S:     Maintained
+F:     drivers/net/wireless/b43legacy/
 
 BACKLIGHT CLASS/SUBSYSTEM
 P:     Richard Purdie
 M:     rpurdie@rpsys.net
 S:     Maintained
+F:     drivers/video/backlight/
+F:     include/linux/backlight.h
 
 BAYCOM/HDLCDRV DRIVERS FOR AX.25
 P:     Thomas Sailer
@@ -924,18 +1063,24 @@ M:       t.sailer@alumni.ethz.ch
 L:     linux-hams@vger.kernel.org
 W:     http://www.baycom.org/~tom/ham/ham.html
 S:     Maintained
+F:     drivers/net/hamradio/baycom*
 
 BEFS FILE SYSTEM
 P:     Sergey S. Kostyliov
 M:     rathamahata@php4.ru
 L:     linux-kernel@vger.kernel.org
 S:     Maintained
+F:     Documentation/filesystems/befs.txt
+F:     fs/befs/
 
 BFS FILE SYSTEM
 P:     Tigran A. Aivazian
 M:     tigran@aivazian.fsnet.co.uk
 L:     linux-kernel@vger.kernel.org
 S:     Maintained
+F:     Documentation/filesystems/bfs.txt
+F:     fs/bfs/
+F:     include/linux/bfs_fs.h
 
 BLACKFIN ARCHITECTURE
 P:     Bryan Wu
@@ -943,6 +1088,7 @@ M: cooloney@kernel.org
 L:     uclinux-dist-devel@blackfin.uclinux.org
 W:     http://blackfin.uclinux.org
 S:     Supported
+F:     arch/blackfin/
 
 BLACKFIN EMAC DRIVER
 P:     Bryan Wu
@@ -950,6 +1096,7 @@ M: cooloney@kernel.org
 L:     uclinux-dist-devel@blackfin.uclinux.org (subscribers-only)
 W:     http://blackfin.uclinux.org
 S:     Supported
+F:     drivers/net/bfin_mac.*
 
 BLACKFIN RTC DRIVER
 P:     Mike Frysinger
@@ -957,6 +1104,7 @@ M: vapier.adi@gmail.com
 L:     uclinux-dist-devel@blackfin.uclinux.org (subscribers-only)
 W:     http://blackfin.uclinux.org
 S:     Supported
+F:     drivers/rtc/rtc-bfin.c
 
 BLACKFIN SERIAL DRIVER
 P:     Sonic Zhang
@@ -964,6 +1112,7 @@ M: sonic.zhang@analog.com
 L:     uclinux-dist-devel@blackfin.uclinux.org (subscribers-only)
 W:     http://blackfin.uclinux.org
 S:     Supported
+F:     drivers/serial/bfin_5xx.c
 
 BLACKFIN WATCHDOG DRIVER
 P:     Mike Frysinger
@@ -971,6 +1120,7 @@ M: vapier.adi@gmail.com
 L:     uclinux-dist-devel@blackfin.uclinux.org (subscribers-only)
 W:     http://blackfin.uclinux.org
 S:     Supported
+F:     drivers/watchdog/bfin_wdt.c
 
 BLACKFIN I2C TWI DRIVER
 P:     Sonic Zhang
@@ -978,19 +1128,22 @@ M:       sonic.zhang@analog.com
 L:     uclinux-dist-devel@blackfin.uclinux.org (subscribers-only)
 W:     http://blackfin.uclinux.org/
 S:     Supported
+F:     drivers/i2c/busses/i2c-bfin-twi.c
 
 BLOCK LAYER
 P:     Jens Axboe
 M:     axboe@kernel.dk
 L:     linux-kernel@vger.kernel.org
-T:     git kernel.org:/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git
 S:     Maintained
+F:     block/
 
 BLOCK2MTD DRIVER
 P:     Joern Engel
 M:     joern@lazybastard.org
 L:     linux-mtd@lists.infradead.org
 S:     Maintained
+F:     drivers/mtd/devices/block2mtd.c
 
 BLUETOOTH DRIVERS
 P:     Marcel Holtmann
@@ -998,14 +1151,17 @@ M:       marcel@holtmann.org
 L:     linux-bluetooth@vger.kernel.org
 W:     http://www.bluez.org/
 S:     Maintained
+F:     drivers/bluetooth/
 
 BLUETOOTH SUBSYSTEM
 P:     Marcel Holtmann
 M:     marcel@holtmann.org
 L:     linux-bluetooth@vger.kernel.org
 W:     http://www.bluez.org/
-T:     git kernel.org:/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6.git
 S:     Maintained
+F:     net/bluetooth/
+F:     include/net/bluetooth/
 
 BONDING DRIVER
 P:     Jay Vosburgh
@@ -1013,24 +1169,30 @@ M:      fubar@us.ibm.com
 L:     bonding-devel@lists.sourceforge.net
 W:     http://sourceforge.net/projects/bonding/
 S:     Supported
+F:     drivers/net/bonding/
+F:     include/linux/if_bonding.h
 
 BROADCOM B44 10/100 ETHERNET DRIVER
 P:     Gary Zambrano
 M:     zambrano@broadcom.com
 L:     netdev@vger.kernel.org
 S:     Supported
+F:     drivers/net/b44.*
 
 BROADCOM BNX2 GIGABIT ETHERNET DRIVER
 P:     Michael Chan
 M:     mchan@broadcom.com
 L:     netdev@vger.kernel.org
 S:     Supported
+F:     drivers/net/bnx2.*
+F:     drivers/net/bnx2_*
 
 BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER
 P:     Eilon Greenstein
 M:     eilong@broadcom.com
 L:     netdev@vger.kernel.org
 S:     Supported
+F:     drivers/net/bnx2x*
 
 BROADCOM TG3 GIGABIT ETHERNET DRIVER
 P:     Matt Carlson
@@ -1039,41 +1201,51 @@ P:      Michael Chan
 M:     mchan@broadcom.com
 L:     netdev@vger.kernel.org
 S:     Supported
+F:     drivers/net/tg3.*
 
 BSG (block layer generic sg v4 driver)
 P:     FUJITA Tomonori
 M:     fujita.tomonori@lab.ntt.co.jp
 L:     linux-scsi@vger.kernel.org
 S:     Supported
+F:     block/bsg.c
+F:     include/linux/bsg.h
 
 BT8XXGPIO DRIVER
 P:     Michael Buesch
 M:     mb@bu3sch.de
 W:     http://bu3sch.de/btgpio.php
 S:     Maintained
+F:     drivers/gpio/bt8xxgpio.c
 
 BTRFS FILE SYSTEM
 P:     Chris Mason
 M:     chris.mason@oracle.com
 L:     linux-btrfs@vger.kernel.org
 W:     http://btrfs.wiki.kernel.org/
-T:     git kernel.org:/pub/scm/linux/kernel/git/mason/btrfs-unstable.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable.git
 S:     Maintained
+F:     Documentation/filesystems/btrfs.txt
+F:     fs/btrfs/
 
 BTTV VIDEO4LINUX DRIVER
 P:     Mauro Carvalho Chehab
 M:     mchehab@infradead.org
 L:     linux-media@vger.kernel.org
 W:     http://linuxtv.org
-T:     git kernel.org:/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
 S:     Maintained
+F:     Documentation/video4linux/bttv/
+F:     drivers/media/video/bt8xx/bttv*
 
 CAFE CMOS INTEGRATED CAMERA CONTROLLER DRIVER
 P:     Jonathan Corbet
 M:     corbet@lwn.net
 L:     linux-media@vger.kernel.org
-T:     git kernel.org:/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
 S:     Maintained
+F:     Documentation/video4linux/cafe_ccic
+F:     drivers/media/video/cafe_ccic*
 
 CALGARY x86-64 IOMMU
 P:     Muli Ben-Yehuda
@@ -1083,6 +1255,10 @@ M:       jdmason@kudzu.us
 L:     linux-kernel@vger.kernel.org
 L:     discuss@x86-64.org
 S:     Maintained
+F:     arch/x86/kernel/pci-calgary_64.c
+F:     arch/x86/kernel/tce_64.c
+F:     arch/x86/include/asm/calgary.h
+F:     arch/x86/include/asm/tce.h
 
 CAN NETWORK LAYER
 P:     Urs Thuermann
@@ -1092,6 +1268,9 @@ M:        oliver.hartkopp@volkswagen.de
 L:     socketcan-core@lists.berlios.de (subscribers-only)
 W:     http://developer.berlios.de/projects/socketcan/
 S:     Maintained
+F:     drivers/net/can/
+F:     include/linux/can/
+F:     include/linux/can.h
 
 CELL BROADBAND ENGINE ARCHITECTURE
 P:     Arnd Bergmann
@@ -1100,12 +1279,23 @@ L:      linuxppc-dev@ozlabs.org
 L:     cbe-oss-dev@ozlabs.org
 W:     http://www.ibm.com/developerworks/power/cell/
 S:     Supported
+F:     arch/powerpc/include/asm/cell*.h
+F:     arch/powerpc/include/asm/lv1call.h
+F:     arch/powerpc/include/asm/ps3*.h
+F:     arch/powerpc/include/asm/spu*.h
+F:     arch/powerpc/oprofile/*cell*
+F:     arch/powerpc/platforms/cell/
+F:     arch/powerpc/platforms/ps3/
 
 CERTIFIED WIRELESS USB (WUSB) SUBSYSTEM:
 P:     David Vrabel
 M:     david.vrabel@csr.com
 L:     linux-usb@vger.kernel.org
 S:     Supported
+F:     Documentation/usb/WUSB-Design-overview.txt
+F:     Documentation/usb/wusb-cbaf
+F:     drivers/usb/wusbcore/
+F:     include/linux/usb/wusb*
 
 CFAG12864B LCD DRIVER
 P:     Miguel Ojeda Sandonis
@@ -1114,6 +1304,8 @@ L:        linux-kernel@vger.kernel.org
 W:     http://miguelojeda.es/auxdisplay.htm
 W:     http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
 S:     Maintained
+F:     drivers/auxdisplay/cfag12864b.c
+F:     include/linux/cfag12864b.h
 
 CFAG12864BFB LCD FRAMEBUFFER DRIVER
 P:     Miguel Ojeda Sandonis
@@ -1122,18 +1314,25 @@ L:      linux-kernel@vger.kernel.org
 W:     http://miguelojeda.es/auxdisplay.htm
 W:     http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
 S:     Maintained
+F:     drivers/auxdisplay/cfag12864bfb.c
+F:     include/linux/cfag12864b.h
 
 CFG80211 and NL80211
 P:     Johannes Berg
 M:     johannes@sipsolutions.net
 L:     linux-wireless@vger.kernel.org
 S:     Maintained
+F:     include/linux/nl80211.h
+F:     include/net/cfg80211.h
+F:     net/wireless/*
+X:     net/wireless/wext*
 
 CHECKPATCH
 P:     Andy Whitcroft
 M:     apw@canonical.com
 L:     linux-kernel@vger.kernel.org
 S:     Supported
+F:     scripts/checkpatch.pl
 
 CISCO 10G ETHERNET DRIVER
 P:     Scott Feldman
@@ -1141,24 +1340,28 @@ M:      scofeldm@cisco.com
 P:     Joe Eykholt
 M:     jeykholt@cisco.com
 S:     Supported
+F:     drivers/net/enic/
 
 CIRRUS LOGIC EP93XX ETHERNET DRIVER
 P:     Lennert Buytenhek
 M:     kernel@wantstofly.org
 L:     netdev@vger.kernel.org
 S:     Maintained
+F:     drivers/net/arm/ep93xx_eth.c
 
 CIRRUS LOGIC EP93XX OHCI USB HOST DRIVER
 P:     Lennert Buytenhek
 M:     kernel@wantstofly.org
 L:     linux-usb@vger.kernel.org
 S:     Maintained
+F:     drivers/usb/host/ohci-ep93xx.c
 
 CIRRUS LOGIC CS4270 SOUND DRIVER
 P:     Timur Tabi
 M:     timur@freescale.com
 L:     alsa-devel@alsa-project.org
 S:     Supported
+F:     sound/soc/codecs/cs4270*
 
 CIRRUS LOGIC CS4280/CS461x SOUNDDRIVER
 P:     Cirrus Logic Corporation (kernel 2.2 driver)
@@ -1166,6 +1369,8 @@ M:        Cirrus Logic Corporation, Thomas Woller <twoller@crystal.cirrus.com>
 P:     Nils Faerber (port to kernel 2.4)
 M:     Nils Faerber <nils@kernelconcepts.de>
 S:     Maintained
+F:     Documentation/input/cs461x.txt
+F:     sound/pci/cs46xx/
 
 CODA FILE SYSTEM
 P:     Jan Harkes
@@ -1174,6 +1379,9 @@ M:        coda@cs.cmu.edu
 L:     codalist@coda.cs.cmu.edu
 W:     http://www.coda.cs.cmu.edu/
 S:     Maintained
+F:     Documentation/filesystems/coda.txt
+F:     fs/coda/
+F:     include/linux/coda*.h
 
 COMMON INTERNET FILE SYSTEM (CIFS)
 P:     Steve French
@@ -1181,8 +1389,10 @@ M:       sfrench@samba.org
 L:     linux-cifs-client@lists.samba.org
 L:     samba-technical@lists.samba.org
 W:     http://linux-cifs.samba.org/
-T:     git kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git
 S:     Supported
+F:     Documentation/filesystems/cifs.txt
+F:     fs/cifs/
 
 COMPACTPCI HOTPLUG CORE
 P:     Scott Murray
@@ -1190,6 +1400,7 @@ M:        scottm@somanetworks.com
 M:     scott@spiteful.org
 L:     linux-pci@vger.kernel.org
 S:     Supported
+F:     drivers/pci/hotplug/cpci_hotplug*
 
 COMPACTPCI HOTPLUG ZIATECH ZT5550 DRIVER
 P:     Scott Murray
@@ -1197,6 +1408,7 @@ M:        scottm@somanetworks.com
 M:     scott@spiteful.org
 L:     linux-pci@vger.kernel.org
 S:     Supported
+F:     drivers/pci/hotplug/cpcihp_zt5550.*
 
 COMPACTPCI HOTPLUG GENERIC DRIVER
 P:     Scott Murray
@@ -1204,17 +1416,21 @@ M:      scottm@somanetworks.com
 M:     scott@spiteful.org
 L:     linux-pci@vger.kernel.org
 S:     Supported
+F:     drivers/pci/hotplug/cpcihp_generic.c
 
 COMPAL LAPTOP SUPPORT
 P:     Cezary Jackiewicz
 M:     cezary.jackiewicz@gmail.com
 S:     Maintained
+F:     drivers/platform/x86/compal-laptop.c
 
 COMPUTONE INTELLIPORT MULTIPORT CARD
 P:     Michael H. Warfield
 M:     mhw@wittsend.com
 W:     http://www.wittsend.com/computone.html
 S:     Maintained
+F:     Documentation/serial/computone.txt
+F:     drivers/char/ip2/
 
 CONEXANT ACCESSRUNNER USB DRIVER
 P:     Simon Arlott
@@ -1222,12 +1438,15 @@ M:      cxacru@fire.lp0.eu
 L:     accessrunner-general@lists.sourceforge.net
 W:     http://accessrunner.sourceforge.net/
 S:     Maintained
+F:     drivers/usb/atm/cxacru.c
 
 CONFIGFS
 P:     Joel Becker
 M:     joel.becker@oracle.com
 L:     linux-kernel@vger.kernel.org
 S:     Supported
+F:     fs/configfs/
+F:     include/linux/configfs.h
 
 CONTROL GROUPS (CGROUPS)
 P:     Paul Menage
@@ -1236,31 +1455,41 @@ P:      Li Zefan
 M:     lizf@cn.fujitsu.com
 L:     containers@lists.linux-foundation.org
 S:     Maintained
+F:     include/linux/cgroup*
+F:     kernel/cgroup*
 
 CORETEMP HARDWARE MONITORING DRIVER
 P:     Rudolf Marek
 M:     r.marek@assembler.cz
 L:     lm-sensors@lm-sensors.org
 S:     Maintained
+F:     Documentation/hwmon/coretemp
+F:     drivers/hwmon/coretemp.c
 
 COSA/SRP SYNC SERIAL DRIVER
 P:     Jan "Yenya" Kasprzak
 M:     kas@fi.muni.cz
 W:     http://www.fi.muni.cz/~kas/cosa/
 S:     Maintained
+F:     drivers/net/wan/cosa*
 
 CPU FREQUENCY DRIVERS
 P:     Dave Jones
 M:     davej@redhat.com
 L:     cpufreq@vger.kernel.org
 W:     http://www.codemonkey.org.uk/projects/cpufreq/
-T:     git kernel.org/pub/scm/linux/kernel/git/davej/cpufreq.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq.git
 S:     Maintained
+F:     arch/x86/kernel/cpu/cpufreq/
+F:     drivers/cpufreq/
+F:     include/linux/cpufreq.h
 
 CPUID/MSR DRIVER
 P:     H. Peter Anvin
 M:     hpa@zytor.com
 S:     Maintained
+F:     arch/x86/kernel/cpuid.c
+F:     arch/x86/kernel/msr.c
 
 CPUSETS
 P:     Paul Menage
@@ -1269,10 +1498,15 @@ L:      linux-kernel@vger.kernel.org
 W:     http://www.bullopensource.org/cpuset/
 W:     http://oss.sgi.com/projects/cpusets/
 S:     Supported
+F:     Documentation/cgroups/cpusets.txt
+F:     include/linux/cpuset.h
+F:     kernel/cpuset.c
 
 CRAMFS FILESYSTEM
 W:     http://sourceforge.net/projects/cramfs/
 S:     Orphan
+F:     Documentation/filesystems/cramfs.txt
+F:     fs/cramfs/
 
 CRIS PORT
 P:     Mikael Starvik
@@ -1282,6 +1516,7 @@ M:        jesper.nilsson@axis.com
 L:     dev-etrax@axis.com
 W:     http://developer.axis.com
 S:     Maintained
+F:     arch/cris/
 
 CRYPTO API
 P:     Herbert Xu
@@ -1289,8 +1524,13 @@ M:       herbert@gondor.apana.org.au
 P:     David S. Miller
 M:     davem@davemloft.net
 L:     linux-crypto@vger.kernel.org
-T:     git kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6.git
 S:     Maintained
+F:     Documentation/crypto/
+F:     arch/*/crypto/
+F:     crypto/
+F:     drivers/crypto/
+F:     include/crypto/
 
 CRYPTOGRAPHIC RANDOM NUMBER GENERATOR
 P:     Neil Horman
@@ -1302,16 +1542,21 @@ CS5535 Audio ALSA driver
 P:     Jaya Kumar
 M:     jayakumar.alsa@gmail.com
 S:     Maintained
+F:     sound/pci/cs5535audio/
 
 CX18 VIDEO4LINUX DRIVER
-P:     Hans Verkuil, Andy Walls
-M:     hverkuil@xs4all.nl, awalls@radix.net
+P:     Hans Verkuil
+M:     hverkuil@xs4all.nl
+P:     Andy Walls
+M:     awalls@radix.net
 L:     ivtv-devel@ivtvdriver.org
 L:     ivtv-users@ivtvdriver.org
 L:     linux-media@vger.kernel.org
-T:     git kernel.org:/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
 W:     http://linuxtv.org
 S:     Maintained
+F:     Documentation/video4linux/cx18.txt
+F:     drivers/media/video/cx18/
 
 CXGB3 ETHERNET DRIVER (CXGB3)
 P:     Divy Le Ray
@@ -1319,6 +1564,7 @@ M:        divy@chelsio.com
 L:     netdev@vger.kernel.org
 W:     http://www.chelsio.com
 S:     Supported
+F:     drivers/net/cxgb3/
 
 CXGB3 IWARP RNIC DRIVER (IW_CXGB3)
 P:     Steve Wise
@@ -1326,32 +1572,32 @@ M:      swise@chelsio.com
 L:     general@lists.openfabrics.org
 W:     http://www.openfabrics.org
 S:     Supported
+F:     drivers/infiniband/hw/cxgb3/
 
 CYBERPRO FB DRIVER
 P:     Russell King
 M:     rmk@arm.linux.org.uk
 W:     http://www.arm.linux.org.uk/
 S:     Maintained
-
-CYBLAFB FRAMEBUFFER DRIVER
-P:     Knut Petersen
-M:     Knut_Petersen@t-online.de
-L:     linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
-S:     Maintained
+F:     drivers/video/cyber2000fb.*
 
 CYCLADES 2X SYNC CARD DRIVER
 P:     Arnaldo Carvalho de Melo
 M:     acme@ghostprotocols.net
 W:     http://oops.ghostprotocols.net:81/blog
 S:     Maintained
+F:     drivers/net/wan/cycx*
 
 CYCLADES ASYNC MUX DRIVER
 W:     http://www.cyclades.com/
 S:     Orphan
+F:     drivers/char/cyclades.c
+F:     include/linux/cyclades.h
 
 CYCLADES PC300 DRIVER
 W:     http://www.cyclades.com/
 S:     Orphan
+F:     drivers/net/wan/pc300*
 
 DAMA SLAVE for AX.25
 P:     Joerg Reuter
@@ -1360,12 +1606,21 @@ W:      http://yaina.de/jreuter/
 W:     http://www.qsl.net/dl1bke/
 L:     linux-hams@vger.kernel.org
 S:     Maintained
+F:     net/ax25/af_ax25.c
+F:     net/ax25/ax25_dev.c
+F:     net/ax25/ax25_ds_*
+F:     net/ax25/ax25_in.c
+F:     net/ax25/ax25_out.c
+F:     net/ax25/ax25_timer.c
+F:     net/ax25/sysctl_net_ax25.c
 
 DAVICOM FAST ETHERNET (DMFE) NETWORK DRIVER
 P:     Tobias Ringstrom
 M:     tori@unhappy.mine.nu
 L:     netdev@vger.kernel.org
 S:     Maintained
+F:     Documentation/networking/dmfe.txt
+F:     drivers/net/tulip/dmfe.c
 
 DC390/AM53C974 SCSI driver
 P:     Kurt Garloff
@@ -1374,6 +1629,7 @@ W:        http://www.garloff.de/kurt/linux/dc390/
 P:     Guennadi Liakhovetski
 M:     g.liakhovetski@gmx.de
 S:     Maintained
+F:     drivers/scsi/tmscsim.*
 
 DC395x SCSI driver
 P:     Oliver Neukum
@@ -1386,6 +1642,8 @@ W:        http://twibble.org/dist/dc395x/
 L:     dc395x@twibble.org
 L:     http://lists.twibble.org/mailman/listinfo/dc395x/
 S:     Maintained
+F:     Documentation/scsi/dc395x.txt
+F:     drivers/scsi/dc395x.*
 
 DCCP PROTOCOL
 P:     Arnaldo Carvalho de Melo
@@ -1393,6 +1651,9 @@ M:        acme@ghostprotocols.net
 L:     dccp@vger.kernel.org
 W:     http://linux-net.osdl.org/index.php/DCCP
 S:     Maintained
+F:     include/linux/dccp.h
+F:     include/linux/tfrc.h
+F:     net/dccp/
 
 DECnet NETWORK LAYER
 P:     Christine Caulfield
@@ -1400,27 +1661,35 @@ M:      christine.caulfield@googlemail.com
 W:     http://linux-decnet.sourceforge.net
 L:     linux-decnet-user@lists.sourceforge.net
 S:     Maintained
+F:     Documentation/networking/decnet.txt
+F:     net/decnet/
 
 DEFXX FDDI NETWORK DRIVER
 P:     Maciej W. Rozycki
 M:     macro@linux-mips.org
 S:     Maintained
+F:     drivers/net/defxx.*
 
 DELL LAPTOP DRIVER
 P:     Matthew Garrett
 M:     mjg59@srcf.ucam.org
 S:     Maintained
+F:     drivers/platform/x86/dell-laptop.c
 
 DELL LAPTOP SMM DRIVER
 P:     Massimo Dal Zotto
 M:     dz@debian.org
 W:     http://www.debian.org/~dz/i8k/
 S:     Maintained
+F:     drivers/char/i8k.c
+F:     include/linux/i8k.h
 
 DELL SYSTEMS MANAGEMENT BASE DRIVER (dcdbas)
 P:     Doug Warzecha
 M:     Douglas_Warzecha@dell.com
 S:     Maintained
+F:     Documentation/dcdbas.txt
+F:     drivers/firmware/dcdbas.*
 
 DELL WMI EXTRAS DRIVER
 P:     Matthew Garrett
@@ -1439,6 +1708,10 @@ P:       Alasdair Kergon
 L:     dm-devel@redhat.com
 W:     http://sources.redhat.com/dm
 S:     Maintained
+F:     Documentation/device-mapper/
+F:     drivers/md/dm*
+F:     include/linux/device-mapper.h
+F:     include/linux/dm-*.h
 
 DIGI INTL. EPCA DRIVER
 P:     Digi International, Inc
@@ -1446,12 +1719,18 @@ M:      Eng.Linux@digi.com
 L:     Eng.Linux@digi.com
 W:     http://www.digi.com
 S:     Orphan
+F:     Documentation/serial/digiepca.txt
+F:     drivers/char/epca*
+F:     drivers/char/digi*
 
 DIRECTORY NOTIFICATION (DNOTIFY)
 P:     Stephen Rothwell
 M:     sfr@canb.auug.org.au
 L:     linux-kernel@vger.kernel.org
 S:     Supported
+F:     Documentation/filesystems/dnotify.txt
+F:     fs/notify/dnotify/
+F:     include/linux/dnotify.h
 
 DISK GEOMETRY AND PARTITION HANDLING
 P:     Andries Brouwer
@@ -1466,6 +1745,9 @@ P:        Jan Kara
 M:     jack@suse.cz
 L:     linux-kernel@vger.kernel.org
 S:     Maintained
+F:     Documentation/filesystems/quota.txt
+F:     fs/quota/
+F:     include/linux/quota*.h
 
 DISTRIBUTED LOCK MANAGER (DLM)
 P:     Christine Caulfield
@@ -1474,8 +1756,9 @@ P:        David Teigland
 M:     teigland@redhat.com
 L:     cluster-devel@redhat.com
 W:     http://sources.redhat.com/cluster/
-T:     git kernel.org:/pub/scm/linux/kernel/git/teigland/dlm.git
+T:     git git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm.git
 S:     Supported
+F:     fs/dlm/
 
 DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
 P:     Maciej Sosnowski
@@ -1484,12 +1767,16 @@ P:      Dan Williams
 M:     dan.j.williams@intel.com
 L:     linux-kernel@vger.kernel.org
 S:     Supported
+F:     drivers/dma/
+F:     include/linux/dma*
 
 DME1737 HARDWARE MONITOR DRIVER
 P:     Juerg Haefliger
 M:     juergh@gmail.com
 L:     lm-sensors@lm-sensors.org
 S:     Maintained
+F:     Documentation/hwmon/dme1737
+F:     drivers/hwmon/dme1737.c
 
 DOCBOOK FOR DOCUMENTATION
 P:     Randy Dunlap
@@ -1501,18 +1788,22 @@ P:      Shaohua Li
 M:     shaohua.li@intel.com
 L:     linux-acpi@vger.kernel.org
 S:     Supported
+F:     drivers/acpi/dock.c
 
-DOCUMENTATION (/Documentation directory)
+DOCUMENTATION
 P:     Randy Dunlap
 M:     rdunlap@xenotime.net
 L:     linux-doc@vger.kernel.org
 S:     Maintained
+F:     Documentation/
 
 DOUBLETALK DRIVER
 P:     James R. Van Zandt
 M:     jrv@vanzandt.mv.com
 L:     blinux-list@redhat.com
 S:     Maintained
+F:     drivers/char/dtlk.c
+F:     include/linux/dtlk.h