aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2003-09-06 00:40:18 +0000
committeriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2003-09-06 00:40:18 +0000
commit514adcf9f1ebfa66c1d466bc5f2fce012f04b07d (patch)
treed3383e52fe6dcfc1f3001d24154cc5176f777285
parent6cfc86805ad2495ef2438793ccef3f297b7b42d7 (diff)
downloadxen-514adcf9f1ebfa66c1d466bc5f2fce012f04b07d.tar.gz
xen-514adcf9f1ebfa66c1d466bc5f2fce012f04b07d.tar.bz2
xen-514adcf9f1ebfa66c1d466bc5f2fce012f04b07d.zip
bitkeeper revision 1.411 (3f592cf2ZW4sVWHIw4rRCGs-4LMYUw)
Update to linux 2.4.22
-rw-r--r--.rootkeys176
-rw-r--r--xenolinux-2.4.22-sparse/Documentation/Configure.help (renamed from xenolinux-2.4.21-sparse/Documentation/Configure.help)1120
-rw-r--r--xenolinux-2.4.22-sparse/Makefile (renamed from xenolinux-2.4.21-sparse/Makefile)15
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/Makefile (renamed from xenolinux-2.4.21-sparse/arch/xeno/Makefile)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/boot/Makefile (renamed from xenolinux-2.4.21-sparse/arch/xeno/boot/Makefile)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/config.in (renamed from xenolinux-2.4.21-sparse/arch/xeno/config.in)3
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/defconfig (renamed from xenolinux-2.4.21-sparse/arch/xeno/defconfig)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/balloon/Makefile (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/balloon/Makefile)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/balloon/balloon.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/balloon/balloon.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/balloon/dom_mem_ops.h (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/balloon/dom_mem_ops.h)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/block/Makefile (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/block/Makefile)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_block.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_block.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_block.h (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_block.h)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_ide.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_ide.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_scsi.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_scsi.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_segment.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_segment.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_segment_proc.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_segment_proc.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/console/Makefile (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/console/Makefile)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/console/console.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/console/console.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/dom0/Makefile (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/dom0/Makefile)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/dom0/dom0_core.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/dom0/dom0_core.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/dom0/vfr.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/dom0/vfr.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/network/Makefile (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/network/Makefile)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/drivers/network/network.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/drivers/network/network.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/kernel/Makefile (renamed from xenolinux-2.4.21-sparse/arch/xeno/kernel/Makefile)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/kernel/entry.S (renamed from xenolinux-2.4.21-sparse/arch/xeno/kernel/entry.S)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/kernel/head.S (renamed from xenolinux-2.4.21-sparse/arch/xeno/kernel/head.S)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/kernel/hypervisor.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/kernel/hypervisor.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/kernel/i386_ksyms.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/kernel/i386_ksyms.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/kernel/ioport.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/kernel/ioport.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/kernel/irq.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/kernel/irq.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/kernel/ldt.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/kernel/ldt.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/kernel/process.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/kernel/process.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/kernel/setup.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/kernel/setup.c)2
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/kernel/signal.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/kernel/signal.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/kernel/time.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/kernel/time.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/kernel/traps.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/kernel/traps.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/lib/Makefile (renamed from xenolinux-2.4.21-sparse/arch/xeno/lib/Makefile)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/lib/delay.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/lib/delay.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/mm/Makefile (renamed from xenolinux-2.4.21-sparse/arch/xeno/mm/Makefile)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/mm/fault.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/mm/fault.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/mm/hypervisor.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/mm/hypervisor.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/mm/init.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/mm/init.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/mm/ioremap.c (renamed from xenolinux-2.4.21-sparse/arch/xeno/mm/ioremap.c)0
-rw-r--r--xenolinux-2.4.22-sparse/arch/xeno/vmlinux.lds (renamed from xenolinux-2.4.21-sparse/arch/xeno/vmlinux.lds)0
-rw-r--r--xenolinux-2.4.22-sparse/drivers/block/genhd.c (renamed from xenolinux-2.4.21-sparse/drivers/block/genhd.c)0
-rw-r--r--xenolinux-2.4.22-sparse/drivers/block/ll_rw_blk.c (renamed from xenolinux-2.4.21-sparse/drivers/block/ll_rw_blk.c)230
-rw-r--r--xenolinux-2.4.22-sparse/drivers/char/mem.c (renamed from xenolinux-2.4.21-sparse/drivers/char/mem.c)0
-rw-r--r--xenolinux-2.4.22-sparse/drivers/char/tty_io.c (renamed from xenolinux-2.4.21-sparse/drivers/char/tty_io.c)21
-rw-r--r--xenolinux-2.4.22-sparse/fs/exec.c (renamed from xenolinux-2.4.21-sparse/fs/exec.c)26
-rw-r--r--xenolinux-2.4.22-sparse/fs/partitions/Config.in (renamed from xenolinux-2.4.21-sparse/fs/partitions/Config.in)0
-rw-r--r--xenolinux-2.4.22-sparse/fs/partitions/Makefile (renamed from xenolinux-2.4.21-sparse/fs/partitions/Makefile)0
-rw-r--r--xenolinux-2.4.22-sparse/fs/partitions/check.c (renamed from xenolinux-2.4.21-sparse/fs/partitions/check.c)0
-rw-r--r--xenolinux-2.4.22-sparse/fs/partitions/xeno.c (renamed from xenolinux-2.4.21-sparse/fs/partitions/xeno.c)0
-rw-r--r--xenolinux-2.4.22-sparse/fs/partitions/xeno.h (renamed from xenolinux-2.4.21-sparse/fs/partitions/xeno.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/bugs.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/bugs.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/desc.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/desc.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/fixmap.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/fixmap.h)2
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/highmem.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/highmem.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/hw_irq.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/hw_irq.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/hypervisor.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/hypervisor.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/irq.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/irq.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/keyboard.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/keyboard.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/mmu_context.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/mmu_context.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/multicall.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/multicall.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/page.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/page.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/pgalloc.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/pgalloc.h)2
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/pgtable-2level.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/pgtable-2level.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/pgtable.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/pgtable.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/proc_cmd.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/proc_cmd.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/processor.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/processor.h)13
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/ptrace.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/ptrace.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/segment.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/segment.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/smp.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/smp.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/system.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/system.h)1
-rw-r--r--xenolinux-2.4.22-sparse/include/asm-xeno/vga.h (renamed from xenolinux-2.4.21-sparse/include/asm-xeno/vga.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/linux/blk.h (renamed from xenolinux-2.4.21-sparse/include/linux/blk.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/linux/major.h (renamed from xenolinux-2.4.21-sparse/include/linux/major.h)0
-rw-r--r--xenolinux-2.4.22-sparse/include/linux/sunrpc/debug.h (renamed from xenolinux-2.4.21-sparse/include/linux/sunrpc/debug.h)0
-rw-r--r--xenolinux-2.4.22-sparse/init/do_mounts.c (renamed from xenolinux-2.4.21-sparse/init/do_mounts.c)20
-rw-r--r--xenolinux-2.4.22-sparse/kernel/panic.c (renamed from xenolinux-2.4.21-sparse/kernel/panic.c)0
-rw-r--r--xenolinux-2.4.22-sparse/kernel/printk.c (renamed from xenolinux-2.4.21-sparse/kernel/printk.c)9
-rwxr-xr-xxenolinux-2.4.22-sparse/lndir-rel (renamed from xenolinux-2.4.21-sparse/lndir-rel)bin15929 -> 15929 bytes
-rwxr-xr-xxenolinux-2.4.22-sparse/mkbuildtree (renamed from xenolinux-2.4.21-sparse/mkbuildtree)0
-rw-r--r--xenolinux-2.4.22-sparse/mm/memory.c (renamed from xenolinux-2.4.21-sparse/mm/memory.c)0
-rw-r--r--xenolinux-2.4.22-sparse/mm/mprotect.c (renamed from xenolinux-2.4.21-sparse/mm/mprotect.c)0
-rw-r--r--xenolinux-2.4.22-sparse/mm/mremap.c (renamed from xenolinux-2.4.21-sparse/mm/mremap.c)13
-rw-r--r--xenolinux-2.4.22-sparse/mm/swapfile.c (renamed from xenolinux-2.4.21-sparse/mm/swapfile.c)23
-rw-r--r--xenolinux-2.4.22-sparse/mm/vmalloc.c (renamed from xenolinux-2.4.21-sparse/mm/vmalloc.c)67
89 files changed, 1400 insertions, 343 deletions
diff --git a/.rootkeys b/.rootkeys
index 62cf88cadb..9f6ce592c7 100644
--- a/.rootkeys
+++ b/.rootkeys
@@ -508,91 +508,91 @@
3eb3c87fmKYTC5GCh_rydFakZp9ayw xen/tools/figlet/README
3eb3c87fdQKQ5OBGbM-KjZfi9Us4ng xen/tools/figlet/figlet.c
3eb3c87fS7DNbg0i6yhFs28UIqAK5g xen/tools/figlet/xen.flf
-3f05a939TA3SLPY7ZiScMotLjg9owQ xenolinux-2.4.21-sparse/Documentation/Configure.help
-3e5a4e6589G-U42lFKs43plskXoFxQ xenolinux-2.4.21-sparse/Makefile
-3e5a4e65IEPjnWPZ5w3TxS5scV8Ewg xenolinux-2.4.21-sparse/arch/xeno/Makefile
-3e5a4e65n-KhsEAs-A4ULiStBp-r6w xenolinux-2.4.21-sparse/arch/xeno/boot/Makefile
-3e5a4e65OV_j_DBtjzt5vej771AJsA xenolinux-2.4.21-sparse/arch/xeno/config.in
-3e5a4e65TNEycLeXqPSXQJQm_xGecA xenolinux-2.4.21-sparse/arch/xeno/defconfig
-3e6377f5xwPfYZkPHPrDbEq1PRN7uQ xenolinux-2.4.21-sparse/arch/xeno/drivers/balloon/Makefile
-3e6377f8Me8IqtvEhb70XFgOvqQH7A xenolinux-2.4.21-sparse/arch/xeno/drivers/balloon/balloon.c
-3e6377fbMjXWAQd0XN0FWv4fDEo6fg xenolinux-2.4.21-sparse/arch/xeno/drivers/balloon/dom_mem_ops.h
-3e5a4e65iHEuC5sjFhj42XALYbLVRw xenolinux-2.4.21-sparse/arch/xeno/drivers/block/Makefile
-3e5a4e65pP5spJErBW69pJxSSdK9RA xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_block.c
-3e67f822FOPwqHiaRKbrskgWgoNL5g xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_block.h
-3e677190SjkzJIvFifRVeYpIZOCtYA xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_ide.c
-3e677193nOKKTLJzcAu4SYdbZaia8g xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_scsi.c
-3e676eb5RXnHzSHgA1BvM0B1aIm4qg xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_segment.c
-3e5d129aDldt6geU2-2SzBae34sQzg xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_segment_proc.c
-3e5a4e65G3e2s0ghPMgiJ-gBTUJ0uQ xenolinux-2.4.21-sparse/arch/xeno/drivers/console/Makefile
-3e5a4e651TH-SXHoufurnWjgl5bfOA xenolinux-2.4.21-sparse/arch/xeno/drivers/console/console.c
-3e5a4e656nfFISThfbyXQOA6HN6YHw xenolinux-2.4.21-sparse/arch/xeno/drivers/dom0/Makefile
-3e5a4e65BXtftInNHUC2PjDfPhdZZA xenolinux-2.4.21-sparse/arch/xeno/drivers/dom0/dom0_core.c
-3e5a4e65gfn_ltB8ujHMVFApnTTNRQ xenolinux-2.4.21-sparse/arch/xeno/drivers/dom0/vfr.c
-3e5a4e65gZBRBB6RsSVg1c9iahigAw xenolinux-2.4.21-sparse/arch/xeno/drivers/network/Makefile
-3e5a4e65ZxKrbFetVB84JhrTyZ1YuQ xenolinux-2.4.21-sparse/arch/xeno/drivers/network/network.c
-3e5a4e65lWzkiPXsZdzPt2RNnJGG1g xenolinux-2.4.21-sparse/arch/xeno/kernel/Makefile
-3e5a4e65_hqfuxtGG8IUy6wRM86Ecg xenolinux-2.4.21-sparse/arch/xeno/kernel/entry.S
-3e5a4e65Hy_1iUvMTPsNqGNXd9uFpg xenolinux-2.4.21-sparse/arch/xeno/kernel/head.S
-3e5a4e65ibVQmwlOn0j3sVH_j_6hAg xenolinux-2.4.21-sparse/arch/xeno/kernel/hypervisor.c
-3e5a4e65RMGcuA-HCn3-wNx3fFQwdg xenolinux-2.4.21-sparse/arch/xeno/kernel/i386_ksyms.c
-3e5a4e65MEvZhlr070sK5JsfAQlv7Q xenolinux-2.4.21-sparse/arch/xeno/kernel/ioport.c
-3e5a4e653U6cELGv528IxOLHvCq8iA xenolinux-2.4.21-sparse/arch/xeno/kernel/irq.c
-3e5a4e65muT6SU3ck47IP87Q7Ti5hA xenolinux-2.4.21-sparse/arch/xeno/kernel/ldt.c
-3e5a4e65IGt3WwQDNiL4h-gYWgNTWQ xenolinux-2.4.21-sparse/arch/xeno/kernel/process.c
-3e5a4e66tR-qJMLj3MppcKqmvuI2XQ xenolinux-2.4.21-sparse/arch/xeno/kernel/setup.c
-3e5a4e66fWSTagLGU2P8BGFGRjhDiw xenolinux-2.4.21-sparse/arch/xeno/kernel/signal.c
-3e5a4e66N__lUXNwzQ-eADRzK9LXuQ xenolinux-2.4.21-sparse/arch/xeno/kernel/time.c
-3e5a4e66aHCbQ_F5QZ8VeyikLmuRZQ xenolinux-2.4.21-sparse/arch/xeno/kernel/traps.c
-3e5a4e66-9_NczrVMbuQkoSLyXckIw xenolinux-2.4.21-sparse/arch/xeno/lib/Makefile
-3e5a4e6637ZDk0BvFEC-aFQs599-ng xenolinux-2.4.21-sparse/arch/xeno/lib/delay.c
-3e5a4e66croVgpcJyJuF2ycQw0HuJw xenolinux-2.4.21-sparse/arch/xeno/mm/Makefile
-3e5a4e66l8Q5Tv-6B3lQIRmaVbFPzg xenolinux-2.4.21-sparse/arch/xeno/mm/fault.c
-3e5a4e668SE9rixq4ahho9rNhLUUFQ xenolinux-2.4.21-sparse/arch/xeno/mm/hypervisor.c
-3e5a4e661gLzzff25pJooKIIWe7IWg xenolinux-2.4.21-sparse/arch/xeno/mm/init.c
-3f0bed43UUdQichXAiVNrjV-y2Kzcg xenolinux-2.4.21-sparse/arch/xeno/mm/ioremap.c
-3e5a4e66qRlSTcjafidMB6ulECADvg xenolinux-2.4.21-sparse/arch/xeno/vmlinux.lds
-3ea53c6em6uzVHSiGqrbbAVofyRY_g xenolinux-2.4.21-sparse/drivers/block/genhd.c
-3e5a4e66mrtlmV75L1tjKDg8RaM5gA xenolinux-2.4.21-sparse/drivers/block/ll_rw_blk.c
-3f108aeaLcGDgQdFAANLTUEid0a05w xenolinux-2.4.21-sparse/drivers/char/mem.c
-3e5a4e66rw65CxyolW9PKz4GG42RcA xenolinux-2.4.21-sparse/drivers/char/tty_io.c
-3e5a4e669uzIE54VwucPYtGwXLAbzA xenolinux-2.4.21-sparse/fs/exec.c
-3f05a939l8s0eQb_fpMvYiI06cTGlA xenolinux-2.4.21-sparse/fs/partitions/Config.in
-3f05a939W65febbeWrBtuQgsQDK2Bg xenolinux-2.4.21-sparse/fs/partitions/Makefile
-3f05a939phguW4R5PelNQZ8o_EcYZA xenolinux-2.4.21-sparse/fs/partitions/check.c
-3f05a939ZSKN7gX2sfTLzPcYJvPkcQ xenolinux-2.4.21-sparse/fs/partitions/xeno.c
-3f05a939_I9vPADPgyVBwUDUxtoeOQ xenolinux-2.4.21-sparse/fs/partitions/xeno.h
-3e5a4e66wbeCpsJgVf_U8Jde-CNcsA xenolinux-2.4.21-sparse/include/asm-xeno/bugs.h
-3e5a4e66HdSkvIV6SJ1evG_xmTmXHA xenolinux-2.4.21-sparse/include/asm-xeno/desc.h
-3e5a4e66SYp_UpAVcF8Lc1wa3Qtgzw xenolinux-2.4.21-sparse/include/asm-xeno/fixmap.h
-3e5a4e67w_DWgjIJ17Tlossu1LGujQ xenolinux-2.4.21-sparse/include/asm-xeno/highmem.h
-3e5a4e67YtcyDLQsShhCfQwPSELfvA xenolinux-2.4.21-sparse/include/asm-xeno/hw_irq.h
-3e5a4e677VBavzM1UZIEcH1B-RlXMA xenolinux-2.4.21-sparse/include/asm-xeno/hypervisor.h
-3e5a4e673p7PEOyHFm3nHkYX6HQYBg xenolinux-2.4.21-sparse/include/asm-xeno/irq.h
-3ead095db_LRUXnxaqs0dA1DWhPoQQ xenolinux-2.4.21-sparse/include/asm-xeno/keyboard.h
-3e5a4e678ddsQOpbSiRdy1GRcDc9WA xenolinux-2.4.21-sparse/include/asm-xeno/mmu_context.h
-3e7270deQqtGPSnFxcW4AvJZuTUWfg xenolinux-2.4.21-sparse/include/asm-xeno/multicall.h
-3e5a4e67mnQfh-R8KcQCaVo2Oho6yg xenolinux-2.4.21-sparse/include/asm-xeno/page.h
-3e5a4e67uTYU5oEnIDjxuaez8njjqg xenolinux-2.4.21-sparse/include/asm-xeno/pgalloc.h
-3e5a4e67X7JyupgdYkgDX19Huj2sAw xenolinux-2.4.21-sparse/include/asm-xeno/pgtable-2level.h
-3e5a4e67gr4NLGtQ5CvSLimMYZlkOA xenolinux-2.4.21-sparse/include/asm-xeno/pgtable.h
-3f108af1qNv8DVSGPv4zpqIU1txCkg xenolinux-2.4.21-sparse/include/asm-xeno/proc_cmd.h
-3e5a4e676uK4xErTBDH6XJREn9LSyg xenolinux-2.4.21-sparse/include/asm-xeno/processor.h
-3e5a4e67AJPjW-zL7p-xWuA6IVeH1g xenolinux-2.4.21-sparse/include/asm-xeno/ptrace.h
-3e5a4e68uJz-xI0IBVMD7xRLQKJDFg xenolinux-2.4.21-sparse/include/asm-xeno/segment.h
-3e5a4e68Nfdh6QcOKUTGCaYkf2LmYA xenolinux-2.4.21-sparse/include/asm-xeno/smp.h
-3e5a4e68mTr0zcp9SXDbnd-XLrrfxw xenolinux-2.4.21-sparse/include/asm-xeno/system.h
-3f1056a9L_kqHcFheV00KbKBzv9j5w xenolinux-2.4.21-sparse/include/asm-xeno/vga.h
-3f056927gMHl7mWB89rb73JahbhQIA xenolinux-2.4.21-sparse/include/linux/blk.h
-3e5a4e68WLX3B8owTvktP3HHOtznPQ xenolinux-2.4.21-sparse/include/linux/major.h
-3e5a4e686V0nioX2ZpFf056sgvdiQw xenolinux-2.4.21-sparse/include/linux/sunrpc/debug.h
-3e5a4e68W_hpMlM3u_-QOKMp3gzcwQ xenolinux-2.4.21-sparse/init/do_mounts.c
-3e5a4e68TJJavrunYwTAnLRSBxSYqQ xenolinux-2.4.21-sparse/kernel/panic.c
-3f1056a9LXNTgSzITNh1mb-MIKV1Ng xenolinux-2.4.21-sparse/kernel/printk.c
-3eba8f878XjouY21EkQBXwYBsPsipQ xenolinux-2.4.21-sparse/lndir-rel
-3e6e7c1efbQe93xCvOpOVCnXTMmQ5w xenolinux-2.4.21-sparse/mkbuildtree
-3e5a4e68GxCIaFH4sy01v1wjapetaA xenolinux-2.4.21-sparse/mm/memory.c
-3f108af5VxPkLv13tXpXgoRKALQtXQ xenolinux-2.4.21-sparse/mm/mprotect.c
-3e5a4e681xMPdF9xCMwpyfuYMySU5g xenolinux-2.4.21-sparse/mm/mremap.c
-3e5a4e683HKVU-sxtagrDasRB8eBVw xenolinux-2.4.21-sparse/mm/swapfile.c
-3f108af81Thhb242EmKjGCYkjx-GJA xenolinux-2.4.21-sparse/mm/vmalloc.c
+3f05a939TA3SLPY7ZiScMotLjg9owQ xenolinux-2.4.22-sparse/Documentation/Configure.help
+3e5a4e6589G-U42lFKs43plskXoFxQ xenolinux-2.4.22-sparse/Makefile
+3e5a4e65IEPjnWPZ5w3TxS5scV8Ewg xenolinux-2.4.22-sparse/arch/xeno/Makefile
+3e5a4e65n-KhsEAs-A4ULiStBp-r6w xenolinux-2.4.22-sparse/arch/xeno/boot/Makefile
+3e5a4e65OV_j_DBtjzt5vej771AJsA xenolinux-2.4.22-sparse/arch/xeno/config.in
+3e5a4e65TNEycLeXqPSXQJQm_xGecA xenolinux-2.4.22-sparse/arch/xeno/defconfig
+3e6377f5xwPfYZkPHPrDbEq1PRN7uQ xenolinux-2.4.22-sparse/arch/xeno/drivers/balloon/Makefile
+3e6377f8Me8IqtvEhb70XFgOvqQH7A xenolinux-2.4.22-sparse/arch/xeno/drivers/balloon/balloon.c
+3e6377fbMjXWAQd0XN0FWv4fDEo6fg xenolinux-2.4.22-sparse/arch/xeno/drivers/balloon/dom_mem_ops.h
+3e5a4e65iHEuC5sjFhj42XALYbLVRw xenolinux-2.4.22-sparse/arch/xeno/drivers/block/Makefile
+3e5a4e65pP5spJErBW69pJxSSdK9RA xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_block.c
+3e67f822FOPwqHiaRKbrskgWgoNL5g xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_block.h
+3e677190SjkzJIvFifRVeYpIZOCtYA xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_ide.c
+3e677193nOKKTLJzcAu4SYdbZaia8g xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_scsi.c
+3e676eb5RXnHzSHgA1BvM0B1aIm4qg xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_segment.c
+3e5d129aDldt6geU2-2SzBae34sQzg xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_segment_proc.c
+3e5a4e65G3e2s0ghPMgiJ-gBTUJ0uQ xenolinux-2.4.22-sparse/arch/xeno/drivers/console/Makefile
+3e5a4e651TH-SXHoufurnWjgl5bfOA xenolinux-2.4.22-sparse/arch/xeno/drivers/console/console.c
+3e5a4e656nfFISThfbyXQOA6HN6YHw xenolinux-2.4.22-sparse/arch/xeno/drivers/dom0/Makefile
+3e5a4e65BXtftInNHUC2PjDfPhdZZA xenolinux-2.4.22-sparse/arch/xeno/drivers/dom0/dom0_core.c
+3e5a4e65gfn_ltB8ujHMVFApnTTNRQ xenolinux-2.4.22-sparse/arch/xeno/drivers/dom0/vfr.c
+3e5a4e65gZBRBB6RsSVg1c9iahigAw xenolinux-2.4.22-sparse/arch/xeno/drivers/network/Makefile
+3e5a4e65ZxKrbFetVB84JhrTyZ1YuQ xenolinux-2.4.22-sparse/arch/xeno/drivers/network/network.c
+3e5a4e65lWzkiPXsZdzPt2RNnJGG1g xenolinux-2.4.22-sparse/arch/xeno/kernel/Makefile
+3e5a4e65_hqfuxtGG8IUy6wRM86Ecg xenolinux-2.4.22-sparse/arch/xeno/kernel/entry.S
+3e5a4e65Hy_1iUvMTPsNqGNXd9uFpg xenolinux-2.4.22-sparse/arch/xeno/kernel/head.S
+3e5a4e65ibVQmwlOn0j3sVH_j_6hAg xenolinux-2.4.22-sparse/arch/xeno/kernel/hypervisor.c
+3e5a4e65RMGcuA-HCn3-wNx3fFQwdg xenolinux-2.4.22-sparse/arch/xeno/kernel/i386_ksyms.c
+3e5a4e65MEvZhlr070sK5JsfAQlv7Q xenolinux-2.4.22-sparse/arch/xeno/kernel/ioport.c
+3e5a4e653U6cELGv528IxOLHvCq8iA xenolinux-2.4.22-sparse/arch/xeno/kernel/irq.c
+3e5a4e65muT6SU3ck47IP87Q7Ti5hA xenolinux-2.4.22-sparse/arch/xeno/kernel/ldt.c
+3e5a4e65IGt3WwQDNiL4h-gYWgNTWQ xenolinux-2.4.22-sparse/arch/xeno/kernel/process.c
+3e5a4e66tR-qJMLj3MppcKqmvuI2XQ xenolinux-2.4.22-sparse/arch/xeno/kernel/setup.c
+3e5a4e66fWSTagLGU2P8BGFGRjhDiw xenolinux-2.4.22-sparse/arch/xeno/kernel/signal.c
+3e5a4e66N__lUXNwzQ-eADRzK9LXuQ xenolinux-2.4.22-sparse/arch/xeno/kernel/time.c
+3e5a4e66aHCbQ_F5QZ8VeyikLmuRZQ xenolinux-2.4.22-sparse/arch/xeno/kernel/traps.c
+3e5a4e66-9_NczrVMbuQkoSLyXckIw xenolinux-2.4.22-sparse/arch/xeno/lib/Makefile
+3e5a4e6637ZDk0BvFEC-aFQs599-ng xenolinux-2.4.22-sparse/arch/xeno/lib/delay.c
+3e5a4e66croVgpcJyJuF2ycQw0HuJw xenolinux-2.4.22-sparse/arch/xeno/mm/Makefile
+3e5a4e66l8Q5Tv-6B3lQIRmaVbFPzg xenolinux-2.4.22-sparse/arch/xeno/mm/fault.c
+3e5a4e668SE9rixq4ahho9rNhLUUFQ xenolinux-2.4.22-sparse/arch/xeno/mm/hypervisor.c
+3e5a4e661gLzzff25pJooKIIWe7IWg xenolinux-2.4.22-sparse/arch/xeno/mm/init.c
+3f0bed43UUdQichXAiVNrjV-y2Kzcg xenolinux-2.4.22-sparse/arch/xeno/mm/ioremap.c
+3e5a4e66qRlSTcjafidMB6ulECADvg xenolinux-2.4.22-sparse/arch/xeno/vmlinux.lds
+3ea53c6em6uzVHSiGqrbbAVofyRY_g xenolinux-2.4.22-sparse/drivers/block/genhd.c
+3e5a4e66mrtlmV75L1tjKDg8RaM5gA xenolinux-2.4.22-sparse/drivers/block/ll_rw_blk.c
+3f108aeaLcGDgQdFAANLTUEid0a05w xenolinux-2.4.22-sparse/drivers/char/mem.c
+3e5a4e66rw65CxyolW9PKz4GG42RcA xenolinux-2.4.22-sparse/drivers/char/tty_io.c
+3e5a4e669uzIE54VwucPYtGwXLAbzA xenolinux-2.4.22-sparse/fs/exec.c
+3f05a939l8s0eQb_fpMvYiI06cTGlA xenolinux-2.4.22-sparse/fs/partitions/Config.in
+3f05a939W65febbeWrBtuQgsQDK2Bg xenolinux-2.4.22-sparse/fs/partitions/Makefile
+3f05a939phguW4R5PelNQZ8o_EcYZA xenolinux-2.4.22-sparse/fs/partitions/check.c
+3f05a939ZSKN7gX2sfTLzPcYJvPkcQ xenolinux-2.4.22-sparse/fs/partitions/xeno.c
+3f05a939_I9vPADPgyVBwUDUxtoeOQ xenolinux-2.4.22-sparse/fs/partitions/xeno.h
+3e5a4e66wbeCpsJgVf_U8Jde-CNcsA xenolinux-2.4.22-sparse/include/asm-xeno/bugs.h
+3e5a4e66HdSkvIV6SJ1evG_xmTmXHA xenolinux-2.4.22-sparse/include/asm-xeno/desc.h
+3e5a4e66SYp_UpAVcF8Lc1wa3Qtgzw xenolinux-2.4.22-sparse/include/asm-xeno/fixmap.h
+3e5a4e67w_DWgjIJ17Tlossu1LGujQ xenolinux-2.4.22-sparse/include/asm-xeno/highmem.h
+3e5a4e67YtcyDLQsShhCfQwPSELfvA xenolinux-2.4.22-sparse/include/asm-xeno/hw_irq.h
+3e5a4e677VBavzM1UZIEcH1B-RlXMA xenolinux-2.4.22-sparse/include/asm-xeno/hypervisor.h
+3e5a4e673p7PEOyHFm3nHkYX6HQYBg xenolinux-2.4.22-sparse/include/asm-xeno/irq.h
+3ead095db_LRUXnxaqs0dA1DWhPoQQ xenolinux-2.4.22-sparse/include/asm-xeno/keyboard.h
+3e5a4e678ddsQOpbSiRdy1GRcDc9WA xenolinux-2.4.22-sparse/include/asm-xeno/mmu_context.h
+3e7270deQqtGPSnFxcW4AvJZuTUWfg xenolinux-2.4.22-sparse/include/asm-xeno/multicall.h
+3e5a4e67mnQfh-R8KcQCaVo2Oho6yg xenolinux-2.4.22-sparse/include/asm-xeno/page.h
+3e5a4e67uTYU5oEnIDjxuaez8njjqg xenolinux-2.4.22-sparse/include/asm-xeno/pgalloc.h
+3e5a4e67X7JyupgdYkgDX19Huj2sAw xenolinux-2.4.22-sparse/include/asm-xeno/pgtable-2level.h
+3e5a4e67gr4NLGtQ5CvSLimMYZlkOA xenolinux-2.4.22-sparse/include/asm-xeno/pgtable.h
+3f108af1qNv8DVSGPv4zpqIU1txCkg xenolinux-2.4.22-sparse/include/asm-xeno/proc_cmd.h
+3e5a4e676uK4xErTBDH6XJREn9LSyg xenolinux-2.4.22-sparse/include/asm-xeno/processor.h
+3e5a4e67AJPjW-zL7p-xWuA6IVeH1g xenolinux-2.4.22-sparse/include/asm-xeno/ptrace.h
+3e5a4e68uJz-xI0IBVMD7xRLQKJDFg xenolinux-2.4.22-sparse/include/asm-xeno/segment.h
+3e5a4e68Nfdh6QcOKUTGCaYkf2LmYA xenolinux-2.4.22-sparse/include/asm-xeno/smp.h
+3e5a4e68mTr0zcp9SXDbnd-XLrrfxw xenolinux-2.4.22-sparse/include/asm-xeno/system.h
+3f1056a9L_kqHcFheV00KbKBzv9j5w xenolinux-2.4.22-sparse/include/asm-xeno/vga.h
+3f056927gMHl7mWB89rb73JahbhQIA xenolinux-2.4.22-sparse/include/linux/blk.h
+3e5a4e68WLX3B8owTvktP3HHOtznPQ xenolinux-2.4.22-sparse/include/linux/major.h
+3e5a4e686V0nioX2ZpFf056sgvdiQw xenolinux-2.4.22-sparse/include/linux/sunrpc/debug.h
+3e5a4e68W_hpMlM3u_-QOKMp3gzcwQ xenolinux-2.4.22-sparse/init/do_mounts.c
+3e5a4e68TJJavrunYwTAnLRSBxSYqQ xenolinux-2.4.22-sparse/kernel/panic.c
+3f1056a9LXNTgSzITNh1mb-MIKV1Ng xenolinux-2.4.22-sparse/kernel/printk.c
+3eba8f878XjouY21EkQBXwYBsPsipQ xenolinux-2.4.22-sparse/lndir-rel
+3e6e7c1efbQe93xCvOpOVCnXTMmQ5w xenolinux-2.4.22-sparse/mkbuildtree
+3e5a4e68GxCIaFH4sy01v1wjapetaA xenolinux-2.4.22-sparse/mm/memory.c
+3f108af5VxPkLv13tXpXgoRKALQtXQ xenolinux-2.4.22-sparse/mm/mprotect.c
+3e5a4e681xMPdF9xCMwpyfuYMySU5g xenolinux-2.4.22-sparse/mm/mremap.c
+3e5a4e683HKVU-sxtagrDasRB8eBVw xenolinux-2.4.22-sparse/mm/swapfile.c
+3f108af81Thhb242EmKjGCYkjx-GJA xenolinux-2.4.22-sparse/mm/vmalloc.c
diff --git a/xenolinux-2.4.21-sparse/Documentation/Configure.help b/xenolinux-2.4.22-sparse/Documentation/Configure.help
index 29100956af..d8f5a5f388 100644
--- a/xenolinux-2.4.21-sparse/Documentation/Configure.help
+++ b/xenolinux-2.4.22-sparse/Documentation/Configure.help
@@ -12,8 +12,8 @@
# <http://nevod.perm.su/service/linux/doc/kernel/Configure.help>
# - French, by Pierre Tane <mailto:tanep@bigfoot.com>, at
# <http://www.traduc.org/kernelfr/>
-# - Polish, by Dominik Mierzejewski <mailto:dmierzej@elka.pw.edu.pl>, at
-# <http://home.elka.pw.edu.pl/~dmierzej/linux/kernel/>
+# - Polish, by Dominik Mierzejewski <mailto:dominik@piorunek.pl>, at
+# <http://www.piorunek.pl/~dominik/linux/kernel/>
# - German, by SuSE, at <http://www.suse.de/~ke/kernel/>. This patch
# also includes infrastructure to support different languages.
# - Catalan, by Antoni Bella <mailto:bella5@teleline.es>, at
@@ -467,6 +467,18 @@ CONFIG_BLK_DEV_INITRD
"real" root file system, etc. See <file:Documentation/initrd.txt>
for details.
+Embed root filesystem ramdisk into the kernel
+CONFIG_EMBEDDED_RAMDISK
+ Select this option if you want to build the ramdisk image into the
+ the final kernel binary.
+
+Filename of gziped ramdisk image
+CONFIG_EMBEDDED_RAMDISK_IMAGE
+ This is the filename of the ramdisk image to be built into the
+ kernel. Relative pathnames are relative to arch/mips/ramdisk/.
+ The ramdisk image is not part of the kernel distribution; you must
+ provide one yourself.
+
Loopback device support
CONFIG_BLK_DEV_LOOP
Saying Y here will allow you to use a regular file as a block
@@ -1482,6 +1494,11 @@ CONFIG_BLK_DEV_IDEDMA_PMAC
to transfer data to and from memory. Saying Y is safe and improves
performance.
+Broadcom SiByte onboard IDE support
+CONFIG_BLK_DEV_IDE_SIBYTE
+ Include the driver for on-board IDE on the SiByte Generic Bus. Note
+ that this limits the number of IDE devices to 4 (ide0...ide3).
+
Use DMA by default
CONFIG_BLK_DEV_IDEDMA_PMAC_AUTO
This option allows the driver for the built-in IDE controller on
@@ -2103,6 +2120,78 @@ CONFIG_MIPS_MALTA
This enables support for the VR5000-based MIPS Malta evaluation
board.
+# Choice: bcmboard
+Support for Broadcom SiByte boards
+CONFIG_SIBYTE_SWARM
+ Enable support for boards based on the Broadcom SiByte family:
+
+ BCM91250A-SWARM BCM1250 ATX size Eval Board (BCM91250A-SWARM)
+
+ BCM91250E-Sentosa BCM1250 PCI card Eval Board (BCM91250E-Sentosa)
+
+ BCM91125E-Rhone BCM1125 PCI card Eval Board (BCM91125E-Rhone)
+
+ Other Non-Broadcom SiByte-based platform
+
+# Choice: bcmsoc
+Support for Broadcom BCM1xxx SOCs
+CONFIG_SIBYTE_SB1250
+
+ BCM1250 Dual-CPU SB1 with PCI and HyperTransport.
+
+ BCM1120 Uniprocessor SB1.
+
+ BCM1125 Uniprocessor SB1 with PCI (and HyperTransport for 1125H).
+
+BCM1250 Stepping
+CONFIG_CPU_SB1_PASS_1
+ Which pass of the SOC is supported (see the "system_revision"
+ register in the User Manual for more discussion of revisions):
+
+ Pass1 1250 "Pass 1"
+
+ An 1250 "Pass 2"
+
+ Bn 1250 "Pass 2.2"
+
+ Cn 1250 "Pass 3"
+
+BCM112x Stepping
+CONFIG_CPU_SB1_PASS_2
+ Which pass of the SOC is supported (see the "system_revision"
+ register in the User Manual for more discussion of revisions):
+
+ Hybrid 1250 "Pass 2"
+
+ An 112x "Pass 1"
+
+Booting from CFE
+CONFIG_SIBYTE_CFE
+ Make use of the CFE API for enumerating available memory,
+ controlling secondary CPUs, and possibly console output.
+
+Use firmware console
+CONFIG_SIBYTE_CFE_CONSOLE
+ Use the CFE API's console write routines during boot. Other console
+ options (VT console, sb1250 duart console, etc.) should not be
+ configured.
+
+Support for Bus Watcher statistics
+CONFIG_SIBYTE_BUS_WATCHER
+ Handle and keep statistics on the bus error interrupts (COR_ECC,
+ BAD_ECC, IO_BUS).
+
+Corelis Debugger
+CONFIG_SB1XXX_CORELIS
+ Select compile flags that produce code that can be processed by the
+ Corelis mksym utility and UDB Emulator.
+
+DMA for page clear and copy
+CONFIG_SIBYTE_DMA_PAGEOPS
+ Instead of using the CPU to zero and copy pages, use a Data Mover
+ channel. These DMA channels are otherwise unused by the standard
+ SiByte Linux port. Seems to give a small performance benefit.
+
Support for Galileo Evaluation board or CoSine Orion
CONFIG_ORION
Say Y if configuring for the Galileo evaluation board
@@ -2172,11 +2261,6 @@ CONFIG_JAZZ_ESP
4000, Acer PICA, Olivetti M700-10 and a few other identical OEM
systems.
-MIPS GT96100 support
-CONFIG_MIPS_GT96100
- Say Y here to support the Galileo Technology GT96100 communications
- controller card. There is a web page at <http://www.galileot.com/>.
-
MIPS GT96100 Ethernet support
CONFIG_MIPS_GT96100ETH
Say Y here to support the Ethernet subsystem on your GT96100 card.
@@ -2189,16 +2273,31 @@ CONFIG_SCSI_ZALON
workstations). Say Y here to make sure it gets initialized
correctly before the Linux kernel tries to talk to the controller.
-Kernel floating-point instruction emulation
-CONFIG_MIPS_FPU_EMULATOR
- This option enables the MIPS software floating support. Due to
- the way floating point works you should always enable this option
- unless you exactly know what you're doing.
-
SGI PROM Console Support
CONFIG_SGI_PROM_CONSOLE
Say Y here to set up the boot console on serial port 0.
+DECstation serial support
+CONFIG_SERIAL_DEC
+ This selects whether you want to be asked about drivers for
+ DECstation serial ports.
+
+ Note that the answer to this question won't directly affect the
+ kernel: saying N will just cause the configurator to skip all
+ the questions about DECstation serial ports.
+
+ If unsure, say Y.
+
+Support for console on a DECstation serial port
+CONFIG_SERIAL_DEC_CONSOLE
+ If you say Y here, it will be possible to use a serial port as the
+ system console (the system console is the device which receives all
+ kernel messages and warnings and which allows logins in single user
+ mode). Note that the firmware uses ttyS0 as the serial console on
+ the Maxine and ttyS2 on the others.
+
+ If unsure, say Y.
+
DZ11 Serial Support
CONFIG_DZ
DZ11-family serial controllers for VAXstations, including the
@@ -2318,6 +2417,8 @@ CONFIG_CPU_R3000
R10000 MIPS Technologies R10000-series processors.
+ SB1 Broadcom SiByte SB1 processor.
+
R6000
CONFIG_CPU_R6000
MIPS Technologies R6000-series processors, including the 64474,
@@ -2348,6 +2449,10 @@ R10000
CONFIG_CPU_R10000
MIPS Technologies R10000-series processors.
+SB1
+CONFIG_CPU_SB1
+ Broadcom SiByte SB1 processor.
+
Discontiguous Memory Support
CONFIG_DISCONTIGMEM
Say Y to support efficient handling of discontiguous physical memory,
@@ -2597,6 +2702,17 @@ CONFIG_IP_NF_IPTABLES
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>. If unsure, say `N'.
+recent match support
+CONFIG_IP_NF_MATCH_RECENT
+ This match is used for creating one or many lists of recently
+ used addresses and then matching against that/those list(s).
+
+ Short options are available by using 'iptables -m recent -h'
+ Official Website: <http://snowman.net/projects/ipt_recent/>
+
+ If you want to compile it as a module, say M here and read
+ Documentation/modules.txt. If unsure, say `N'.
+
limit match support
CONFIG_IP_NF_MATCH_LIMIT
limit matching allows you to control the rate at which a rule can be
@@ -3060,6 +3176,11 @@ CONFIG_IP6_NF_TARGET_MARK
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>. If unsure, say `N'.
+ARP payload mangling
+CONFIG_IP_NF_ARP_MANGLE
+ Allows altering the ARP packet payload: source and destination
+ hardware and network addresses.
+
TCP Explicit Congestion Notification support
CONFIG_INET_ECN
Explicit Congestion Notification (ECN) allows routers to notify
@@ -3349,7 +3470,7 @@ CONFIG_ALPHA_SRM
here. If MILO doesn't work on your system (true for Jensen
motherboards), you can bypass it altogether and boot Linux directly
from an SRM console; say Y here in order to do that. Note that you
- won't be able to boot from an IDE disk using SRM.
+ won't be able to boot from an IDE disk using old versions of SRM.
If unsure, say N.
@@ -3440,18 +3561,11 @@ CONFIG_SERIAL_MULTIPORT
servicing. Say Y here to enable the serial driver to take advantage
of those special I/O ports.
-SGI Zilog85C30 serial support
-CONFIG_SGI_SERIAL
- If you want to use your SGI's built-in serial ports under Linux,
+SGI IP22 Zilog85C30 serial support
+CONFIG_IP22_SERIAL
+ If you want to use your IP22's built-in serial ports under Linux,
answer Y.
-SGI Newport Graphics support
-CONFIG_SGI_NEWPORT_GFX
- If you have an SGI machine and you want to compile the graphics
- drivers, say Y here. This will include the code for the
- /dev/graphics and /dev/gfx drivers into the kernel for supporting
- virtualized access to your graphics hardware.
-
SGI Newport Console support
CONFIG_SGI_NEWPORT_CONSOLE
Say Y here if you want the console on the Newport aka XL graphics
@@ -3614,6 +3728,14 @@ CONFIG_AGP_SWORKS
Say Y here to support the Serverworks AGP card. See
<http://www.serverworks.com/> for product descriptions and images.
+NVIDIA chipset support
+CONFIG_AGP_NVIDIA
+ This option gives you AGP support for the GLX component of the
+ XFree86 4.x on NVIDIA nForce/nForce2 chipsets.
+
+ You should say Y here if you use XFree86 3.3.6 or 4.x and want to
+ use GLX or DRI. If unsure, say N.
+
ALI chipset support
CONFIG_AGP_ALI
This option gives you AGP support for the GLX component of the
@@ -3985,6 +4107,11 @@ CONFIG_TCIC
"Bridge" is the name used for the hardware inside your computer that
PCMCIA cards are plugged into. If unsure, say N.
+CONFIG_PCMCIA_SIBYTE
+ Say Y here to include support for the SiByte SOC's built-in PCMCIA
+ interface. Only ATA cards and CompactFlash are currently
+ supported.
+
System V IPC
CONFIG_SYSVIPC
Inter Process Communication is a suite of library functions and
@@ -4505,21 +4632,20 @@ CONFIG_FB_ATY128
Maxine (Personal DECstation) onboard framebuffer support
CONFIG_FB_MAXINE
- Say Y here to directly support the on-board framebuffer in the
- Maxine (5000/20, /25, /33) version of the DECstation. There is a
- page dedicated to Linux on DECstations at <http://decstation.unix-ag.org/>.
+ Support for the onboard framebuffer (1024x768x8) in the Personal
+ DECstation series (Personal DECstation 5000/20, /25, /33, /50,
+ Codename "Maxine").
PMAG-BA TURBOchannel framebuffer support
CONFIG_FB_PMAG_BA
- Say Y here to directly support the on-board PMAG-BA framebuffer in
- the 5000/1xx versions of the DECstation. There is a page dedicated
- to Linux on DECstations at <http://decstation.unix-ag.org/>.
+ Support for the PMAG-BA TURBOchannel framebuffer card (1024x864x8)
+ used mainly in the MIPS-based DECstation series.
PMAGB-B TURBOchannel framebuffer support
CONFIG_FB_PMAGB_B
- Say Y here to directly support the on-board PMAGB-B framebuffer in
- the 5000/1xx versions of the DECstation. There is a page dedicated
- to Linux on DECstations at <http://decstation.unix-ag.org/>.
+ Support for the PMAGB-B TURBOchannel framebuffer card used mainly
+ in the MIPS-based DECstation series. The card is currently only
+ supported in 1280x1024x8 mode.
FutureTV PCI card
CONFIG_ARCH_FTVPCI
@@ -4800,27 +4926,46 @@ CONFIG_FB_MATROX_MYSTIQUE
packed pixel and 32 bpp packed pixel. You can also use font widths
different from 8.
-Matrox G100/G200/G400/G450/G550 support
-CONFIG_FB_MATROX_G100
- Say Y here if you have a Matrox G100, G200, G400, G450, or G550
- based video card. If you select "Advanced lowlevel driver options",
- you should check 8 bpp packed pixel, 16 bpp packed pixel, 24 bpp
- packed pixel and 32 bpp packed pixel. You can also use font widths
+CONFIG_FB_MATROX_G450
+ Say Y here if you have a Matrox G100, G200, G400, G450 or G550 based
+ video card. If you select "Advanced lowlevel driver options", you
+ should check 8 bpp packed pixel, 16 bpp packed pixel, 24 bpp packed
+ pixel and 32 bpp packed pixel. You can also use font widths
different from 8.
If you need support for G400 secondary head, you must first say Y to
"I2C support" and "I2C bit-banging support" in the character devices
section, and then to "Matrox I2C support" and "G400 second head
- support" here in the framebuffer section.
+ support" here in the framebuffer section. G450/G550 secondary head
+ and digital output are supported without additional modules.
- If you have G550, you must also compile support for G450/G550 secondary
- head into kernel, otherwise picture will be shown only on the output you
- are probably not using...
+ The driver starts in monitor mode. You must use the matroxset tool
+ (available at <ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/>) to
+ swap primary and secondary head outputs, or to change output mode.
+ Secondary head driver always start in 640x480 resolution and you
+ must use fbset to change it.
- If you need support for G450 or G550 secondary head, say Y to
- "Matrox G450/G550 second head support" below.
+ Do not forget that second head supports only 16 and 32 bpp
+ packed pixels, so it is a good idea to compile them into the kernel
+ too. You can use only some font widths, as the driver uses generic
+ painting procedures (the secondary head does not use acceleration
+ engine).
+
+ G450/G550 hardware can display TV picture only from secondary CRTC,
+ and it performs no scaling, so picture must have 525 or 625 lines.
+
+CONFIG_FB_MATROX_G100A
+ Say Y here if you have a Matrox G100, G200 or G400 based
+ video card. If you select "Advanced lowlevel driver options", you
+ should check 8 bpp packed pixel, 16 bpp packed pixel, 24 bpp packed
+ pixel and 32 bpp packed pixel. You can also use font widths
+ different from 8.
+
+ If you need support for G400 secondary head, you must first say Y to
+ "I2C support" and "I2C bit-banging support" in the character devices
+ section, and then to "Matrox I2C support" and "G400 second head
+ support" here in the framebuffer section.
-Matrox I2C support
CONFIG_FB_MATROX_I2C
This drivers creates I2C buses which are needed for accessing the
DDC (I2C) bus present on all Matroxes, an I2C bus which
@@ -4863,32 +5008,14 @@ CONFIG_FB_MATROX_MAVEN
painting procedures (the secondary head does not use acceleration
engine).
-Matrox G450 second head support
-CONFIG_FB_MATROX_G450
- Say Y or M here if you want to use a secondary head (meaning two
- monitors in parallel) on G450, or if you are using analog output
- of G550.
-
- If you compile it as module, two modules are created,
- matroxfb_crtc2.o and matroxfb_g450.o. Both modules are needed if you
- want two independent display devices.
-
- The driver starts in monitor mode and currently does not support
- output in TV modes. You must use the matroxset tool (available
- at <ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/>) to swap
- primary and secondary head outputs. Secondary head driver always
- start in 640x480 resolution and you must use fbset to change it.
-
- Note on most G550 cards the analog output is the secondary head,
- so you will need to say Y here to use it.
-
- Also do not forget that second head supports only 16 and 32 bpp
- packed pixels, so it is a good idea to compile them into the kernel
- too. You can use only some font widths, as the driver uses generic
- painting procedures (the secondary head does not use acceleration
- engine).
-
-Matrox unified driver multihead support
+CONFIG_FB_MATROX_PROC
+ Say Y or M here if you want to access some informations about driver
+ state through /proc interface.
+
+ You should download matrox_pins tool (available at
+ <ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/>) to get human
+ readable output.
+
CONFIG_FB_MATROX_MULTIHEAD
Say Y here if you have more than one (supported) Matrox device in
your computer and you want to use all of them for different monitors
@@ -5484,11 +5611,6 @@ CONFIG_IP_ROUTE_VERBOSE
handled by the klogd daemon which is responsible for kernel messages
("man klogd").
-Large routing tables
-CONFIG_IP_ROUTE_LARGE_TABLES
- If you have routing zones that grow to more than about 64 entries,
- you may want to say Y here to speed up the routing process.
-
Fast network address translation
CONFIG_IP_ROUTE_NAT
If you say Y here, your router will be able to modify source and
@@ -6912,6 +7034,15 @@ CONFIG_ATM_FORE200E_DEBUG
the performances of the driver, and the size of your syslog files!
Keep the debugging level to 0 during normal operations.
+ForeRunner HE Series
+CONFIG_ATM_HE
+ This is a driver for the Marconi ForeRunner HE-series ATM adapter
+ cards. It simultaneously supports the 155 and 622 versions.
+
+Use S/UNI PHY driver
+ Support for the S/UNI-Ultra and S/UNI-622 found in the ForeRunner
+ HE cards. This driver provides carrier detection some statistics.
+
PPP over ATM
CONFIG_PPPOATM
Support PPP (Point to Point Protocol) encapsulated in ATM frames.
@@ -7298,47 +7429,40 @@ CONFIG_SCSI_AHA1740
Adaptec AIC7xxx support
CONFIG_SCSI_AIC7XXX
- This driver supports all of Adaptec's PCI based SCSI controllers
- (not the hardware RAID controllers though) as well as the aic7770
- based EISA and VLB SCSI controllers (the 274x and 284x series).
- This is an Adaptec sponsored driver written by Justin Gibbs. It is
- intended to replace the previous aic7xxx driver maintained by Doug
- Ledford since Doug is no longer maintaining that driver.
+ This driver supports all of Adaptec's Fast through Ultra 160 PCI
+ based SCSI controllers as well as the aic7770 based EISA and VLB
+ SCSI controllers (the 274x and 284x series). For AAA and ARO based
+ configurations, only SCSI functionality is provided.
If you want to compile the driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called aic7xxx.o.
-Adaptec I2O RAID support
-CONFIG_SCSI_DPT_I2O
- This driver supports all of Adaptec's I2O based RAID controllers as
- well as the DPT SmartRaid V cards. This is an Adaptec maintained
- driver by Deanna Bonds. See <file:drivers/scsi/README.dpti>.
-
- This driver is also available as a module ( = code which can be
- inserted in and removed from the running kernel whenever you want).
- If you want to compile it as a module, say M here and read
- <file:Documentation/modules.txt>. The module will be called
- dpt_i2o.o.
-
-Default number of TCQ commands per device
+Maximum number of TCQ commands per device
CONFIG_AIC7XXX_CMDS_PER_DEVICE
Specify the number of commands you would like to allocate per SCSI
device when Tagged Command Queueing (TCQ) is enabled on that device.
This is an upper bound value for the number of tagged transactions
to be used for any device. The aic7xxx driver will automatically
- vary this number based on device behaviour. For devices with a
+ vary this number based on device behavior. For devices with a
fixed maximum, the driver will eventually lock to this maximum
and display a console message indicating this value.
- Note: Unless you experience some type of device failure, the default
- value, no enforced limit, should work for you.
+ Due to resource allocation issues in the Linux SCSI mid-layer, using
+ a high number of commands per device may result in memory allocation
+ failures when many devices are attached to the system. For this reason,
+ the default is set to 32. Higher values may result in higer performance
+ on some devices. The upper bound is 253. 0 disables tagged queueing.
+
+ Per device tag depth can be controlled via the kernel command line
+ "tag_info" option. See drivers/scsi/aic7xxx/README.aic7xxx
+ for details.
- Default: 253
+ Default: 32
-Delay in seconds after SCSI bus reset
+Initial bus reset delay in milli-seconds
CONFIG_AIC7XXX_RESET_DELAY_MS
The number of milliseconds to delay after an initial bus reset.
The bus settle delay following all error recovery actions is
@@ -7346,16 +7470,43 @@ CONFIG_AIC7XXX_RESET_DELAY_MS
Default: 15000 (15 seconds)
-Build Adapter Firmware with Kernel Build
+Probe for EISA and VL AIC7XXX Adapters
+CONFIG_AIC7XXX_PROBE_EISA_VL
+ Probe for EISA and VLB Aic7xxx controllers. In many newer systems,
+ the invasive probes necessary to detect these controllers can cause
+ other devices to fail. For this reason, the non-PCI probe code is
+ disabled by default. The current value of this option can be "toggled"
+ via the no_probe kernel command line option.
+
CONFIG_AIC7XXX_BUILD_FIRMWARE
This option should only be enabled if you are modifying the firmware
source to the aic7xxx driver and wish to have the generated firmware
include files updated during a normal kernel build. The assembler
for the firmware requires lex and yacc or their equivalents, as well
as the db v1 library. You may have to install additional packages
- or modify the assembler make file or the files it includes if your
+ or modify the assembler Makefile or the files it includes if your
build environment is different than that of the author.
+Compile in Debugging Code
+CONFIG_AIC7XXX_DEBUG_ENABLE
+ Compile in aic7xxx debugging code that can be useful in diagnosing
+ driver errors.
+
+Debug code enable mask (2048 for all debugging)
+CONFIG_AIC7XXX_DEBUG_MASK
+ Bit mask of debug options that is only valid if the
+ CONFIG_AIC7XXX_DEBUG_ENBLE option is enabled. The bits in this mask
+ are defined in the drivers/scsi/aic7xxx/aic7xxx.h - search for the
+ variable ahc_debug in that file to find them.
+
+ Default: 0
+
+Decode registers during diagnostics
+CONFIG_AIC7XXX_REG_PRETTY_PRINT
+ Compile in register value tables for the output of expanded register
+ contents in diagnostics. This make it much easier to understand debug
+ output without having to refer to a data book and/or the aic7xxx.reg file.
+
Old Adaptec AIC7xxx support
CONFIG_SCSI_AIC7XXX_OLD
WARNING This driver is an older aic7xxx driver and is no longer
@@ -7464,6 +7615,83 @@ CONFIG_AIC7XXX_OLD_PROC_STATS
If unsure, say N.
+CONFIG_SCSI_AIC79XX
+ This driver supports all of Adaptec's Ultra 320 PCI-X based SCSI controllers.
+
+CONFIG_AIC79XX_CMDS_PER_DEVICE 32
+ Specify the number of commands you would like to allocate per SCSI
+ device when Tagged Command Queueing (TCQ) is enabled on that device.
+
+ This is an upper bound value for the number of tagged transactions
+ to be used for any device. The aic7xxx driver will automatically
+ vary this number based on device behavior. For devices with a
+ fixed maximum, the driver will eventually lock to this maximum
+ and display a console message indicating this value.
+
+ Due to resource allocation issues in the Linux SCSI mid-layer, using
+ a high number of commands per device may result in memory allocation
+ failures when many devices are attached to the system. For this reason,
+ the default is set to 32. Higher values may result in higer performance
+ on some devices. The upper bound is 253.
+
+ Per device tag depth can be controlled via the kernel command line
+ "tag_info" option. See drivers/scsi/aic7xxx/README.aic79xx
+ for details.
+
+ Default: 32
+
+CONFIG_AIC79XX_RESET_DELAY_MS 15000
+ The number of milliseconds to delay after an initial bus reset.
+ The bus settle delay following all error recovery actions is
+ dictated by the SCSI layer and is not affected by this value.
+
+ Default: 15000 (15 seconds)
+
+CONFIG_AIC79XX_BUILD_FIRMWARE
+ This option should only be enabled if you are modifying the firmware
+ source to the aic7xxx driver and wish to have the generated firmware
+ include files updated during a normal kernel build. The assembler
+ for the firmware requires lex and yacc or their equivalents, as well
+ as the db v1 library. You may have to install additional packages
+ or modify the assembler Makefile or the files it includes if your
+ build environment is different than that of the author.
+
+CONFIG_AIC79XX_ENABLE_RD_STRM
+ Read Streaming is a U320 protocol option that should enhance performance.
+ Early U320 drive firmware actually performs slower with read streaming
+ enabled so it is disabled by default. Read Streaming can be configured
+ in much the same way as tagged queueing using the "rd_strm" command line
+ option. See drivers/scsi/aic7xxx/README.aic79xx for details.
+
+CONFIG_AIC79XX_DEBUG_ENABLE
+ Compile in aic79xx debugging code that can be useful in diagnosing
+ driver errors.
+
+CONFIG_AIC79XX_DEBUG_MASK
+ Bit mask of debug options that is only valid if the
+ CONFIG_AIC79XX_DEBUG_ENBLE option is enabled. The bits in this mask
+ are defined in the drivers/scsi/aic7xxx/aic79xx.h - search for the
+ variable ahd_debug in that file to find them.
+
+ Default: 0
+
+CONFIG_AIC79XX_REG_PRETTY_PRINT
+ Compile in register value tables for the output of expanded register
+ contents in diagnostics. This make it much easier to understand debug
+ output without having to refer to a data book and/or the aic7xxx.reg file.
+
+Adaptec I2O RAID support
+CONFIG_SCSI_DPT_I2O
+ This driver supports all of Adaptec's I2O based RAID controllers as
+ well as the DPT SmartRaid V cards. This is an Adaptec maintained
+ driver by Deanna Bonds. See <file:drivers/scsi/README.dpti>.
+
+ This driver is also available as a module ( = code which can be
+ inserted in and removed from the running kernel whenever you want).
+ If you want to compile it as a module, say M here and read
+ <file:Documentation/modules.txt>. The module will be called
+ dpt_i2o.o.
+
IBM ServeRAID support
CONFIG_SCSI_IPS
This is support for the IBM ServeRAID hardware RAID controllers.
@@ -11497,6 +11725,18 @@ CONFIG_E2100
module, say M here and read <file:Documentation/modules.txt> as well
as <file:Documentation/networking/net-modules.txt>.
+Broadcom 4400 ethernet support (EXPERIMENTAL)
+CONFIG_B44
+ If you have a network (Ethernet) controller of this type, say Y and
+ read the Ethernet-HOWTO, available from
+ <http://www.tldp.org/docs.html#howto>.
+
+ If you want to compile this as a module ( = code which can be
+ inserted in and removed from the running kernel whenever you want),
+ say M here and read <file:Documentation/modules.txt> as well as
+ <file:Documentation/networking/net-modules.txt>. The module will be
+ called b44.
+
CS89x0 support (Daynaport CS and LC cards)
CONFIG_CS89x0
Support for CS89x0 chipset based Ethernet cards. If you have a
@@ -11869,15 +12109,6 @@ CONFIG_TULIP
module, say M here and read <file:Documentation/modules.txt> as well
as <file:Documentation/networking/net-modules.txt>.
-New Tulip bus configuration
-CONFIG_TULIP_MWI
- This configures your Tulip card specifically for the card and
- system cache line size type you are using.
-
- This is experimental code, not yet tested on many boards.
-
- If unsure, say N.
-
Use PCI shared memory for NIC registers
CONFIG_TULIP_MMIO
Use PCI shared memory for the NIC registers, rather than going through
@@ -12797,10 +13028,18 @@ CONFIG_QUOTA
If you say Y here, you will be able to set per user limits for disk
usage (also called disk quotas). Currently, it works only for the
ext2 file system. You need additional software in order to use quota
- support; for details, read the Quota mini-HOWTO, available from
+ support (you can download sources from
+ <http://www.sf.net/projects/linuxquota/>). For further details, read
+ the Quota mini-HOWTO, available from
<http://www.tldp.org/docs.html#howto>. Probably the quota
support is only useful for multi user systems. If unsure, say N.
+VFS v0 quota format support
+CONFIG_QFMT_V2
+ This quota format allows using quotas with 32-bit UIDs/GIDs. If you
+ need this functionality say Y here. Note that you will need latest
+ quota utilities for new quota format with this kernel.
+
Memory Technology Device (MTD) support
CONFIG_MTD
Memory Technology Devices are flash, RAM and similar chips, often
@@ -12861,22 +13100,40 @@ CONFIG_MTD_REDBOOT_PARTS
<file:Documentation/modules.txt>. The module will be called
redboot.o
-Compaq bootldr partition table parsing
-CONFIG_MTD_BOOTLDR_PARTS
- The Compaq bootldr deals with multiple 'images' in flash devices
- by putting a table in one of the first erase blocks of the device,
- similar to a partition table, which gives the offsets, lengths and
- names of all the images stored in the flash.
-
- If you need code which can detect and parse this table, and register
- MTD 'partitions' corresponding to each image in the table, enable
- this option.
+CONFIG_MTD_CMDLINE_PARTS
+ Allow generic configuration of the MTD paritition tables via the kernel
+ command line. Multiple flash resources are supported for hardware where
+ different kinds of flash memory are available.
You will still need the parsing functions to be called by the driver
for your particular device. It won't happen automatically. The
SA1100 map driver (CONFIG_MTD_SA1100) has an option for this, for
example.
+ The format for the command line is as follows:
+
+ mtdparts=<mtddef>[;<mtddef]
+ <mtddef> := <mtd-id>:<partdef>[,<partdef>]
+ <partdef> := <size>[@offset][<name>][ro]
+ <mtd-id> := unique id used in mapping driver/device
+ <size> := standard linux memsize OR "-" to denote all
+ remaining space
+ <name> := (NAME)
+
+ Due to the way Linux handles the command line, no spaces are
+ allowed in the partition definition, including mtd id's and partition
+ names.
+
+ Examples:
+
+ 1 flash resource (mtd-id "sa1100"), with 1 single writable partition:
+ mtdparts=sa1100:-
+
+ Same flash, but 2 named partitions, the first one being read-only:
+ mtdparts=sa1100:256k(ARMboot)ro,-(root)
+
+ If unsure, say 'N'.
+
ARM Firmware Suite flash layout / partition parsing
CONFIG_MTD_AFS_PARTS
The ARM Firmware Suite allows the user to divide flash devices into
@@ -13044,6 +13301,10 @@ CONFIG_MTD_CFI_B4
If you wish to support CFI devices on a physical bus which is
32 bits wide, say 'Y'.
+CONFIG_MTD_CFI_B8
+ If you wish to support CFI devices on a physical bus which is
+ 64 bits wide, say 'Y'.
+
Support 1-chip flash interleave
CONFIG_MTD_CFI_I1
If your flash chips are not interleaved - i.e. you only have one
@@ -13059,6 +13320,10 @@ CONFIG_MTD_CFI_I4
If your flash chips are interleaved in fours - i.e. you have four
flash chips addressed by each bus cycle, then say 'Y'.
+CONFIG_MTD_CFI_I8
+ If your flash chips are interleaved in eights - i.e. you have eight
+ flash chips addressed by each bus cycle, then say 'Y'.
+
# Choice: mtd_data_swap
Flash cmd/query data swapping
CONFIG_MTD_CFI_NOSWAP
@@ -13123,6 +13388,11 @@ CONFIG_MTD_AMDSTD
<file:Documentation/modules.txt>. The module will be called
amd_flash.o
+CONFIG_MTD_CFI_STAA
+ The Common Flash Interface defines a number of different command
+ sets which a CFI-compliant chip may claim to implement. This code
+ provides support for one of those command sets.
+
Support for RAM chips in bus mapping
CONFIG_MTD_RAM
This option enables basic support for RAM chips accessed through
@@ -13543,6 +13813,18 @@ CONFIG_MTD_SLRAM
<file:Documentation/modules.txt>. The module will be called
slram.o
+DEC MS02-NV NVRAM module support
+CONFIG_MTD_MS02NV
+ This is a MTD driver for the DEC's MS02-NV (54-20948-01) battery
+ backed-up NVRAM module. The module was originally meant as an NFS
+ accelerator. Say Y here if you have a DECstation 5000/2x0 or a
+ DECsystem 5900 equipped with such a module.
+
+ If you want to compile this driver as a module ( = code which can be
+ inserted in and removed from the running kernel whenever you want),
+ say M here and read <file:Documentation/modules.txt>. The module will
+ be called ms02-nv.o.
+
Debugging RAM test driver
CONFIG_MTD_MTDRAM
This enables a test MTD device driver which uses vmalloc() to
@@ -13927,11 +14209,12 @@ CONFIG_USB_POWERMATE
The module will be called powermate.o. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
-Aiptek 6000U/8000U tablet support
+Aiptek HyperPen tablet support
CONFIG_USB_AIPTEK
- Say Y here if you want to use the USB version of the Aiptek 6000U/8000U
- tablet. Make sure to say Y to "Event interface support"
- (CONFIG_INPUT_EVDEV) as well.
+ Say Y here if you want to use the USB version of the Aiptek HyperPen
+ Digital Tablet (models 4000U, 5000U, 6000U, 8000U, and 12000U.)
+ Make sure to say Y to "Mouse support" (CONFIG_INPUT_MOUSEDEV) and/or
+ "Event interface support" (CONFIG_INPUT_EVDEV) as well.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
@@ -14628,6 +14911,24 @@ CONFIG_USB_CATC
The module will be called catc.o. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
+USB ASIX AX88172 based ethernet device support
+CONFIG_USB_AX8817X
+ Say Y if you want to use one of the following 10/100 USB2 Ethernet
+ devices based on the ASIX AX88172 chip. Supported devices are:
+ Linksys USB200M
+ Netgear FA120
+ D-Link DUB-E100
+ Hawking UF200
+
+ This driver makes the adapter appear as a normal Ethernet interface,
+ typically on eth0, if it is the only ethernet device, or perhaps on
+ eth1, if you have a PCI or ISA ethernet card installed.
+
+ This code is also available as a module ( = code which can be
+ inserted in and removed from the running kernel whenever you want).
+ The module will be called ax8817x.o. If you want to compile it as a
+ module, say M here and read <file:Documentation/modules.txt>.
+
USB Kodak DC-2xx Camera support
CONFIG_USB_DC2XX
Say Y here if you want to connect this type of still camera to your
@@ -14911,6 +15212,17 @@ CONFIG_USB_DSBR
The module will be called dsbr100.o. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
+Alcatel Speedtouch USB support
+CONFIG_USB_SPEEDTOUCH
+ Say Y here if you have an Alcatel SpeedTouch USB or SpeedTouch 330
+ modem. In order to use your modem you will need to install some user
+ space tools, see <http://www.linux-usb.org/SpeedTouch/> for details.
+
+ This code is also available as a module ( = code which can be
+ inserted in and removed from the running kernel whenever you want).
+ The module will be called speedtch.o. If you want to compile it as
+ a module, say M here and read <file:Documentation/modules.txt>.
+
Always do synchronous disk IO for UBD
CONFIG_BLK_DEV_UBD_SYNC
The User-Mode Linux port includes a driver called UBD which will let
@@ -15811,6 +16123,30 @@ CONFIG_NFS_V3
If unsure, say N.
+Allow direct I/O on files in NFS
+CONFIG_NFS_DIRECTIO
+ There are important applications whose performance or correctness
+ depends on uncached access to file data. Database clusters (multiple
+ copies of the same instance running on separate hosts) implement their
+ own cache coherency protocol that subsumes the NFS cache protocols.
+ Applications that process datasets considerably larger than the client's
+ memory do not always benefit from a local cache. A streaming video
+ server, for instance, has no need to cache the contents of a file.
+
+ This option enables applications to perform direct I/O on files in NFS
+ file systems using the O_DIRECT open() flag. When O_DIRECT is set for
+ files, their data is not cached in the system's page cache. Direct
+ read and write operations are aligned to block boundaries. Data is
+ moved to and from user-level application buffers directly.
+
+ Unless your program is designed to use O_DIRECT properly, you are much
+ better off allowing the NFS client to manage caching for you. Misusing
+ O_DIRECT can cause poor server performance or network storms. This
+ kernel build option defaults OFF to avoid exposing system administrators
+ unwittingly to a potentially hazardous feature.
+
+ If unsure, say N.
+
Root file system on NFS
CONFIG_ROOT_NFS
If you want your Linux box to mount its whole root file system (the
@@ -15967,7 +16303,7 @@ CONFIG_AFFS_FS
say M here and read <file:Documentation/modules.txt>. If unsure,
say N.
-Apple Macintosh file system support
+Apple HFS file system support
CONFIG_HFS_FS
If you say Y here, you will be able to mount Macintosh-formatted
floppy disks and hard drive partitions with full read-write access.
@@ -15980,6 +16316,21 @@ CONFIG_HFS_FS
compile it as a module, say M here and read
<file:Documentation/modules.txt>.
+Apple HFS+ (Extended HFS) file system support
+CONFIG_HFSPLUS_FS
+ If you say Y here, you will be able to mount extended format
+ Macintosh-formatted hard drive partitions with full read-write access.
+
+ This file system is often called HFS+ and was introduced with
+ MacOS 8. It includes all Mac specific filesystem data such as
+ data forks and creator codes, but it also has several UNIX
+ style features such as file ownership and permissions.
+
+ This file system is also available as a module ( = code which can
+ be inserted in and removed from the running kernel whenever you
+ want). The module is called hfsplus.o. If you want to compile it
+ as a module, say M here and read Documentation/modules.txt.
+
ROM file system support
CONFIG_ROMFS_FS
This is a very small read-only file system mainly intended for
@@ -17306,6 +17657,13 @@ CONFIG_SERIAL_CONSOLE
If unsure, say N.
+Support for serial port described by EFI HCDP table
+CONFIG_SERIAL_HCDP
+ If you wish to make the serial console port described by the EFI
+ HCDP table available for use as serial console or general
+ purpose port, say Y here. See
+ <http://www.dig64.org/specifications/DIG64_HCDPv10a_01.pdf>.
+
Support for PowerMac serial ports
CONFIG_MAC_SERIAL
If you have Macintosh style serial ports (8 pin mini-DIN), say Y
@@ -17889,6 +18247,16 @@ CONFIG_ITE_I2C_ADAP
<file:Documentation/modules.txt>.
The module will be called i2c-adap-ite.o.
+SiByte I2C Algorithm
+CONFIG_I2C_ALGO_SIBYTE
+ Supports the SiByte SOC on-chip I2C interfaces (2 channels).
+
+MAX1617 Temperature Sensor
+CONFIG_I2C_MAX1617
+ This builds a simple polling driver for the Maxim 1617 temperature
+ sensor. Currently the device is only supported on a SiByte I2C
+ adapter, and the driver prints status updates to the system log.
+
I2C device interface
CONFIG_I2C_CHARDEV
Say Y here to use i2c-* device files, usually found in the /dev
@@ -18621,6 +18989,25 @@ CONFIG_ACPI
The ACPI Sourceforge project may also be of interest:
<http://sf.net/projects/acpi/>
+ACPI Processor Enumeration for HT
+CONFIG_ACPI_HT_ONLY
+ ACPI enumerates both logical (a.k.a. Hyper-Threaded -- HT)
+ and physical processors. It is designed to obsolete several older
+ specifications, including the MultiProcessor Specification (MPS),
+ which supported only physical processors.
+
+ CONFIG_ACPI_HT_ONLY includes just the minimal ACPI boot-time code
+ necessary to enumerate logical processors and enable HT.
+
+ CONFIG_ACPI includes this code, plus IO APIC enumeration,
+ and the hooks to run the ACPI AML interpreter for run-time events.
+
+ When CONFIG_ACPI is selected, the command-line option "acpi=ht"
+ is available to run just the ACPI boot-time code -- just as if
+ only CONFIG_ACPI_HT_ONLY were selected.
+
+ Note that "acpi=off" can be used to disable all ACPI code in the kernel.
+
Enable ACPI 2.0 with errata 1.3
CONFIG_ACPI20
Enable support for the 2.0 version of the ACPI interpreter. See the
@@ -18637,6 +19024,14 @@ CONFIG_ACPI_DEBUG
of verbosity. Saying Y enables these statements. This will increase
your kernel size by around 50K.
+ACPI Relaxed AML Checking
+CONFIG_ACPI_RELAXED_AML
+ If you say `Y' here, the ACPI interpreter will relax its checking
+ for valid AML and will ignore some AML mistakes, such as off-by-one
+ errors in region sizes. Some laptops may require this option. In
+ particular, many Toshiba laptops require this for correct operation
+ of the AC module.
+
ACPI Bus Manager
CONFIG_ACPI_BUSMGR
The ACPI Bus Manager enumerates devices in the ACPI namespace, and
@@ -18662,6 +19057,20 @@ CONFIG_ACPI_BUTTON
down the system. Until then, you can cat it, and see output when
a button is pressed.
+CONFIG_ACPI_BATTERY
+ This driver adds support for battery information through
+ /proc/acpi/battery. If you have a mobile system with a battery,
+ say Y.
+
+CONFIG_ACPI_FAN
+ This driver adds support for ACPI fan devices, allowing user-mode
+ applications to perform basic fan control (on, off, status).
+
+CONFIG_ACPI_PROCESSOR
+ This driver installs ACPI as the idle handler for Linux, and uses
+ ACPI C2 and C3 processor states to save power, on systems that
+ support it.
+
ACPI AC Adapter
CONFIG_ACPI_AC
This driver adds support for the AC Adapter object, which indicates
@@ -18684,6 +19093,53 @@ CONFIG_ACPI_THERMAL
This driver handles overheating conditions on laptops. It is HIGHLY
recommended, as your laptop CPU may be damaged without it.
+ACPI ASUS/Medion Laptop Extras
+CONFIG_ACPI_ASUS
+ This driver provides support for extra features of ACPI-compatible
+ ASUS laptops. As some of Medion laptops are made by ASUS, it may also
+ support some Medion laptops (such as 9675 for example). It makes all
+ the extra buttons generate standard ACPI events that go through
+ /proc/acpi/events, and (on some models) adds support for changing the
+ display brightness and output, switching the LCD backlight on and off,
+ and most importantly, allows you to blink those fancy LEDs intended
+ for reporting mail and wireless status.
+
+ All settings are changed via /proc/acpi/asus directory entries. Owner
+ and group for these entries can be set with asus_uid and asus_gid
+ parameters.
+
+ More information and a userspace daemon for handling the extra buttons
+ at <http://sourceforge.net/projects/acpi4asus/>.
+
+ If you have an ACPI-compatible ASUS laptop, say Y or M here. This
+ driver is still under development, so if your laptop is unsupported or
+ something works not quite as expected, please use the mailing list
+ available on the above page (acpi4asus-user@lists.sourceforge.net)
+
+ACPI Toshiba Laptop Extras
+CONFIG_ACPI_TOSHIBA
+ This driver adds support for access to certain system settings
+ on "legacy free" Toshiba laptops. These laptops can be recognized by
+ their lack of a BIOS setup menu and APM support.
+
+ On these machines, all system configuration is handled through the
+ ACPI. This driver is required for access to controls not covered
+ by the general ACPI drivers, such as LCD brightness, video output,
+ etc.
+
+ This driver differs from the non-ACPI Toshiba laptop driver (located
+ under "Processor type and features") in several aspects.
+ Configuration is accessed by reading and writing text files in the
+ /proc tree instead of by program interface to /dev. Furthermore, no
+ power management functions are exposed, as those are handled by the
+ general ACPI drivers.
+
+ More information about this driver is available at
+ <http://memebeam.org/toys/ToshibaAcpiDriver>.
+
+ If you have a legacy free Toshiba laptop (such as the Libretto L1
+ series), say Y.
+
Advanced Power Management BIOS support
CONFIG_APM
APM is a BIOS specification for saving power using several different
@@ -19190,6 +19646,17 @@ CONFIG_RTC
The module is called rtc.o. If you want to compile it as a module,
say M here and read <file:Documentation/modules.txt>.
+Generic MIPS RTC Support
+CONFIG_MIPS_RTC
+
+ If your machine is a MIPS machine, this option provides a simple,
+ generic RTC driver for /dev/rtc device. It only implements two IOCTL
+ operations of the standard PC RTC driver: RTC_RD_TIME and RTC_SET_TIME.
+ It is sufficient to run hwclock program.
+
+ You should say Y here if there is no machine-specific RTC driver for your
+ MIPS machine but you do want a simple RTC driver for your RTC device.
+
Generic Real Time Clock Support
CONFIG_GEN_RTC
If you say Y here and create a character special file /dev/rtc with
@@ -19940,6 +20407,14 @@ CONFIG_SOUND_CS4232
See <file:Documentation/sound/CS4232> for more information on
configuring this card.
+Support for Crystal CS4297a on SiByte syncser
+CONFIG_SOUND_BCM_CS4297A
+ The BCM91250A has a Crystal CS4297a on synchronous serial port B (in
+ addition to the DB-9 serial port). Say Y or M here to enable the
+ sound chip instead of the UART. Also note that CONFIG_KGDB should
+ not be enabled at the same time, since it also attempts to use this
+ UART port.
+
Support for Yamaha OPL3-SA2 and SA3 based PnP cards
CONFIG_SOUND_OPL3SA2
Say Y or M if you have a card based on one of these Yamaha sound
@@ -20542,6 +21017,23 @@ CONFIG_MIPS32_COMPAT
compatibility. Since all software available for Linux/MIPS is
currently 32-bit you should say Y here.
+Kernel support for o32 binaries
+CONFIG_MIPS32_O32
+ Select this option if you want to run o32 binaries. These are pure
+ 32-bit binaries as used by the 32-bit Linux/MIPS port. Most of
+ existing binaries are in this format.
+
+ If unsure, say Y.
+
+Kernel support for n32 binaries
+CONFIG_MIPS32_N32
+ Select this option if you want to run n32 binaries. These are
+ 64-bit binaries using 32-bit quantities for addressing and certain
+ data that would normally be 64-bit. They are used in special
+ cases.
+
+ If unsure, say N.
+
Build fp exception handler module
CONFIG_MIPS_FPE_MODULE
Build the floating point exception handler module. This option is
@@ -20610,19 +21102,12 @@ CONFIG_NINO_16MB
Palm PCs from Philips (INCOMPLETE).
Model-300/301/302/319
-Low-level debugging
-CONFIG_LL_DEBUG
- Enable low-level debugging assertion macros in the kernel code.
- Currently used only by the time services code in the MIPS port.
- Don't turn this on unless you know what you are doing.
-
-Remote GDB kernel debugging
-CONFIG_REMOTE_DEBUG
- If you say Y here, it will be possible to remotely debug the MIPS
- kernel using gdb. This enlarges your kernel image disk size by
- several megabytes and requires a machine with more than 16 MB,
- better 32 MB RAM to avoid excessive linking time. This is only
- useful for kernel hackers. If unsure, say N.
+Enable run-time debugging
+CONFIG_RUNTIME_DEBUG
+ If you say Y here, some debugging macros will do run-time checking.
+ If you say N here, those macros will mostly turn to no-ops. Currently
+ supported by MIPS arch. See include/asm-mips/debug.h for debuging macros.
+ If unsure, say N.
Run uncached
CONFIG_MIPS_UNCACHED
@@ -20692,6 +21177,17 @@ CONFIG_ISDN_PPP
feature. See <file:Documentation/isdn/README.syncppp> and
<file:Documentation/isdn/syncPPP.FAQ> for more information.
+PPP filtering for ISDN
+CONFIG_IPPP_FILTER
+ Say Y here if you want to be able to filter the packets passing over
+ IPPP interfaces. This allows you to control which packets count as
+ activity (i.e. which packets will reset the idle timer or bring up
+ a demand-dialled link) and which packets are to be dropped entirely.
+ You need to say Y here if you wish to use the pass-filter and
+ active-filter options to ipppd.
+
+ If unsure, say N.
+
Support generic MP (RFC 1717)
CONFIG_ISDN_MPP
With synchronous PPP enabled, it is possible to increase throughput
@@ -21540,6 +22036,7 @@ CONFIG_BLUEZ
SCO Module (SCO links)
RFCOMM Module (RFCOMM protocol)
BNEP Module (BNEP protocol)
+ CMTP Module (CMTP protocol)
Say Y here to enable Linux Bluetooth support and to build BlueZ Core
layer.
@@ -21594,6 +22091,15 @@ CONFIG_BLUEZ_BNEP
Say Y here to compile BNEP support into the kernel or say M to
compile it as module (bnep.o).
+CMTP protocol support
+CONFIG_BLUEZ_CMTP
+ CMTP (CAPI Message Transport Protocol) is a transport layer
+ for CAPI messages. CMTP is required for the Bluetooth Common
+ ISDN Access Profile.
+
+ Say Y here to compile CMTP support into the kernel or say M to
+ compile it as module (cmtp.o).
+
BNEP multicast filter support
CONFIG_BLUEZ_BNEP_MC_FILTER
This option enables the multicast filter support for BNEP.
@@ -21670,6 +22176,16 @@ CONFIG_BLUEZ_HCIVHCI
Say Y here to compile support for virtual HCI devices into the
kernel or say M to compile it as module (hci_vhci.o).
+HCI BFUSB device driver
+CONFIG_BLUEZ_HCIBFUSB
+ Bluetooth HCI BlueFRITZ! USB driver.
+ This driver provides support for Bluetooth USB devices with AVM
+ interface:
+ AVM BlueFRITZ! USB
+
+ Say Y here to compile support for HCI BFUSB devices into the
+ kernel or say M to compile it as module (bfusb.o).
+
HCI DTL1 (PC Card) device driver
CONFIG_BLUEZ_HCIDTL1
Bluetooth HCI DTL1 (PC Card) driver.
@@ -21730,6 +22246,24 @@ CONFIG_SH_RTC
If unsure, say N.
+SuperH peripheral clock frequency
+CONFIG_SH_PCLK_FREQ
+ Set this value or add "sh_pclk=" command line option to tell
+ peripheral clock frequency to kernel, if your system has no RTC.
+ Otherwise leave it 0, and kernel measures peripheral clock frequency
+ using TMU and RTC while system startup.
+
+ If unsure, set 0.
+
+Wakeup UBC on startup
+CONFIG_UBC_WAKEUP
+ Selecting this option will wakeup the User Break Controller (UBC) on
+ startup. Although the UBC is left in an awake state when the processor
+ comes up, some boot loaders misbehave by putting the UBC to sleep in a
+ power saving state, which causes issues with things like ptrace().
+
+ If unsure, say N.
+
SuperH DMAC support
CONFIG_SH_DMA
Selecting this option will provide same API as PC's Direct Memory
@@ -23557,6 +24091,12 @@ CONFIG_VIDEO_W9966
Check out <file:drivers/media/video4linux/w9966.txt> and
<file:drivers/media/video/w9966.c> for more information.
+Philips SAA7114H for SiByte BCM91250A
+CONFIG_VIDEO_SWARM_7114H
+ Say Y or M to build the video4linux driver for the Philips SAA7114H
+ video decoder on Broadcom SWARM board (BCM91250A). The decoder chip
+ is on the BCM1250's "E2" 8-bit FIFO port.
+
CPiA Video For Linux
CONFIG_VIDEO_CPIA
This is the video4linux driver for cameras based on Vision's CPiA
@@ -23830,6 +24370,20 @@ CONFIG_CHSC
enabled, you'll be able to toggle chpids logically offline and online. Even
if you don't understand what this means, you should say "Y".
+Process warning machine checks
+CONFIG_MACHCHK_WARNING
+ Select this option if you want the machine check handler on IBM S/390 or
+ zSeries to process warning machine checks (e.g. on power failures).
+ If unsure, say "Y".
+
+Use chscs for Common I/O
+CONFIG_CHSC
+ Select this option if you want the s390 common I/O layer to use information
+ obtained by channel subsystem calls. This will enable Linux to process link
+ failures and resource accessibility events. Moreover, if you have procfs
+ enabled, you'll be able to toggle chpids logically offline and online. Even
+ if you don't understand what this means, you should say "Y".
+
Kernel support for 31 bit ELF binaries
CONFIG_S390_SUPPORT
Select this option if you want to enable your system kernel to
@@ -26097,6 +26651,9 @@ CONFIG_SH_GENERIC
Select SolutionEngine if configuring for a Hitachi SH7709
or SH7750/7750S evaluation board.
+ Select SHMobileSolutionEngine if configuring for SH-Mobile Solution
+ Engine.
+
Select Overdrive if configuring for a ST407750 Overdrive board.
More information at
<http://linuxsh.sourceforge.net/docs/7750overdrive.php3>.
@@ -26150,6 +26707,11 @@ CONFIG_SH_7751_SOLUTION_ENGINE
Select 7751 SolutionEngine if configuring for a Hitachi SH7751
evaluation board.
+SHMobileSolutionEngine
+CONFIG_SH_MOBILE_SOLUTION_ENGINE
+ Select SHMobileSolutionEngine if configuring for SH-Mobile Solution
+ Engine.
+
Overdrive
CONFIG_SH_OVERDRIVE
Select Overdrive if configuring for a ST407750 Overdrive board.
@@ -26197,6 +26759,14 @@ CONFIG_SH_DREAMCAST
<http://www.m17n.org/linux-sh/dreamcast/>. There is a
Dreamcast project is at <http://linuxdc.sourceforge.net/>.
+SH-2000
+CONFIG_SH_SH2000
+ SH-2000 is a single-board computer based around SH7709A chip
+ intended for embedded applications.
+ It has an Ethernet interface (CS8900A), direct connected
+ Compact Flash socket, three serial ports and PC-104 bus.
+ More information at <http://sh2000.sh-linux.org>.
+
BareCPU
CONFIG_SH_UNKNOWN
"Bare CPU" aka "unknown" means an SH-based system which is not one
@@ -26226,6 +26796,12 @@ CONFIG_CPU_SUBTYPE_SH7707
Select SH7751 if you have a SH7751
Select ST40STB1 if you have a ST40STB1
+ Select ST40RA/ST40STB1 if you have a ST40RA
+ (previously known as ST40STB1).
+
+ Select ST40GX1 if you have an ST40GX1.
+
+ Select SH7300 if you have a HD6417300 CPU.
SH7708
CONFIG_CPU_SUBTYPE_SH7708
@@ -26240,6 +26816,35 @@ SH7750
CONFIG_CPU_SUBTYPE_SH7750
Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
+SH7751
+CONFIG_CPU_SUBTYPE_SH7751
+ Select SH7750 if you have a 166 Mhz SH-4 HD6417751 CPU.
+
+ST40RA/ST40STB1
+CONFIG_CPU_SUBTYPE_ST40STB1
+ Select ST40RA/ST40STB1 if you have a ST40RA. This chip was
+ previously called the ST40STB1. Early versions were also
+ erronously labelled ST40AR166.
+
+ST40GX1
+CONFIG_CPU_SUBTYPE_ST40GX1
+ Select ST40GX1 if you have a ST40GX1 CPU.
+
+SH7300
+CONFIG_CPU_SUBTYPE_SH7300
+ Select SH7300 if you have a HD6417300 CPU.
+
+Memory on LMI
+CONFIG_ST40_LMI_MEMORY
+ Currently all ST40 CPUs have two external buses the
+ 'Local Memory Interface' (LMI) which supports SDRAM and
+ DDR SDRAM, and the 'Enhanced flash Memory Interface' (EMI),
+ which supports SDRAM, Flash, peripherials and MPX. Linux
+ can support memory on either of these buses, it is simply
+ necessary to specify its base address. This option is simply
+ a shortcut method of specifying that RAM starts from the
+ bottom of the LMI.
+
Physical memory start address
CONFIG_MEMORY_START
Computers built with Hitachi SuperH processors always
@@ -26610,6 +27215,140 @@ CONFIG_MTD_SCx200_DOCFLASH
If compiled as a module, it will be called scx200_docflash.o.
+BIOS flash chip on AMD76x southbridge
+CONFIG_MTD_AMD76XROM
+ Support for treating the BIOS flash chip on AMD76x motherboards
+ as an MTD device - with this you can reprogram your BIOS.
+
+ BE VERY CAREFUL.
+
+ If compiled as a module, it will be called amd76xrom.o.
+
+BIOS flash chip on Intel Hub Controller 2
+CONFIG_MTD_ICH2ROM
+ Support for treating the BIOS flash chip on ICH2 motherboards
+ as an MTD device - with this you can reprogram your BIOS.
+
+ BE VERY CAREFUL.
+
+ If compiled as a module, it will be called ich2rom.o.
+
+BIOS flash chip on Intel SCB2 boards
+CONFIG_MTD_SCB2_FLASH
+ Support for treating the BIOS flash chip on Intel SCB2 boards
+ as an MTD device - with this you can reprogram your BIOS.
+
+ BE VERY CAREFUL.
+
+ If compiled as a module, it will be called scb2_flash.o.
+
+Flash chips on Tsunami TIG bus
+CONFIG_MTD_TSUNAMI
+ Support for the flash chip on Tsunami TIG bus.
+
+ If compiled as a module, it will be called tsunami_flash.o.
+
+Flash chips on LASAT board
+CONFIG_MTD_LASAT
+ Support for the flash chips on the Lasat 100 and 200 boards.
+
+ If compiled as a module, it will be called lasat.o.
+
+CFI flash device on SnapGear/SecureEdge
+CONFIG_MTD_NETtel
+ Support for flash chips on NETtel/SecureEdge/SnapGear boards.
+
+ If compiled as a module, it will be called nettel.o.
+
+CFI Flash device mapped on DIL/Net PC
+CONFIG_MTD_DILNETPC
+ MTD map driver for SSV DIL/Net PC Boards "DNP" and "ADNP".
+ For details, see <http://www.ssv-embedded.de/ssv/pc104/p169.htm>
+ and <http://www.ssv-embedded.de/ssv/pc104/p170.htm>
+
+ If compiled as a module, it will be called dilnetpc.o.
+
+Size of DIL/Net PC flash boot partition
+CONFIG_MTD_DILNETPC_BOOTSIZE
+ The amount of space taken up by the kernel or Etherboot
+ on the DIL/Net PC flash chips.
+
+CFI Flash device mapped on Epxa10db
+CONFIG_MTD_EPXA10DB
+ This enables support for the flash devices on the Altera
+ Excalibur XA10 Development Board. If you are building a kernel
+ for on of these boards then you should say 'Y' otherwise say 'N'.
+
+ If compiled as a module, it will be called epxa10db-flash.o.
+
+CFI Flash device mapped on the FortuNet board
+CONFIG_MTD_FORTUNET
+ This enables access to the Flash on the FortuNet board. If you
+ have such a board, say 'Y'.
+
+ If compiled as a module, it will be called fortunet.o.
+
+NV-RAM mapping AUTCPU12 board
+CONFIG_MTD_AUTCPU12
+ This enables access to the NV-RAM on autronix autcpu12 board.
+ If you have such a board, say 'Y'.
+
+ If compiled as a module, it will be called autcpu12-nvram.o.
+
+CFI Flash device mapped on EDB7312
+CONFIG_MTD_EDB7312
+ This enables access to the CFI Flash on the Cogent EDB7312 board.
+ If you have such a board, say 'Y' here.
+
+ If compiled as a module, it will be called edb7312.o.
+
+JEDEC Flash device mapped on impA7
+CONFIG_MTD_IMPA7
+ This enables access to the NOR Flash on the impA7 board of
+ implementa GmbH. If you have such a board, say 'Y' here.
+
+ If compiled as a module, it will be called impa7.o.
+
+JEDEC Flash device mapped on Ceiva/Polaroid PhotoMax Digital Picture Frame
+CONFIG_MTD_CEIVA
+ This enables access to the flash chips on the Ceiva/Polaroid
+ PhotoMax Digital Picture Frame.
+ If you have such a device, say 'Y'.
+
+ If compiled as a module, it will be called ceiva.o.
+
+System flash on MBX860 board
+CONFIG_MTD_MBX860
+ This enables access routines for the flash chips on the Motorola
+ MBX860 board. If you have one of these boards and would like
+ to use the flash chips on it, say 'Y'.
+
+ If compiled as a module, it will be called mbx860.o.
+
+PCI MTD driver
+CONFIG_MTD_PCI
+ Mapping for accessing flash devices on add-in cards like the Intel XScale
+ IQ80310 card, and the Intel EBSA285 card in blank ROM programming mode
+ (please see the manual for the link settings).
+
+ If compiled as a module, it will be called pci.o.
+
+ If you are not sure, say N.
+
+PCMCIA MTD driver
+CONFIG_MTD_PCMCIA
+ Map driver for accessing PCMCIA linear flash memory cards. These
+ cards are usually around 4-16MiB in size. This does not include
+ Compact Flash cards which are treated as IDE devices.
+
+ If compiled as a module, it will be called pcmciamtd.o.
+
+Generic uClinux RAM/ROM filesystem support
+CONFIG_MTD_UCLINUX
+ Map driver to support image based filesystems for uClinux.
+
+ If compiled as a module, it will be called uclinux.o.
+
NatSemi SCx200 I2C using GPIO pins
CONFIG_SCx200_GPIO
Enable the use of two GPIO pins of a SCx200 processor as an I2C bus.
@@ -26668,6 +27407,105 @@ IPMI Watchdog Timer
CONFIG_IPMI_WATCHDOG
This enables the IPMI watchdog timer.
+CRC32 functions
+CONFIG_CRC32
+ This option is provided for the case where no in-kernel-tree
+ modules require CRC32 functions, but a module built outside the
+ kernel tree does. Such modules that use library CRC32 functions
+ require that you say M or Y here.
+
+CONFIG_CRYPTO
+ This option provides the core Cryptographic API.
+
+CONFIG_CRYPTO_HMAC
+ HMAC: Keyed-Hashing for Message Authentication (RFC2104).
+ This is required for IPSec.
+
+CONFIG_CRYPTO_NULL
+ These are 'Null' algorithms, used by IPsec, which do nothing.
+
+CONFIG_CRYPTO_MD4
+ MD4 message digest algorithm (RFC1320).
+
+CONFIG_CRYPTO_MD5
+ MD5 message digest algorithm (RFC1321).
+
+CONFIG_CRYPTO_SHA1
+ SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
+
+CONFIG_CRYPTO_SHA256
+ SHA256 secure hash standard (DFIPS 180-2).
+
+ This version of SHA implements a 256 bit hash with 128 bits of
+ security against collision attacks.
+
+CONFIG_CRYPTO_SHA512
+ SHA512 secure hash standard (DFIPS 180-2).
+
+ This version of SHA implements a 512 bit hash with 256 bits of
+ security against collision attacks.
+
+ This code also includes SHA-384, a 384 bit hash with 192 bits
+ of security against collision attacks.
+
+CONFIG_CRYPTO_DES
+ DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
+
+CONFIG_CRYPTO_BLOWFISH
+ Blowfish cipher algorithm, by Bruce Schneier.
+
+ This is a variable key length cipher which can use keys from 32
+ bits to 448 bits in length. It's fast, simple and specifically
+ designed for use on "large microprocessors".
+
+ See also <http://www.counterpane.com/blowfish.html>.
+
+CONFIG_CRYPTO_TWOFISH
+ Twofish cipher algorithm.
+
+ Twofish was submitted as an AES (Advanced Encryption Standard)
+ candidate cipher by researchers at CounterPane Systems. It is a
+ 16 round block cipher supporting key sizes of 128, 192, and 256
+ bits.
+
+ See also:
+ http://www.counterpane.com/twofish.html
+
+CONFIG_CRYPTO_SERPENT
+ Serpent cipher algorithm, by Anderson, Biham & Knudsen.
+
+ Keys are allowed to be from 0 to 256 bits in length, in steps
+ of 8 bits.
+
+ See also:
+ http://www.cl.cam.ac.uk/~rja14/serpent.html
+
+CONFIG_CRYPTO_AES
+ AES cipher algorithms (FIPS-197). AES uses the Rijndael
+ algorithm.
+
+ Rijndael appears to be consistently a very good performer in
+ both hardware and software across a wide range of computing
+ environments regardless of its use in feedback or non-feedback
+ modes. Its key setup time is excellent, and its key agility is
+ good. Rijndael's very low memory requirements make it very well
+ suited for restricted-space environments, in which it also
+ demonstrates excellent performance. Rijndael's operations are
+ among the easiest to defend against power and timing attacks.
+
+ The AES specifies three key sizes: 128, 192 and 256 bits
+
+ See http://csrc.nist.gov/encryption/aes/ for more information.
+
+CONFIG_CRYPTO_DEFLATE
+ This is the Deflate algorithm (RFC1951), specified for use in
+ IPSec with the IPCOMP protocol (RFC3173, RFC2394).
+
+ You will most probably want this if using IPSec.
+
+CONFIG_CRYPTO_TEST
+ Quick & dirty crypto test module.
+
#
# A couple of things I keep forgetting:
# capitalize: AppleTalk, Ethernet, DOS, DMA, FAT, FTP, Internet,
diff --git a/xenolinux-2.4.21-sparse/Makefile b/xenolinux-2.4.22-sparse/Makefile
index a6f720db8d..5974b048fb 100644
--- a/xenolinux-2.4.21-sparse/Makefile
+++ b/xenolinux-2.4.22-sparse/Makefile
@@ -1,6 +1,6 @@
VERSION = 2
PATCHLEVEL = 4
-SUBLEVEL = 21
+SUBLEVEL = 22
EXTRAVERSION = -xeno
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
@@ -45,10 +45,13 @@ DEPMOD = /sbin/depmod
MODFLAGS = -DMODULE
CFLAGS_KERNEL =
PERL = perl
+AWK = awk
+RPM := $(shell if [ -x "/usr/bin/rpmbuild" ]; then echo rpmbuild; \
+ else echo rpm; fi)
export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION KERNELRELEASE ARCH \
CONFIG_SHELL TOPDIR HPATH HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \
- CPP AR NM STRIP OBJCOPY OBJDUMP MAKE MAKEFILES GENKSYMS MODFLAGS PERL
+ CPP AR NM STRIP OBJCOPY OBJDUMP MAKE MAKEFILES GENKSYMS MODFLAGS PERL AWK
all: do-it-all
@@ -130,14 +133,14 @@ CORE_FILES =kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o
NETWORKS =net/network.o
LIBS =$(TOPDIR)/lib/lib.a
-SUBDIRS =kernel drivers mm fs net ipc lib
+SUBDIRS =kernel drivers mm fs net ipc lib crypto
DRIVERS-n :=
DRIVERS-y :=
DRIVERS-m :=
DRIVERS- :=
-DRIVERS-$(CONFIG_ACPI) += drivers/acpi/acpi.o
+DRIVERS-$(CONFIG_ACPI_BOOT) += drivers/acpi/acpi.o
DRIVERS-$(CONFIG_PARPORT) += drivers/parport/driver.o
DRIVERS-y += drivers/char/char.o \
drivers/block/block.o \
@@ -195,6 +198,7 @@ DRIVERS-$(CONFIG_GSC) += drivers/gsc/gscbus.o
DRIVERS-$(CONFIG_BLUEZ) += drivers/bluetooth/bluetooth.o
DRIVERS-$(CONFIG_HOTPLUG_PCI) += drivers/hotplug/vmlinux-obj.o
DRIVERS-$(CONFIG_ISDN_BOOL) += drivers/isdn/vmlinux-obj.o
+DRIVERS-$(CONFIG_CRYPTO) += crypto/crypto.o
DRIVERS := $(DRIVERS-y)
@@ -231,6 +235,7 @@ CLEAN_DIRS = \
# files removed with 'make mrproper'
MRPROPER_FILES = \
include/linux/autoconf.h include/linux/version.h \
+ lib/crc32table.h lib/gen_crc32table \
drivers/net/hamradio/soundmodem/sm_tbl_{afsk1200,afsk2666,fsk9600}.h \
drivers/net/hamradio/soundmodem/sm_tbl_{hapn4800,psk4800}.h \
drivers/net/hamradio/soundmodem/sm_tbl_{afsk2400_7,afsk2400_8}.h \
@@ -575,5 +580,5 @@ rpm: clean spec
rm $(KERNELPATH) ; \
cd $(TOPDIR) ; \
. scripts/mkversion > .version ; \
- rpm -ta $(TOPDIR)/../$(KERNELPATH).tar.gz ; \
+ $(RPM) -ta $(TOPDIR)/../$(KERNELPATH).tar.gz ; \
rm $(TOPDIR)/../$(KERNELPATH).tar.gz
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/Makefile b/xenolinux-2.4.22-sparse/arch/xeno/Makefile
index 89777dc9e9..89777dc9e9 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/Makefile
+++ b/xenolinux-2.4.22-sparse/arch/xeno/Makefile
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/boot/Makefile b/xenolinux-2.4.22-sparse/arch/xeno/boot/Makefile
index 252daf50bf..252daf50bf 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/boot/Makefile
+++ b/xenolinux-2.4.22-sparse/arch/xeno/boot/Makefile
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/config.in b/xenolinux-2.4.22-sparse/arch/xeno/config.in
index a25e336457..67bdbb8654 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/config.in
+++ b/xenolinux-2.4.22-sparse/arch/xeno/config.in
@@ -165,6 +165,9 @@ if [ "$CONFIG_DEBUG_KERNEL" != "n" ]; then
bool ' Compile the kernel with frame pointers' CONFIG_FRAME_POINTER
fi
+source drivers/acpi/Config.in
+
endmenu
+source crypto/Config.in
source lib/Config.in
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/defconfig b/xenolinux-2.4.22-sparse/arch/xeno/defconfig
index 5e5ee7b3a1..5e5ee7b3a1 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/defconfig
+++ b/xenolinux-2.4.22-sparse/arch/xeno/defconfig
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/balloon/Makefile b/xenolinux-2.4.22-sparse/arch/xeno/drivers/balloon/Makefile
index f780a515e0..f780a515e0 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/balloon/Makefile
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/balloon/Makefile
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/balloon/balloon.c b/xenolinux-2.4.22-sparse/arch/xeno/drivers/balloon/balloon.c
index e1a6d30374..e1a6d30374 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/balloon/balloon.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/balloon/balloon.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/balloon/dom_mem_ops.h b/xenolinux-2.4.22-sparse/arch/xeno/drivers/balloon/dom_mem_ops.h
index c473f193e7..c473f193e7 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/balloon/dom_mem_ops.h
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/balloon/dom_mem_ops.h
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/Makefile b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/Makefile
index 6423104172..6423104172 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/Makefile
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/Makefile
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_block.c b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_block.c
index 743ecd9be0..743ecd9be0 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_block.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_block.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_block.h b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_block.h
index 00056bf09e..00056bf09e 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_block.h
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_block.h
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_ide.c b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_ide.c
index 714c6bf082..714c6bf082 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_ide.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_ide.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_scsi.c b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_scsi.c
index c0f389f181..c0f389f181 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_scsi.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_scsi.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_segment.c b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_segment.c
index e746e2db3d..e746e2db3d 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_segment.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_segment.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_segment_proc.c b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_segment_proc.c
index 464707362a..464707362a 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_segment_proc.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/block/xl_segment_proc.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/console/Makefile b/xenolinux-2.4.22-sparse/arch/xeno/drivers/console/Makefile
index 546180a3c2..546180a3c2 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/console/Makefile
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/console/Makefile
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/console/console.c b/xenolinux-2.4.22-sparse/arch/xeno/drivers/console/console.c
index e69cd2488e..e69cd2488e 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/console/console.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/console/console.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/dom0/Makefile b/xenolinux-2.4.22-sparse/arch/xeno/drivers/dom0/Makefile
index 9030801f14..9030801f14 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/dom0/Makefile
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/dom0/Makefile
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/dom0/dom0_core.c b/xenolinux-2.4.22-sparse/arch/xeno/drivers/dom0/dom0_core.c
index 20db18af74..20db18af74 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/dom0/dom0_core.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/dom0/dom0_core.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/dom0/vfr.c b/xenolinux-2.4.22-sparse/arch/xeno/drivers/dom0/vfr.c
index 8c9f6530e7..8c9f6530e7 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/dom0/vfr.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/dom0/vfr.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/network/Makefile b/xenolinux-2.4.22-sparse/arch/xeno/drivers/network/Makefile
index b44a288a5b..b44a288a5b 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/network/Makefile
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/network/Makefile
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/drivers/network/network.c b/xenolinux-2.4.22-sparse/arch/xeno/drivers/network/network.c
index 3d12699799..3d12699799 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/drivers/network/network.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/drivers/network/network.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/Makefile b/xenolinux-2.4.22-sparse/arch/xeno/kernel/Makefile
index a43a615e2f..a43a615e2f 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/Makefile
+++ b/xenolinux-2.4.22-sparse/arch/xeno/kernel/Makefile
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/entry.S b/xenolinux-2.4.22-sparse/arch/xeno/kernel/entry.S
index 9c909e3f7b..9c909e3f7b 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/entry.S
+++ b/xenolinux-2.4.22-sparse/arch/xeno/kernel/entry.S
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/head.S b/xenolinux-2.4.22-sparse/arch/xeno/kernel/head.S
index a89fd8eda4..a89fd8eda4 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/head.S
+++ b/xenolinux-2.4.22-sparse/arch/xeno/kernel/head.S
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/hypervisor.c b/xenolinux-2.4.22-sparse/arch/xeno/kernel/hypervisor.c
index 3f414e9876..3f414e9876 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/hypervisor.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/kernel/hypervisor.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/i386_ksyms.c b/xenolinux-2.4.22-sparse/arch/xeno/kernel/i386_ksyms.c
index b62c171b3c..b62c171b3c 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/i386_ksyms.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/kernel/i386_ksyms.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/ioport.c b/xenolinux-2.4.22-sparse/arch/xeno/kernel/ioport.c
index ed6dbbc3c5..ed6dbbc3c5 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/ioport.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/kernel/ioport.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/irq.c b/xenolinux-2.4.22-sparse/arch/xeno/kernel/irq.c
index 4f449691f0..4f449691f0 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/irq.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/kernel/irq.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/ldt.c b/xenolinux-2.4.22-sparse/arch/xeno/kernel/ldt.c
index ca89b694bd..ca89b694bd 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/ldt.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/kernel/ldt.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/process.c b/xenolinux-2.4.22-sparse/arch/xeno/kernel/process.c
index 3b17c7326c..3b17c7326c 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/process.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/kernel/process.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/setup.c b/xenolinux-2.4.22-sparse/arch/xeno/kernel/setup.c
index 1fe945976e..b2532d7b58 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/setup.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/kernel/setup.c
@@ -32,6 +32,7 @@
#include <linux/seq_file.h>
#include <asm/processor.h>
#include <linux/console.h>
+#include <linux/module.h>
#include <asm/mtrr.h>
#include <asm/uaccess.h>
#include <asm/system.h>
@@ -57,6 +58,7 @@ char ignore_irq13; /* set if exception 16 works */
struct cpuinfo_x86 boot_cpu_data = { 0, 0, 0, 0, -1, 1, 0, 0, -1 };
unsigned long mmu_cr4_features;
+//EXPORT_SYMBOL(mmu_cr4_features);
unsigned char * vgacon_mmap;
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/signal.c b/xenolinux-2.4.22-sparse/arch/xeno/kernel/signal.c
index f646c5c0ca..f646c5c0ca 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/signal.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/kernel/signal.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/time.c b/xenolinux-2.4.22-sparse/arch/xeno/kernel/time.c
index 73ac82c9a4..73ac82c9a4 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/time.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/kernel/time.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/kernel/traps.c b/xenolinux-2.4.22-sparse/arch/xeno/kernel/traps.c
index 85c6acb8f0..85c6acb8f0 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/kernel/traps.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/kernel/traps.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/lib/Makefile b/xenolinux-2.4.22-sparse/arch/xeno/lib/Makefile
index 2224f0312c..2224f0312c 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/lib/Makefile
+++ b/xenolinux-2.4.22-sparse/arch/xeno/lib/Makefile
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/lib/delay.c b/xenolinux-2.4.22-sparse/arch/xeno/lib/delay.c
index 0035bed074..0035bed074 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/lib/delay.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/lib/delay.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/mm/Makefile b/xenolinux-2.4.22-sparse/arch/xeno/mm/Makefile
index d0d16114b6..d0d16114b6 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/mm/Makefile
+++ b/xenolinux-2.4.22-sparse/arch/xeno/mm/Makefile
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/mm/fault.c b/xenolinux-2.4.22-sparse/arch/xeno/mm/fault.c
index d4d24d2085..d4d24d2085 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/mm/fault.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/mm/fault.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/mm/hypervisor.c b/xenolinux-2.4.22-sparse/arch/xeno/mm/hypervisor.c
index 1935595307..1935595307 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/mm/hypervisor.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/mm/hypervisor.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/mm/init.c b/xenolinux-2.4.22-sparse/arch/xeno/mm/init.c
index acce1fbfd7..acce1fbfd7 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/mm/init.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/mm/init.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/mm/ioremap.c b/xenolinux-2.4.22-sparse/arch/xeno/mm/ioremap.c
index d537956105..d537956105 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/mm/ioremap.c
+++ b/xenolinux-2.4.22-sparse/arch/xeno/mm/ioremap.c
diff --git a/xenolinux-2.4.21-sparse/arch/xeno/vmlinux.lds b/xenolinux-2.4.22-sparse/arch/xeno/vmlinux.lds
index 7c4c4f8e9c..7c4c4f8e9c 100644
--- a/xenolinux-2.4.21-sparse/arch/xeno/vmlinux.lds
+++ b/xenolinux-2.4.22-sparse/arch/xeno/vmlinux.lds
diff --git a/xenolinux-2.4.21-sparse/drivers/block/genhd.c b/xenolinux-2.4.22-sparse/drivers/block/genhd.c
index 403d52e0a1..403d52e0a1 100644
--- a/xenolinux-2.4.21-sparse/drivers/block/genhd.c
+++ b/xenolinux-2.4.22-sparse/drivers/block/genhd.c
diff --git a/xenolinux-2.4.21-sparse/drivers/block/ll_rw_blk.c b/xenolinux-2.4.22-sparse/drivers/block/ll_rw_blk.c
index 411b6def8b..17bc32bfb1 100644
--- a/xenolinux-2.4.21-sparse/drivers/block/ll_rw_blk.c
+++ b/xenolinux-2.4.22-sparse/drivers/block/ll_rw_blk.c
@@ -176,11 +176,12 @@ void blk_cleanup_queue(request_queue_t * q)
{
int count = q->nr_requests;
- count -= __blk_cleanup_queue(&q->rq[READ]);
- count -= __blk_cleanup_queue(&q->rq[WRITE]);
+ count -= __blk_cleanup_queue(&q->rq);
if (count)
printk("blk_cleanup_queue: leaked requests (%d)\n", count);
+ if (atomic_read(&q->nr_sectors))
+ printk("blk_cleanup_queue: leaked sectors (%d)\n", atomic_read(&q->nr_sectors));
memset(q, 0, sizeof(*q));
}
@@ -215,6 +216,24 @@ void blk_queue_headactive(request_queue_t * q, int active)
}
/**
+ * blk_queue_throttle_sectors - indicates you will call sector throttling funcs
+ * @q: The queue which this applies to.
+ * @active: A flag indication if you want sector throttling on
+ *
+ * Description:
+ * The sector throttling code allows us to put a limit on the number of
+ * sectors pending io to the disk at a given time, sending @active nonzero
+ * indicates you will call blk_started_sectors and blk_finished_sectors in
+ * addition to calling blk_started_io and blk_finished_io in order to
+ * keep track of the number of sectors in flight.
+ **/
+
+void blk_queue_throttle_sectors(request_queue_t * q, int active)
+{
+ q->can_throttle = active;
+}
+
+/**
* blk_queue_make_request - define an alternate make_request function for a device
* @q: the request queue for the device to be affected
* @mfn: the alternate make_request function
@@ -389,7 +408,7 @@ void generic_unplug_device(void *data)
*
* Returns the (new) number of requests which the queue has available.
*/
-int blk_grow_request_list(request_queue_t *q, int nr_requests)
+int blk_grow_request_list(request_queue_t *q, int nr_requests, int max_queue_sectors)
{
unsigned long flags;
/* Several broken drivers assume that this function doesn't sleep,
@@ -399,21 +418,34 @@ int blk_grow_request_list(request_queue_t *q, int nr_requests)
spin_lock_irqsave(&io_request_lock, flags);
while (q->nr_requests < nr_requests) {
struct request *rq;
- int rw;
rq = kmem_cache_alloc(request_cachep, SLAB_ATOMIC);
if (rq == NULL)
break;
memset(rq, 0, sizeof(*rq));
rq->rq_status = RQ_INACTIVE;
- rw = q->nr_requests & 1;
- list_add(&rq->queue, &q->rq[rw].free);
- q->rq[rw].count++;
+ list_add(&rq->queue, &q->rq.free);
+ q->rq.count++;
+
q->nr_requests++;
}
+
+ /*
+ * Wakeup waiters after both one quarter of the
+ * max-in-fligh queue and one quarter of the requests
+ * are available again.
+ */
+
q->batch_requests = q->nr_requests / 4;
if (q->batch_requests > 32)
q->batch_requests = 32;
+ q->batch_sectors = max_queue_sectors / 4;
+
+ q->max_queue_sectors = max_queue_sectors;
+
+ BUG_ON(!q->batch_sectors);
+ atomic_set(&q->nr_sectors, 0);
+
spin_unlock_irqrestore(&io_request_lock, flags);
return q->nr_requests;
}
@@ -422,23 +454,28 @@ static void blk_init_free_list(request_queue_t *q)
{
struct sysinfo si;
int megs; /* Total memory, in megabytes */
- int nr_requests;
-
- INIT_LIST_HEAD(&q->rq[READ].free);
- INIT_LIST_HEAD(&q->rq[WRITE].free);
- q->rq[READ].count = 0;
- q->rq[WRITE].count = 0;
+ int nr_requests, max_queue_sectors = MAX_QUEUE_SECTORS;
+
+ INIT_LIST_HEAD(&q->rq.free);
+ q->rq.count = 0;
+ q->rq.pending[READ] = q->rq.pending[WRITE] = 0;
q->nr_requests = 0;
si_meminfo(&si);
megs = si.totalram >> (20 - PAGE_SHIFT);
- nr_requests = 128;
- if (megs < 32)
- nr_requests /= 2;
- blk_grow_request_list(q, nr_requests);
+ nr_requests = MAX_NR_REQUESTS;
+ if (megs < 30) {
+ nr_requests /= 2;
+ max_queue_sectors /= 2;
+ }
+ /* notice early if anybody screwed the defaults */
+ BUG_ON(!nr_requests);
+ BUG_ON(!max_queue_sectors);
+
+ blk_grow_request_list(q, nr_requests, max_queue_sectors);
+
+ init_waitqueue_head(&q->wait_for_requests);
- init_waitqueue_head(&q->wait_for_requests[0]);
- init_waitqueue_head(&q->wait_for_requests[1]);
spin_lock_init(&q->queue_lock);
}
@@ -491,6 +528,8 @@ void blk_init_queue(request_queue_t * q, request_fn_proc * rfn)
q->plug_tq.routine = &generic_unplug_device;
q->plug_tq.data = q;
q->plugged = 0;
+ q->can_throttle = 0;
+
/*
* These booleans describe the queue properties. We set the
* default (and most common) values here. Other drivers can
@@ -511,12 +550,29 @@ void blk_init_queue(request_queue_t * q, request_fn_proc * rfn)
static struct request *get_request(request_queue_t *q, int rw)
{
struct request *rq = NULL;
- struct request_list *rl = q->rq + rw;
+ struct request_list *rl = &q->rq;
+ if (blk_oversized_queue(q)) {
+ int rlim = q->nr_requests >> 5;
+
+ if (rlim < 4)
+ rlim = 4;
+
+ /*
+ * if its a write, or we have more than a handful of reads
+ * pending, bail out
+ */
+ if ((rw == WRITE) || (rw == READ && rl->pending[READ] > rlim))
+ return NULL;
+ if (blk_oversized_queue_reads(q))
+ return NULL;
+ }
+
if (!list_empty(&rl->free)) {
rq = blkdev_free_rq(&rl->free);
list_del(&rq->queue);
rl->count--;
+ rl->pending[rw]++;
rq->rq_status = RQ_ACTIVE;
rq->cmd = rw;
rq->special = NULL;
@@ -527,29 +583,19 @@ static struct request *get_request(request_queue_t *q, int rw)
}
/*
- * Here's the request allocation design:
+ * Here's the request allocation design, low latency version:
*
* 1: Blocking on request exhaustion is a key part of I/O throttling.
*
* 2: We want to be `fair' to all requesters. We must avoid starvation, and
* attempt to ensure that all requesters sleep for a similar duration. Hence
* no stealing requests when there are other processes waiting.
- *
- * 3: We also wish to support `batching' of requests. So when a process is
- * woken, we want to allow it to allocate a decent number of requests
- * before it blocks again, so they can be nicely merged (this only really
- * matters if the process happens to be adding requests near the head of
- * the queue).
- *
- * 4: We want to avoid scheduling storms. This isn't really important, because
- * the system will be I/O bound anyway. But it's easy.
- *
- * There is tension between requirements 2 and 3. Once a task has woken,
- * we don't want to allow it to sleep as soon as it takes its second request.
- * But we don't want currently-running tasks to steal all the requests
- * from the sleepers. We handle this with wakeup hysteresis around
- * 0 .. batch_requests and with the assumption that request taking is much,
- * much faster than request freeing.
+ *
+ * There used to be more here, attempting to allow a process to send in a
+ * number of requests once it has woken up. But, there's no way to
+ * tell if a process has just been woken up, or if it is a new process
+ * coming in to steal requests from the waiters. So, we give up and force
+ * everyone to wait fairly.
*
* So here's what we do:
*
@@ -561,28 +607,23 @@ static struct request *get_request(request_queue_t *q, int rw)
*
* When a process wants a new request:
*
- * b) If free_requests == 0, the requester sleeps in FIFO manner.
- *
- * b) If 0 < free_requests < batch_requests and there are waiters,
- * we still take a request non-blockingly. This provides batching.
- *
- * c) If free_requests >= batch_requests, the caller is immediately
- * granted a new request.
+ * b) If free_requests == 0, the requester sleeps in FIFO manner, and
+ * the queue full condition is set. The full condition is not
+ * cleared until there are no longer any waiters. Once the full
+ * condition is set, all new io must wait, hopefully for a very
+ * short period of time.
*
* When a request is released:
*
- * d) If free_requests < batch_requests, do nothing.
- *
- * f) If free_requests >= batch_requests, wake up a single waiter.
+ * c) If free_requests < batch_requests, do nothing.
*
- * The net effect is that when a process is woken at the batch_requests level,
- * it will be able to take approximately (batch_requests) requests before
- * blocking again (at the tail of the queue).
- *
- * This all assumes that the rate of taking requests is much, much higher
- * than the rate of releasing them. Which is very true.
+ * d) If free_requests >= batch_requests, wake up a single waiter.
*
- * -akpm, Feb 2002.
+ * As each waiter gets a request, he wakes another waiter. We do this
+ * to prevent a race where an unplug might get run before a request makes
+ * it's way onto the queue. The result is a cascade of wakeups, so delaying
+ * the initial wakeup until we've got batch_requests available helps avoid
+ * wakeups where there aren't any requests available yet.
*/
static struct request *__get_request_wait(request_queue_t *q, int rw)
@@ -590,21 +631,37 @@ static struct request *__get_request_wait(request_queue_t *q, int rw)
register struct request *rq;
DECLARE_WAITQUEUE(wait, current);
- add_wait_queue(&q->wait_for_requests[rw], &wait);
+ add_wait_queue_exclusive(&q->wait_for_requests, &wait);
+
do {
set_current_state(TASK_UNINTERRUPTIBLE);
- generic_unplug_device(q);
- if (q->rq[rw].count == 0)
- schedule();
spin_lock_irq(&io_request_lock);
+ if (blk_oversized_queue(q) || q->rq.count == 0) {
+ __generic_unplug_device(q);
+ spin_unlock_irq(&io_request_lock);
+ schedule();
+ spin_lock_irq(&io_request_lock);
+ }
rq = get_request(q, rw);
spin_unlock_irq(&io_request_lock);
} while (rq == NULL);
- remove_wait_queue(&q->wait_for_requests[rw], &wait);
+ remove_wait_queue(&q->wait_for_requests, &wait);
current->state = TASK_RUNNING;
+
return rq;
}
+static void get_request_wait_wakeup(request_queue_t *q, int rw)
+{
+ /*
+ * avoid losing an unplug if a second __get_request_wait did the
+ * generic_unplug_device while our __get_request_wait was running
+ * w/o the queue_lock held and w/ our request out of the queue.
+ */
+ if (waitqueue_active(&q->wait_for_requests))
+ wake_up(&q->wait_for_requests);
+}
+
/* RO fail safe mechanism */
static long ro_bits[MAX_BLKDEV][8];
@@ -820,7 +877,6 @@ static inline void add_request(request_queue_t * q, struct request * req,
void blkdev_release_request(struct request *req)
{
request_queue_t *q = req->q;
- int rw = req->cmd;
req->rq_status = RQ_INACTIVE;
req->q = NULL;
@@ -830,9 +886,29 @@ void blkdev_release_request(struct request *req)
* assume it has free buffers and check waiters
*/
if (q) {
- list_add(&req->queue, &q->rq[rw].free);
- if (++q->rq[rw].count >= q->batch_requests)
- wake_up(&q->wait_for_requests[rw]);
+ struct request_list *rl = &q->rq;
+ int oversized_batch = 0;
+
+ if (q->can_throttle)
+ oversized_batch = blk_oversized_queue_batch(q);
+ rl->count++;
+ /*
+ * paranoia check
+ */
+ if (req->cmd == READ || req->cmd == WRITE)
+ rl->pending[req->cmd]--;
+ if (rl->pending[READ] > q->nr_requests)
+ printk("blk: reads: %u\n", rl->pending[READ]);
+ if (rl->pending[WRITE] > q->nr_requests)
+ printk("blk: writes: %u\n", rl->pending[WRITE]);
+ if (rl->pending[READ] + rl->pending[WRITE] > q->nr_requests)
+ printk("blk: r/w: %u + %u > %u\n", rl->pending[READ], rl->pending[WRITE], q->nr_requests);
+ list_add(&req->queue, &rl->free);
+ if (rl->count >= q->batch_requests && !oversized_batch) {
+ smp_mb();
+ if (waitqueue_active(&q->wait_for_requests))
+ wake_up(&q->wait_for_requests);
+ }
}
}
@@ -903,16 +979,18 @@ static inline void attempt_front_merge(request_queue_t * q,
static int __make_request(request_queue_t * q, int rw,
struct buffer_head * bh)
{
- unsigned int sector, count;
+ unsigned int sector, count, sync;
int max_segments = MAX_SEGMENTS;
struct request * req, *freereq = NULL;
int rw_ahead, max_sectors, el_ret;
struct list_head *head, *insert_here;
int latency;
elevator_t *elevator = &q->elevator;
+ int should_wake = 0;
count = bh->b_size >> 9;
sector = bh->b_rsector;
+ sync = test_and_clear_bit(BH_Sync, &bh->b_state);
rw_ahead = 0; /* normal case; gets changed below for READA */
switch (rw) {
@@ -950,7 +1028,6 @@ static int __make_request(request_queue_t * q, int rw,
*/
max_sectors = get_max_sectors(bh->b_rdev);
-again:
req = NULL;
head = &q->queue_head;
/*
@@ -959,7 +1036,9 @@ again:
*/
spin_lock_irq(&io_request_lock);
+again:
insert_here = head->prev;
+
if (list_empty(head)) {
q->plug_device_fn(q, bh->b_rdev); /* is atomic */
goto get_rq;
@@ -978,6 +1057,7 @@ again:
req->bhtail = bh;
req->nr_sectors = req->hard_nr_sectors += count;
blk_started_io(count);
+ blk_started_sectors(req, count);
drive_stat_acct(req->rq_dev, req->cmd, count, 0);
req_new_io(req, 1, count);
attempt_back_merge(q, req, max_sectors, max_segments);
@@ -1000,6 +1080,7 @@ again:
req->sector = req->hard_sector = sector;
req->nr_sectors = req->hard_nr_sectors += count;
blk_started_io(count);
+ blk_started_sectors(req, count);
drive_stat_acct(req->rq_dev, req->cmd, count, 0);
req_new_io(req, 1, count);
attempt_front_merge(q, head, req, max_sectors, max_segments);
@@ -1032,7 +1113,7 @@ get_rq:
* See description above __get_request_wait()
*/
if (rw_ahead) {
- if (q->rq[rw].count < q->batch_requests) {
+ if (q->rq.count < q->batch_requests || blk_oversized_queue_batch(q)) {
spin_unlock_irq(&io_request_lock);
goto end_io;
}
@@ -1044,6 +1125,9 @@ get_rq:
if (req == NULL) {
spin_unlock_irq(&io_request_lock);
freereq = __get_request_wait(q, rw);
+ head = &q->queue_head;
+ spin_lock_irq(&io_request_lock);
+ should_wake = 1;
goto again;
}
}
@@ -1066,10 +1150,15 @@ get_rq:
req->start_time = jiffies;
req_new_io(req, 0, count);
blk_started_io(count);
+ blk_started_sectors(req, count);
add_request(q, req, insert_here);
out:
if (freereq)
blkdev_release_request(freereq);
+ if (should_wake)
+ get_request_wait_wakeup(q, rw);
+ if (sync)
+ __generic_unplug_device(q);
spin_unlock_irq(&io_request_lock);
return 0;
end_io:
@@ -1198,8 +1287,15 @@ void submit_bh(int rw, struct buffer_head * bh)
bh->b_rdev = bh->b_dev;
bh->b_rsector = bh->b_blocknr * count;
+ get_bh(bh);
generic_make_request(rw, bh);
+ /* fix race condition with wait_on_buffer() */
+ smp_mb(); /* spin_unlock may have inclusive semantics */
+ if (waitqueue_active(&bh->b_wait))
+ wake_up(&bh->b_wait);
+
+ put_bh(bh);
switch (rw) {
case WRITE:
kstat.pgpgout += count;
@@ -1352,6 +1448,7 @@ int end_that_request_first (struct request *req, int uptodate, char *name)
if ((bh = req->bh) != NULL) {
nsect = bh->b_size >> 9;
blk_finished_io(nsect);
+ blk_finished_sectors(req, nsect);
req->bh = bh->b_reqnext;
bh->b_reqnext = NULL;
bh->b_end_io(bh, uptodate);
@@ -1518,6 +1615,7 @@ EXPORT_SYMBOL(blk_init_queue);
EXPORT_SYMBOL(blk_get_queue);
EXPORT_SYMBOL(blk_cleanup_queue);
EXPORT_SYMBOL(blk_queue_headactive);
+EXPORT_SYMBOL(blk_queue_throttle_sectors);
EXPORT_SYMBOL(blk_queue_make_request);
EXPORT_SYMBOL(generic_make_request);
EXPORT_SYMBOL(blkdev_release_request);
diff --git a/xenolinux-2.4.21-sparse/drivers/char/mem.c b/xenolinux-2.4.22-sparse/drivers/char/mem.c
index bb0ab61f3f..bb0ab61f3f 100644
--- a/xenolinux-2.4.21-sparse/drivers/char/mem.c
+++ b/xenolinux-2.4.22-sparse/drivers/char/mem.c
diff --git a/xenolinux-2.4.21-sparse/drivers/char/tty_io.c b/xenolinux-2.4.22-sparse/drivers/char/tty_io.c
index 5e9e3c1d98..741fa85b26 100644
--- a/xenolinux-2.4.21-sparse/drivers/char/tty_io.c
+++ b/xenolinux-2.4.22-sparse/drivers/char/tty_io.c
@@ -146,6 +146,7 @@ extern long vme_scc_console_init(void);
extern int serial167_init(void);
extern long serial167_console_init(void);
extern void console_8xx_init(void);
+extern void au1x00_serial_console_init(void);
extern int rs_8xx_init(void);
extern void mac_scc_console_init(void);
extern void hwc_console_init(void);
@@ -158,10 +159,14 @@ extern void rs285_console_init(void);
extern void sa1100_rs_console_init(void);
extern void sgi_serial_console_init(void);
extern void sci_console_init(void);
+extern void dec_serial_console_init(void);
extern void tx3912_console_init(void);
extern void tx3912_rs_init(void);
extern void txx927_console_init(void);
+extern void txx9_rs_init(void);
+extern void txx9_serial_console_init(void);
extern void sb1250_serial_console_init(void);
+extern void arc_console_init(void);
#ifndef MIN
#define MIN(a,b) ((a) < (b) ? (a) : (b))
@@ -2246,8 +2251,8 @@ void __init console_init(void)
con_init();
#endif
-#ifdef CONFIG_AU1000_SERIAL_CONSOLE
- au1000_serial_console_init();
+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
+ au1x00_serial_console_init();
#endif
#ifdef CONFIG_SERIAL_CONSOLE
#if (defined(CONFIG_8xx) || defined(CONFIG_8260))
@@ -2264,9 +2269,6 @@ void __init console_init(void)
#elif defined(CONFIG_SERIAL)
serial_console_init();
#endif /* CONFIG_8xx */
-#ifdef CONFIG_SGI_SERIAL
- sgi_serial_console_init();
-#endif
#if defined(CONFIG_MVME162_SCC) || defined(CONFIG_BVME6000_SCC) || defined(CONFIG_MVME147_SCC)
vme_scc_console_init();
#endif
@@ -2277,6 +2279,9 @@ void __init console_init(void)
sci_console_init();
#endif
#endif
+#ifdef CONFIG_SERIAL_DEC_CONSOLE
+ dec_serial_console_init();
+#endif
#ifdef CONFIG_TN3270_CONSOLE
tub3270_con_init();
#endif
@@ -2307,9 +2312,15 @@ void __init console_init(void)
#ifdef CONFIG_TXX927_SERIAL_CONSOLE
txx927_console_init();
#endif
+#ifdef CONFIG_SERIAL_TXX9_CONSOLE
+ txx9_serial_console_init();
+#endif
#ifdef CONFIG_SIBYTE_SB1250_DUART_CONSOLE
sb1250_serial_console_init();
#endif
+#ifdef CONFIG_IP22_SERIAL
+ sgi_serial_console_init();
+#endif
}
static struct tty_driver dev_tty_driver, dev_syscons_driver;
diff --git a/xenolinux-2.4.21-sparse/fs/exec.c b/xenolinux-2.4.22-sparse/fs/exec.c
index f87ae7a71e..2201b473d3 100644
--- a/xenolinux-2.4.21-sparse/fs/exec.c
+++ b/xenolinux-2.4.22-sparse/fs/exec.c
@@ -286,6 +286,8 @@ void put_dirty_page(struct task_struct * tsk, struct page *page, unsigned long a
pgd_t * pgd;
pmd_t * pmd;
pte_t * pte;
+ struct vm_area_struct *vma;
+ pgprot_t prot = PAGE_COPY;
if (page_count(page) != 1)
printk(KERN_ERR "mem_map disagrees with %p at %08lx\n", page, address);
@@ -303,7 +305,11 @@ void put_dirty_page(struct task_struct * tsk, struct page *page, unsigned long a
lru_cache_add(page);
flush_dcache_page(page);
flush_page_to_ram(page);
- set_pte(pte, pte_mkdirty(pte_mkwrite(mk_pte(page, PAGE_COPY))));
+ /* lookup is cheap because there is only a single entry in the list */
+ vma = find_vma(tsk->mm, address);
+ if (vma)
+ prot = vma->vm_page_prot;
+ set_pte(pte, pte_mkdirty(pte_mkwrite(mk_pte(page, prot))));
XENO_flush_page_update_queue();
tsk->mm->rss++;
spin_unlock(&tsk->mm->page_table_lock);
@@ -339,8 +345,8 @@ int setup_arg_pages(struct linux_binprm *bprm)
mpnt->vm_mm = current->mm;
mpnt->vm_start = PAGE_MASK & (unsigned long) bprm->p;
mpnt->vm_end = STACK_TOP;
- mpnt->vm_page_prot = PAGE_COPY;
mpnt->vm_flags = VM_STACK_FLAGS;
+ mpnt->vm_page_prot = protection_map[VM_STACK_FLAGS & 0x7];
mpnt->vm_ops = NULL;
mpnt->vm_pgoff = 0;
mpnt->vm_file = NULL;
@@ -558,6 +564,7 @@ int flush_old_exec(struct linux_binprm * bprm)
char * name;
int i, ch, retval;
struct signal_struct * oldsig;
+ struct files_struct * files;
/*
* Make sure we have a private signal table
@@ -566,6 +573,17 @@ int flush_old_exec(struct linux_binprm * bprm)
retval = make_private_signals();
if (retval) goto flush_failed;
+ /*
+ * Make sure we have private file handles. Ask the
+ * fork helper to do the work for us and the exit
+ * helper to do the cleanup of the old one.
+ */
+
+ files = current->files; /* refcounted so safe to hold */
+ retval = unshare_files();
+ if(retval)
+ goto flush_failed;
+
/*
* Release all of the old mmap stuff
*/
@@ -573,6 +591,8 @@ int flush_old_exec(struct linux_binprm * bprm)
if (retval) goto mmap_failed;
/* This is the point of no return */
+ steal_locks(files);
+ put_files_struct(files);
release_old_signals(oldsig);
current->sas_ss_sp = current->sas_ss_size = 0;
@@ -610,6 +630,8 @@ int flush_old_exec(struct linux_binprm * bprm)
return 0;
mmap_failed:
+ put_files_struct(current->files);
+ current->files = files;
flush_failed:
spin_lock_irq(&current->sigmask_lock);
if (current->sig != oldsig) {
diff --git a/xenolinux-2.4.21-sparse/fs/partitions/Config.in b/xenolinux-2.4.22-sparse/fs/partitions/Config.in
index b9650de5c3..b9650de5c3 100644
--- a/xenolinux-2.4.21-sparse/fs/partitions/Config.in
+++ b/xenolinux-2.4.22-sparse/fs/partitions/Config.in
diff --git a/xenolinux-2.4.21-sparse/fs/partitions/Makefile b/xenolinux-2.4.22-sparse/fs/partitions/Makefile
index 097e5ca17a..097e5ca17a 100644
--- a/xenolinux-2.4.21-sparse/fs/partitions/Makefile
+++ b/xenolinux-2.4.22-sparse/fs/partitions/Makefile
diff --git a/xenolinux-2.4.21-sparse/fs/partitions/check.c b/xenolinux-2.4.22-sparse/fs/partitions/check.c
index e279aa8b93..e279aa8b93 100644
--- a/xenolinux-2.4.21-sparse/fs/partitions/check.c
+++ b/xenolinux-2.4.22-sparse/fs/partitions/check.c
diff --git a/xenolinux-2.4.21-sparse/fs/partitions/xeno.c b/xenolinux-2.4.22-sparse/fs/partitions/xeno.c
index ef48583eb9..ef48583eb9 100644
--- a/xenolinux-2.4.21-sparse/fs/partitions/xeno.c
+++ b/xenolinux-2.4.22-sparse/fs/partitions/xeno.c
diff --git a/xenolinux-2.4.21-sparse/fs/partitions/xeno.h b/xenolinux-2.4.22-sparse/fs/partitions/xeno.h
index 52cecb30cf..52cecb30cf 100644
--- a/xenolinux-2.4.21-sparse/fs/partitions/xeno.h
+++ b/xenolinux-2.4.22-sparse/fs/partitions/xeno.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/bugs.h b/xenolinux-2.4.22-sparse/include/asm-xeno/bugs.h
index c46b6a0b15..c46b6a0b15 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/bugs.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/bugs.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/desc.h b/xenolinux-2.4.22-sparse/include/asm-xeno/desc.h
index c417cbe807..c417cbe807 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/desc.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/desc.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/fixmap.h b/xenolinux-2.4.22-sparse/include/asm-xeno/fixmap.h
index 346dd730b4..590ecf9961 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/fixmap.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/fixmap.h
@@ -56,7 +56,7 @@ enum fixed_addresses {
FIX_BTMAP_END,
FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS - 1,
/* our bt_ioremap is permenant unlike other architectures */
-
+
__end_of_permanent_fixed_addresses,
__end_of_fixed_addresses = __end_of_permanent_fixed_addresses
};
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/highmem.h b/xenolinux-2.4.22-sparse/include/asm-xeno/highmem.h
index 7e56b1b32d..7e56b1b32d 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/highmem.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/highmem.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/hw_irq.h b/xenolinux-2.4.22-sparse/include/asm-xeno/hw_irq.h
index d99d15bd24..d99d15bd24 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/hw_irq.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/hw_irq.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/hypervisor.h b/xenolinux-2.4.22-sparse/include/asm-xeno/hypervisor.h
index 751bdc7888..751bdc7888 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/hypervisor.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/hypervisor.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/irq.h b/xenolinux-2.4.22-sparse/include/asm-xeno/irq.h
index 3a4a3e394f..3a4a3e394f 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/irq.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/irq.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/keyboard.h b/xenolinux-2.4.22-sparse/include/asm-xeno/keyboard.h
index 6d6461dfb9..6d6461dfb9 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/keyboard.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/keyboard.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/mmu_context.h b/xenolinux-2.4.22-sparse/include/asm-xeno/mmu_context.h
index 1eab441990..1eab441990 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/mmu_context.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/mmu_context.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/multicall.h b/xenolinux-2.4.22-sparse/include/asm-xeno/multicall.h
index f0ea5c3a66..f0ea5c3a66 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/multicall.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/multicall.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/page.h b/xenolinux-2.4.22-sparse/include/asm-xeno/page.h
index d15646fcb5..d15646fcb5 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/page.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/page.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/pgalloc.h b/xenolinux-2.4.22-sparse/include/asm-xeno/pgalloc.h
index 0f502cfcb8..9a90cb1b1d 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/pgalloc.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/pgalloc.h
@@ -253,7 +253,7 @@ struct tlb_state
{
struct mm_struct *active_mm;
int state;
-};
+} ____cacheline_aligned;
extern struct tlb_state cpu_tlbstate[NR_CPUS];
#endif /* CONFIG_SMP */
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/pgtable-2level.h b/xenolinux-2.4.22-sparse/include/asm-xeno/pgtable-2level.h
index 71ef37a830..71ef37a830 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/pgtable-2level.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/pgtable-2level.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/pgtable.h b/xenolinux-2.4.22-sparse/include/asm-xeno/pgtable.h
index 0a2482f96f..0a2482f96f 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/pgtable.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/pgtable.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/proc_cmd.h b/xenolinux-2.4.22-sparse/include/asm-xeno/proc_cmd.h
index 66308397eb..66308397eb 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/proc_cmd.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/proc_cmd.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/processor.h b/xenolinux-2.4.22-sparse/include/asm-xeno/processor.h
index 701f4ce143..0b4571a9da 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/processor.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/processor.h
@@ -81,17 +81,6 @@ extern struct cpuinfo_x86 cpu_data[];
#define current_cpu_data boot_cpu_data
#endif
-#define cpu_has_pge (test_bit(X86_FEATURE_PGE, boot_cpu_data.x86_capability))
-#define cpu_has_pse (test_bit(X86_FEATURE_PSE, boot_cpu_data.x86_capability))
-#define cpu_has_pae (test_bit(X86_FEATURE_PAE, boot_cpu_data.x86_capability))
-#define cpu_has_tsc (test_bit(X86_FEATURE_TSC, boot_cpu_data.x86_capability))
-#define cpu_has_de (test_bit(X86_FEATURE_DE, boot_cpu_data.x86_capability))
-#define cpu_has_vme (test_bit(X86_FEATURE_VME, boot_cpu_data.x86_capability))
-#define cpu_has_fxsr (test_bit(X86_FEATURE_FXSR, boot_cpu_data.x86_capability))
-#define cpu_has_xmm (test_bit(X86_FEATURE_XMM, boot_cpu_data.x86_capability))
-#define cpu_has_fpu (test_bit(X86_FEATURE_FPU, boot_cpu_data.x86_capability))
-#define cpu_has_apic (test_bit(X86_FEATURE_APIC, boot_cpu_data.x86_capability))
-
extern char ignore_irq13;
extern void identify_cpu(struct cpuinfo_x86 *);
@@ -454,7 +443,7 @@ struct microcode {
/* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */
static inline void rep_nop(void)
{
- __asm__ __volatile__("rep;nop");
+ __asm__ __volatile__("rep;nop" ::: "memory");
}
#define cpu_relax() rep_nop()
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/ptrace.h b/xenolinux-2.4.22-sparse/include/asm-xeno/ptrace.h
index 4457ac0b17..4457ac0b17 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/ptrace.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/ptrace.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/segment.h b/xenolinux-2.4.22-sparse/include/asm-xeno/segment.h
index ca13028ce0..ca13028ce0 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/segment.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/segment.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/smp.h b/xenolinux-2.4.22-sparse/include/asm-xeno/smp.h
index 804b93c332..804b93c332 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/smp.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/smp.h
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/system.h b/xenolinux-2.4.22-sparse/include/asm-xeno/system.h
index a56ab32f54..12bfe68c14 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/system.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/system.h
@@ -401,5 +401,6 @@ extern int is_sony_vaio_laptop;
#define BROKEN_ACPI_Sx 0x0001
#define BROKEN_INIT_AFTER_S1 0x0002
+#define BROKEN_PNP_BIOS 0x0004
#endif
diff --git a/xenolinux-2.4.21-sparse/include/asm-xeno/vga.h b/xenolinux-2.4.22-sparse/include/asm-xeno/vga.h
index d0624cf480..d0624cf480 100644
--- a/xenolinux-2.4.21-sparse/include/asm-xeno/vga.h
+++ b/xenolinux-2.4.22-sparse/include/asm-xeno/vga.h
diff --git a/xenolinux-2.4.21-sparse/include/linux/blk.h b/xenolinux-2.4.22-sparse/include/linux/blk.h
index 6f5a738864..6f5a738864 100644
--- a/xenolinux-2.4.21-sparse/include/linux/blk.h
+++ b/xenolinux-2.4.22-sparse/include/linux/blk.h
diff --git a/xenolinux-2.4.21-sparse/include/linux/major.h b/xenolinux-2.4.22-sparse/include/linux/major.h
index f311bd4a9d..f311bd4a9d 100644
--- a/xenolinux-2.4.21-sparse/include/linux/major.h
+++ b/xenolinux-2.4.22-sparse/include/linux/major.h
diff --git a/xenolinux-2.4.21-sparse/include/linux/sunrpc/debug.h b/xenolinux-2.4.22-sparse/include/linux/sunrpc/debug.h
index 67dbfb887e..67dbfb887e 100644
--- a/xenolinux-2.4.21-sparse/include/linux/sunrpc/debug.h
+++ b/xenolinux-2.4.22-sparse/include/linux/sunrpc/debug.h
diff --git a/xenolinux-2.4.21-sparse/init/do_mounts.c b/xenolinux-2.4.22-sparse/init/do_mounts.c
index e848a3723e..47cb8768ee 100644
--- a/xenolinux-2.4.21-sparse/init/do_mounts.c
+++ b/xenolinux-2.4.22-sparse/init/do_mounts.c
@@ -15,6 +15,7 @@
#include <linux/minix_fs.h>
#include <linux/ext2_fs.h>
#include <linux/romfs_fs.h>
+#include <linux/cramfs_fs.h>
#define BUILD_CRAMDISK
@@ -87,7 +88,7 @@ static struct dev_name_struct {
const char *name;
const int num;
} root_dev_names[] __initdata = {
- { "nfs", 0x00ff },
+ { "nfs", MKDEV(NFS_MAJOR, NFS_MINOR) },
{ "hda", 0x0300 },
{ "hdb", 0x0340 },
{ "loop", 0x0700 },
@@ -484,6 +485,7 @@ static int __init crd_load(int in_fd, int out_fd);
* minix
* ext2
* romfs
+ * cramfs
* gzip
*/
static int __init
@@ -493,6 +495,7 @@ identify_ramdisk_image(int fd, int start_block)
struct minix_super_block *minixsb;
struct ext2_super_block *ext2sb;
struct romfs_super_block *romfsb;
+ struct cramfs_super *cramfsb;
int nblocks = -1;
unsigned char *buf;
@@ -503,6 +506,7 @@ identify_ramdisk_image(int fd, int start_block)
minixsb = (struct minix_super_block *) buf;
ext2sb = (struct ext2_super_block *) buf;
romfsb = (struct romfs_super_block *) buf;
+ cramfsb = (struct cramfs_super *) buf;
memset(buf, 0xe5, size);
/*
@@ -532,6 +536,14 @@ identify_ramdisk_image(int fd, int start_block)
goto done;
}
+ if (cramfsb->magic == CRAMFS_MAGIC) {
+ printk(KERN_NOTICE
+ "RAMDISK: cramfs filesystem found at block %d\n",
+ start_block);
+ nblocks = (cramfsb->size + BLOCK_SIZE - 1) >> BLOCK_SIZE_BITS;
+ goto done;
+ }
+
/*
* Read block 1 to test for minix and ext2 superblock
*/
@@ -757,7 +769,8 @@ static void __init devfs_make_root(char *name)
static void __init mount_root(void)
{
#ifdef CONFIG_ROOT_NFS
- if (MAJOR(ROOT_DEV) == UNNAMED_MAJOR) {
+ if (MAJOR(ROOT_DEV) == NFS_MAJOR
+ && MINOR(ROOT_DEV) == NFS_MINOR) {
if (mount_nfs_root()) {
sys_chdir("/root");
ROOT_DEV = current->fs->pwdmnt->mnt_sb->s_dev;
@@ -919,6 +932,8 @@ out:
mount_devfs_fs ();
}
+#ifdef CONFIG_BLK_DEV_RAM
+
#if defined(BUILD_CRAMDISK) && defined(CONFIG_BLK_DEV_RAM)
/*
@@ -1065,3 +1080,4 @@ static int __init crd_load(int in_fd, int out_fd)
}
#endif /* BUILD_CRAMDISK && CONFIG_BLK_DEV_RAM */
+#endif /* CONFIG_BLK_DEV_RAM */
diff --git a/xenolinux-2.4.21-sparse/kernel/panic.c b/xenolinux-2.4.22-sparse/kernel/panic.c
index 90a782e6b5..90a782e6b5 100644
--- a/xenolinux-2.4.21-sparse/kernel/panic.c
+++ b/xenolinux-2.4.22-sparse/kernel/panic.c
diff --git a/xenolinux-2.4.21-sparse/kernel/printk.c b/xenolinux-2.4.22-sparse/kernel/printk.c
index 46f16f35a8..a46602ca35 100644
--- a/xenolinux-2.4.21-sparse/kernel/printk.c
+++ b/xenolinux-2.4.22-sparse/kernel/printk.c
@@ -560,7 +560,14 @@ void console_unblank(void)
{
struct console *c;
- acquire_console_sem();
+ /*
+ * Try to get the console semaphore. If someone else owns it
+ * we have to return without unblanking because console_unblank
+ * may be called in interrupt context.
+ */
+ if (down_trylock(&console_sem) != 0)
+ return;
+ console_may_schedule = 0;
for (c = console_drivers; c != NULL; c = c->next)
if ((c->flags & CON_ENABLED) && c->unblank)
c->unblank();
diff --git a/xenolinux-2.4.21-sparse/lndir-rel b/xenolinux-2.4.22-sparse/lndir-rel
index d0bd863202..d0bd863202 100755
--- a/xenolinux-2.4.21-sparse/lndir-rel
+++ b/xenolinux-2.4.22-sparse/lndir-rel
Binary files differ
diff --git a/xenolinux-2.4.21-sparse/mkbuildtree b/xenolinux-2.4.22-sparse/mkbuildtree
index 0d5581af75..0d5581af75 100755
--- a/xenolinux-2.4.21-sparse/mkbuildtree
+++ b/xenolinux-2.4.22-sparse/mkbuildtree
diff --git a/xenolinux-2.4.21-sparse/mm/memory.c b/xenolinux-2.4.22-sparse/mm/memory.c
index f06ad4b77d..f06ad4b77d 100644
--- a/xenolinux-2.4.21-sparse/mm/memory.c
+++ b/xenolinux-2.4.22-sparse/mm/memory.c
diff --git a/xenolinux-2.4.21-sparse/mm/mprotect.c b/xenolinux-2.4.22-sparse/mm/mprotect.c
index a6f355d03b..a6f355d03b 100644
--- a/xenolinux-2.4.21-sparse/mm/mprotect.c
+++ b/xenolinux-2.4.22-sparse/mm/mprotect.c
diff --git a/xenolinux-2.4.21-sparse/mm/mremap.c b/xenolinux-2.4.22-sparse/mm/mremap.c
index a452b467f7..f40f2ad005 100644
--- a/xenolinux-2.4.21-sparse/mm/mremap.c
+++ b/xenolinux-2.4.22-sparse/mm/mremap.c
@@ -179,11 +179,13 @@ static inline unsigned long move_vma(struct vm_area_struct * vma,
}
if (!move_page_tables(current->mm, new_addr, addr, old_len)) {
+ unsigned long vm_locked = vma->vm_flags & VM_LOCKED;
+
if (allocated_vma) {
*new_vma = *vma;
new_vma->vm_start = new_addr;
new_vma->vm_end = new_addr+new_len;
- new_vma->vm_pgoff += (addr - vma->vm_start) >> PAGE_SHIFT;
+ new_vma->vm_pgoff += (addr-vma->vm_start) >> PAGE_SHIFT;
new_vma->vm_raend = 0;
if (new_vma->vm_file)
get_file(new_vma->vm_file);
@@ -191,12 +193,15 @@ static inline unsigned long move_vma(struct vm_area_struct * vma,
new_vma->vm_ops->open(new_vma);
insert_vm_struct(current->mm, new_vma);
}
+
do_munmap(current->mm, addr, old_len);
+
current->mm->total_vm += new_len >> PAGE_SHIFT;
- if (new_vma->vm_flags & VM_LOCKED) {
+ if (vm_locked) {
current->mm->locked_vm += new_len >> PAGE_SHIFT;
- make_pages_present(new_vma->vm_start,
- new_vma->vm_end);
+ if (new_len > old_len)
+ make_pages_present(new_addr + old_len,
+ new_addr + new_len);
}
return new_addr;
}
diff --git a/xenolinux-2.4.21-sparse/mm/swapfile.c b/xenolinux-2.4.22-sparse/mm/swapfile.c
index 08e10b26b6..de04a376d2 100644
--- a/xenolinux-2.4.21-sparse/mm/swapfile.c
+++ b/xenolinux-2.4.22-sparse/mm/swapfile.c
@@ -522,6 +522,7 @@ static int try_to_unuse(unsigned int type)
int i = 0;
int retval = 0;
int reset_overflow = 0;
+ int shmem;
/*
* When searching mms for an entry, a good strategy is to
@@ -600,11 +601,12 @@ static int try_to_unuse(unsigned int type)
* Whenever we reach init_mm, there's no address space
* to search, but use it as a reminder to search shmem.
*/
+ shmem = 0;
swcount = *swap_map;
if (swcount > 1) {
flush_page_to_ram(page);
if (start_mm == &init_mm)
- shmem_unuse(entry, page);
+ shmem = shmem_unuse(entry, page);
else
unuse_process(start_mm, entry, page);
}
@@ -621,7 +623,9 @@ static int try_to_unuse(unsigned int type)
swcount = *swap_map;
if (mm == &init_mm) {
set_start_mm = 1;
- shmem_unuse(entry, page);
+ spin_unlock(&mmlist_lock);
+ shmem = shmem_unuse(entry, page);
+ spin_lock(&mmlist_lock);
} else
unuse_process(mm, entry, page);
if (set_start_mm && *swap_map < swcount) {
@@ -670,14 +674,23 @@ static int try_to_unuse(unsigned int type)
* read from disk into another page. Splitting into two
* pages would be incorrect if swap supported "shared
* private" pages, but they are handled by tmpfs files.
- * Note shmem_unuse already deleted its from swap cache.
+ *
+ * Note shmem_unuse already deleted swappage from cache,
+ * unless corresponding filepage found already in cache:
+ * in which case it left swappage in cache, lowered its
+ * swap count to pass quickly through the loops above,
+ * and now we must reincrement count to try again later.
*/
if ((*swap_map > 1) && PageDirty(page) && PageSwapCache(page)) {
rw_swap_page(WRITE, page);
lock_page(page);
}
- if (PageSwapCache(page))
- delete_from_swap_cache(page);
+ if (PageSwapCache(page)) {
+ if (shmem)
+ swap_duplicate(entry);
+ else
+ delete_from_swap_cache(page);
+ }
/*
* So we could skip searching mms once swap count went
diff --git a/xenolinux-2.4.21-sparse/mm/vmalloc.c b/xenolinux-2.4.22-sparse/mm/vmalloc.c
index 015cad0780..b5b4da9161 100644
--- a/xenolinux-2.4.21-sparse/mm/vmalloc.c
+++ b/xenolinux-2.4.22-sparse/mm/vmalloc.c
@@ -93,7 +93,8 @@ void vmfree_area_pages(unsigned long address, unsigned long size)
}
static inline int alloc_area_pte (pte_t * pte, unsigned long address,
- unsigned long size, int gfp_mask, pgprot_t prot)
+ unsigned long size, int gfp_mask,
+ pgprot_t prot, struct page ***pages)
{
unsigned long end;
@@ -103,9 +104,20 @@ static inline int alloc_area_pte (pte_t * pte, unsigned long address,
end = PMD_SIZE;
do {
struct page * page;
- spin_unlock(&init_mm.page_table_lock);
- page = alloc_page(gfp_mask);
- spin_lock(&init_mm.page_table_lock);
+
+ if (!pages) {
+ spin_unlock(&init_mm.page_table_lock);
+ page = alloc_page(gfp_mask);
+ spin_lock(&init_mm.page_table_lock);
+ } else {
+ page = (**pages);
+ (*pages)++;
+
+ /* Add a reference to the page so we can free later */
+ if (page)
+ atomic_inc(&page->count);
+
+ }
if (!pte_none(*pte))
printk(KERN_ERR "alloc_area_pte: page already exists\n");
if (!page)
@@ -117,7 +129,9 @@ static inline int alloc_area_pte (pte_t * pte, unsigned long address,
return 0;
}
-static inline int alloc_area_pmd(pmd_t * pmd, unsigned long address, unsigned long size, int gfp_mask, pgprot_t prot)
+static inline int alloc_area_pmd(pmd_t * pmd, unsigned long address,
+ unsigned long size, int gfp_mask,
+ pgprot_t prot, struct page ***pages)
{
unsigned long end;
@@ -129,7 +143,8 @@ static inline int alloc_area_pmd(pmd_t * pmd, unsigned long address, unsigned lo
pte_t * pte = pte_alloc(&init_mm, pmd, address);
if (!pte)
return -ENOMEM;
- if (alloc_area_pte(pte, address, end - address, gfp_mask, prot))
+ if (alloc_area_pte(pte, address, end - address,
+ gfp_mask, prot, pages))
return -ENOMEM;
address = (address + PMD_SIZE) & PMD_MASK;
pmd++;
@@ -137,8 +152,11 @@ static inline int alloc_area_pmd(pmd_t * pmd, unsigned long address, unsigned lo
return 0;
}
-inline int vmalloc_area_pages (unsigned long address, unsigned long size,
- int gfp_mask, pgprot_t prot)
+static inline int __vmalloc_area_pages (unsigned long address,
+ unsigned long size,
+ int gfp_mask,
+ pgprot_t prot,
+ struct page ***pages)
{
pgd_t * dir;
unsigned long end = address + size;
@@ -155,7 +173,7 @@ inline int vmalloc_area_pages (unsigned long address, unsigned long size,
break;
ret = -ENOMEM;
- if (alloc_area_pmd(pmd, address, end - address, gfp_mask, prot))
+ if (alloc_area_pmd(pmd, address, end - address, gfp_mask, prot, pages))
break;
address = (address + PGDIR_SIZE) & PGDIR_MASK;
@@ -168,6 +186,12 @@ inline int vmalloc_area_pages (unsigned long address, unsigned long size,
return ret;
}
+int vmalloc_area_pages(unsigned long address, unsigned long size,
+ int gfp_mask, pgprot_t prot)
+{
+ return __vmalloc_area_pages(address, size, gfp_mask, prot, NULL);
+}
+
struct vm_struct * get_vm_area(unsigned long size, unsigned long flags)
{
unsigned long addr, next;
@@ -251,7 +275,30 @@ void * __vmalloc (unsigned long size, int gfp_mask, pgprot_t prot)
if (!area)
return NULL;
addr = area->addr;
- if (vmalloc_area_pages(VMALLOC_VMADDR(addr), size, gfp_mask, prot)) {
+ if (__vmalloc_area_pages(VMALLOC_VMADDR(addr), size, gfp_mask,
+ prot, NULL)) {
+ vfree(addr);
+ return NULL;
+ }
+ return addr;
+}
+
+void * vmap(struct page **pages, int count,
+ unsigned long flags, pgprot_t prot)
+{
+ void * addr;
+ struct vm_struct *area;
+ unsigned long size = count << PAGE_SHIFT;
+
+ if (!size || size > (max_mapnr << PAGE_SHIFT))
+ return NULL;
+ area = get_vm_area(size, flags);
+ if (!area) {
+ return NULL;
+ }
+ addr = area->addr;
+ if (__vmalloc_area_pages(VMALLOC_VMADDR(addr), size, 0,
+ prot, &pages)) {
vfree(addr);
return NULL;
}