From 5167311cae6aa3a5ff5afd39f88c32a435c969ef Mon Sep 17 00:00:00 2001 From: Marc Fiuczynski Date: Tue, 8 Feb 2005 14:58:48 +0000 Subject: [PATCH] upgrade to linux 2.6.10-1.12_FC2 --- CREDITS | 22 +- Documentation/DMA-API.txt | 2 +- Documentation/DocBook/kernel-hacking.tmpl | 2 +- Documentation/DocBook/libata.tmpl | 192 +- Documentation/DocBook/mousedrivers.tmpl | 1022 ---- Documentation/DocBook/videobook.tmpl | 14 +- Documentation/devices.txt | 30 +- Documentation/digiboard.txt | 272 - Documentation/dvb/firmware.txt | 120 - Documentation/fb/vesafb.txt | 7 +- Documentation/filesystems/ntfs.txt | 180 +- Documentation/filesystems/proc.txt | 84 +- Documentation/isdn/README.eicon | 118 - Documentation/kernel-parameters.txt | 113 +- Documentation/md.txt | 23 +- Documentation/mkdev.ida | 40 - Documentation/networking/ip-sysctl.txt | 6 + Documentation/pci.txt | 21 +- Documentation/power/pci.txt | 51 +- Documentation/power/swsusp.txt | 82 +- Documentation/power/video.txt | 11 +- Documentation/scsi/scsi_mid_low_api.txt | 56 +- .../sound/alsa/ALSA-Configuration.txt | 14 +- .../alsa/DocBook/writing-an-alsa-driver.tmpl | 45 +- Documentation/sound/oss/ChangeLog.awe | 230 - Documentation/sound/oss/ChangeLog.multisound | 213 - Documentation/sysctl/vm.txt | 2 +- Documentation/sysrq.txt | 8 + Documentation/tty.txt | 5 + Documentation/usb/error-codes.txt | 43 +- Documentation/usb/w9968cf.txt | 51 +- MAINTAINERS | 116 +- Makefile | 67 +- arch/alpha/Makefile | 2 +- arch/alpha/kernel/irq.c | 2 +- arch/alpha/kernel/signal.c | 2 +- arch/alpha/kernel/smp.c | 2 +- arch/alpha/kernel/sys_dp264.c | 2 +- arch/alpha/kernel/sys_eiger.c | 2 +- arch/alpha/kernel/sys_sx164.c | 2 +- arch/alpha/kernel/time.c | 3 + arch/alpha/lib/csum_partial_copy.c | 6 +- arch/arm/Kconfig | 144 +- arch/arm/Makefile | 49 +- arch/arm/boot/Makefile | 86 +- arch/arm/boot/compressed/Makefile | 3 - arch/arm/boot/compressed/head-sa1100.S | 36 +- arch/arm/boot/compressed/head.S | 8 + arch/arm/boot/compressed/hw-bse.c | 74 - arch/arm/common/Makefile | 2 + arch/arm/common/sa1111.c | 25 +- arch/arm/configs/adsbitsy_defconfig | 661 --- arch/arm/configs/brutus_defconfig | 296 - arch/arm/configs/empeg_defconfig | 264 - arch/arm/configs/flexanet_defconfig | 895 --- arch/arm/configs/freebird_defconfig | 614 -- arch/arm/configs/freebird_new_defconfig | 634 --- arch/arm/configs/graphicsclient_defconfig | 729 --- arch/arm/configs/graphicsmaster_defconfig | 742 --- arch/arm/configs/huw_webpanel_defconfig | 434 -- arch/arm/configs/pangolin_defconfig | 739 --- arch/arm/configs/pfs168_mqtft_defconfig | 778 --- arch/arm/configs/pfs168_mqvga_defconfig | 778 --- arch/arm/configs/pfs168_sastn_defconfig | 770 --- arch/arm/configs/pfs168_satft_defconfig | 778 --- arch/arm/configs/sherman_defconfig | 215 - arch/arm/configs/stork_defconfig | 961 ---- arch/arm/configs/system3_defconfig | 962 ---- arch/arm/configs/trizeps_defconfig | 843 --- arch/arm/defconfig | 510 -- arch/arm/kernel/Makefile | 2 +- arch/arm/kernel/armksyms.c | 7 +- arch/arm/kernel/asm-offsets.c | 2 + arch/arm/kernel/bios32.c | 12 +- arch/arm/kernel/debug.S | 28 +- arch/arm/kernel/ecard.c | 41 +- arch/arm/kernel/entry-armv.S | 4 +- arch/arm/kernel/head.S | 109 +- arch/arm/kernel/irq.c | 48 +- arch/arm/kernel/process.c | 2 + arch/arm/kernel/setup.c | 31 +- arch/arm/kernel/signal.c | 211 +- arch/arm/kernel/sys_arm.c | 20 +- arch/arm/kernel/time.c | 68 +- arch/arm/kernel/traps.c | 23 +- arch/arm/lib/io-readsl-armv3.S | 78 - arch/arm/lib/io-readsl-armv4.S | 132 - arch/arm/mach-clps711x/autcpu12.c | 6 +- arch/arm/mach-clps711x/cdb89712.c | 14 +- arch/arm/mach-clps711x/ceiva.c | 5 +- arch/arm/mach-clps711x/clep7312.c | 6 +- arch/arm/mach-clps711x/edb7211-arch.c | 6 +- arch/arm/mach-clps711x/fortunet.c | 6 +- arch/arm/mach-clps711x/p720t.c | 6 +- arch/arm/mach-clps711x/time.c | 10 +- arch/arm/mach-clps7500/core.c | 65 +- arch/arm/mach-ebsa110/core.c | 51 +- arch/arm/mach-ebsa110/io.c | 58 +- arch/arm/mach-epxa10db/arch.c | 35 +- arch/arm/mach-epxa10db/time.c | 7 +- arch/arm/mach-footbridge/Makefile | 13 +- arch/arm/mach-footbridge/arch.c | 149 - arch/arm/mach-footbridge/irq.c | 111 - arch/arm/mach-footbridge/mm.c | 103 - arch/arm/mach-integrator/core.c | 11 +- arch/arm/mach-integrator/integrator_ap.c | 11 +- arch/arm/mach-integrator/integrator_cp.c | 11 +- arch/arm/mach-iop3xx/arch.c | 50 - arch/arm/mach-iop3xx/iop321-mm.c | 43 - arch/arm/mach-iop3xx/iop321-time.c | 62 +- arch/arm/mach-iop3xx/iop331-mm.c | 43 - arch/arm/mach-iop3xx/mm-321.c | 63 - arch/arm/mach-lh7a40x/arch-kev7a400.c | 8 +- arch/arm/mach-lh7a40x/arch-lpd7a40x.c | 14 +- arch/arm/mach-omap/Makefile | 6 +- arch/arm/mach-omap/board-generic.c | 35 +- arch/arm/mach-omap/board-innovator.c | 42 +- arch/arm/mach-omap/board-osk.c | 24 +- arch/arm/mach-omap/board-perseus2.c | 8 +- arch/arm/mach-omap/clocks.c | 705 --- arch/arm/mach-omap/common.h | 6 +- arch/arm/mach-omap/dma.c | 388 +- arch/arm/mach-omap/gpio.c | 22 +- arch/arm/mach-omap/irq.c | 10 +- arch/arm/mach-pxa/generic.c | 7 +- arch/arm/mach-pxa/generic.h | 4 +- arch/arm/mach-pxa/idp.c | 2 +- arch/arm/mach-pxa/lubbock.c | 20 +- arch/arm/mach-pxa/pm.c | 25 +- arch/arm/mach-rpc/riscpc.c | 101 +- arch/arm/mach-s3c2410/Kconfig | 48 + arch/arm/mach-s3c2410/Makefile | 6 +- arch/arm/mach-s3c2410/mach-bast.c | 94 +- arch/arm/mach-s3c2410/mach-h1940.c | 20 +- arch/arm/mach-s3c2410/mach-vr1000.c | 67 +- arch/arm/mach-s3c2410/s3c2410.c | 96 +- arch/arm/mach-s3c2410/s3c2410.h | 22 +- arch/arm/mach-sa1100/Kconfig | 174 +- arch/arm/mach-sa1100/Makefile | 46 +- arch/arm/mach-sa1100/adsbitsy.c | 151 - arch/arm/mach-sa1100/assabet.c | 120 +- arch/arm/mach-sa1100/badge4.c | 47 +- arch/arm/mach-sa1100/brutus.c | 41 - arch/arm/mach-sa1100/cerf.c | 64 +- arch/arm/mach-sa1100/empeg.c | 39 - arch/arm/mach-sa1100/flexanet.c | 188 - arch/arm/mach-sa1100/freebird.c | 81 - arch/arm/mach-sa1100/generic.c | 59 +- arch/arm/mach-sa1100/generic.h | 13 +- arch/arm/mach-sa1100/graphicsclient.c | 202 - arch/arm/mach-sa1100/graphicsmaster.c | 291 - arch/arm/mach-sa1100/h3600.c | 107 +- arch/arm/mach-sa1100/hackkit.c | 70 +- arch/arm/mach-sa1100/huw_webpanel.c | 85 - arch/arm/mach-sa1100/itsy.c | 41 - arch/arm/mach-sa1100/jornada720.c | 2 +- arch/arm/mach-sa1100/lart.c | 4 +- arch/arm/mach-sa1100/leds-adsbitsy.c | 96 - arch/arm/mach-sa1100/leds-brutus.c | 111 - arch/arm/mach-sa1100/leds-flexanet.c | 129 - arch/arm/mach-sa1100/leds-graphicsclient.c | 104 - arch/arm/mach-sa1100/leds-graphicsmaster.c | 104 - arch/arm/mach-sa1100/leds-pfs168.c | 99 - arch/arm/mach-sa1100/leds-system3.c | 48 - arch/arm/mach-sa1100/nanoengine.c | 53 - arch/arm/mach-sa1100/omnimeter.c | 63 - arch/arm/mach-sa1100/pangolin.c | 44 - arch/arm/mach-sa1100/pfs168.c | 116 - arch/arm/mach-sa1100/pleb.c | 121 +- arch/arm/mach-sa1100/shannon.c | 40 +- arch/arm/mach-sa1100/sherman.c | 31 - arch/arm/mach-sa1100/simpad.c | 151 +- arch/arm/mach-sa1100/stork.c | 348 -- arch/arm/mach-sa1100/system3.c | 474 -- arch/arm/mach-sa1100/trizeps.c | 232 - arch/arm/mach-sa1100/xp860.c | 93 - arch/arm/mach-sa1100/yopy.c | 95 - arch/arm/mach-shark/core.c | 51 +- arch/arm/mach-versatile/Makefile | 2 + arch/arm/mach-versatile/core.c | 210 +- arch/arm/mm/Kconfig | 25 +- arch/arm/mm/init.c | 8 +- arch/arm/mm/ioremap.c | 6 +- arch/arm/mm/mm-armv.c | 69 +- arch/arm/mm/proc-xscale.S | 21 + arch/arm/tools/mach-types | 25 +- arch/cris/Makefile | 4 +- arch/cris/arch-v10/drivers/Kconfig | 39 +- arch/cris/arch-v10/drivers/Makefile | 4 - arch/cris/arch-v10/drivers/axisflashmap.c | 61 +- arch/cris/arch-v10/drivers/ds1302.c | 5 +- arch/cris/arch-v10/drivers/ethernet.c | 1789 ------ arch/cris/arch-v10/drivers/gpio.c | 5 +- arch/cris/arch-v10/drivers/i2c.c | 18 +- arch/cris/arch-v10/drivers/ide.c | 945 --- arch/cris/arch-v10/drivers/pcf8563.c | 4 +- arch/cris/arch-v10/drivers/serial.c | 5042 ----------------- arch/cris/arch-v10/drivers/serial.h | 137 - arch/cris/arch-v10/kernel/debugport.c | 468 +- arch/cris/arch-v10/kernel/entry.S | 139 +- arch/cris/arch-v10/kernel/process.c | 24 +- arch/cris/arch-v10/kernel/ptrace.c | 44 +- arch/cris/arch-v10/kernel/signal.c | 28 +- arch/cris/arch-v10/kernel/time.c | 6 +- arch/cris/arch-v10/mm/fault.c | 104 +- arch/cris/arch-v10/mm/tlb.c | 20 +- arch/cris/kernel/irq.c | 2 +- arch/h8300/kernel/setup.c | 2 +- arch/h8300/kernel/signal.c | 420 +- arch/h8300/kernel/vmlinux.lds.S | 146 +- arch/h8300/platform/h8300h/aki3068net/ram.ld | 11 - arch/h8300/platform/h8300h/entry.S | 6 +- arch/h8300/platform/h8300h/generic/ram.ld | 11 - arch/h8300/platform/h8300h/generic/rom.ld | 12 - arch/h8300/platform/h8300h/h8max/ram.ld | 11 - arch/h8300/platform/h8s/edosk2674/ram.ld | 10 - arch/h8300/platform/h8s/edosk2674/rom.ld | 11 - arch/h8300/platform/h8s/entry.S | 6 +- arch/h8300/platform/h8s/generic/ram.ld | 8 - arch/h8300/platform/h8s/generic/rom.ld | 11 - arch/i386/Kconfig | 69 +- arch/i386/Kconfig.debug | 74 - arch/i386/Makefile | 13 +- arch/i386/defconfig | 1 + arch/i386/kernel/Makefile | 5 +- arch/i386/kernel/acpi/boot.c | 67 +- arch/i386/kernel/acpi/sleep.c | 2 +- arch/i386/kernel/acpi/wakeup.S | 25 + arch/i386/kernel/apic.c | 125 +- arch/i386/kernel/apm.c | 18 +- arch/i386/kernel/cpu/cpufreq/Makefile | 33 +- arch/i386/kernel/cpu/cpufreq/acpi.c | 518 -- arch/i386/kernel/cpu/cpufreq/gx-suspmod.c | 19 +- arch/i386/kernel/cpu/cpufreq/longhaul.c | 34 +- arch/i386/kernel/cpu/cpufreq/longrun.c | 13 +- arch/i386/kernel/cpu/cpufreq/p4-clockmod.c | 53 +- arch/i386/kernel/cpu/cpufreq/powernow-k7.c | 72 +- arch/i386/kernel/cpu/cpufreq/powernow-k8.c | 122 +- arch/i386/kernel/cpu/cpufreq/powernow-k8.h | 6 +- .../kernel/cpu/cpufreq/speedstep-centrino.c | 93 +- arch/i386/kernel/cpu/cpufreq/speedstep-ich.c | 107 +- arch/i386/kernel/cpu/cpufreq/speedstep-smi.c | 77 +- arch/i386/kernel/cpu/mcheck/k7.c | 2 +- arch/i386/kernel/cpu/mcheck/p4.c | 6 +- arch/i386/kernel/cpu/mcheck/p5.c | 2 +- arch/i386/kernel/cpu/mcheck/p6.c | 2 +- arch/i386/kernel/cpu/mcheck/winchip.c | 2 +- arch/i386/kernel/cpu/proc.c | 2 +- arch/i386/kernel/dmi_scan.c | 71 - arch/i386/kernel/entry.S | 87 +- arch/i386/kernel/i386_ksyms.c | 6 +- arch/i386/kernel/i387.c | 5 +- arch/i386/kernel/i8259.c | 14 +- arch/i386/kernel/io_apic.c | 47 +- arch/i386/kernel/irq.c | 1273 +---- arch/i386/kernel/machine_kexec.c | 208 - arch/i386/kernel/microcode.c | 33 +- arch/i386/kernel/mpparse.c | 24 +- arch/i386/kernel/nmi.c | 1 + arch/i386/kernel/numaq.c | 1 + arch/i386/kernel/process.c | 18 +- arch/i386/kernel/ptrace.c | 93 +- arch/i386/kernel/reboot.c | 98 +- arch/i386/kernel/relocate_kernel.S | 118 - arch/i386/kernel/scx200.c | 67 +- arch/i386/kernel/signal.c | 41 +- arch/i386/kernel/smp.c | 55 +- arch/i386/kernel/srat.c | 1 + arch/i386/kernel/time_hpet.c | 68 +- arch/i386/kernel/timers/timer.c | 16 +- arch/i386/kernel/timers/timer_none.c | 6 - arch/i386/kernel/timers/timer_pm.c | 7 +- arch/i386/kernel/timers/timer_tsc.c | 18 +- arch/i386/kernel/traps.c | 70 +- arch/i386/kernel/vm86.c | 11 +- arch/i386/kernel/vsyscall-sysenter.S | 2 +- arch/i386/mach-default/topology.c | 1 + arch/i386/mach-es7000/es7000.h | 7 - arch/i386/mach-voyager/voyager_basic.c | 2 +- arch/i386/mach-voyager/voyager_smp.c | 50 +- arch/i386/mm/discontig.c | 3 +- arch/i386/mm/fault.c | 4 +- arch/i386/mm/hugetlbpage.c | 1 + arch/i386/mm/init.c | 50 +- arch/i386/mm/pageattr.c | 1 - arch/i386/mm/pgtable.c | 11 +- arch/i386/pci/acpi.c | 30 +- arch/i386/pci/changelog | 62 - arch/i386/pci/fixup.c | 52 +- arch/i386/pci/irq.c | 49 +- arch/i386/pci/mmconfig.c | 7 + arch/i386/power/cpu.c | 2 +- arch/ia64/Makefile | 7 +- arch/ia64/configs/generic_defconfig | 1123 ---- arch/ia64/configs/sn2_defconfig | 58 +- arch/ia64/defconfig | 655 +-- arch/ia64/hp/common/sba_iommu.c | 3 +- arch/ia64/ia32/ia32_entry.S | 16 +- arch/ia64/ia32/ia32priv.h | 4 + arch/ia64/kernel/Makefile | 2 +- arch/ia64/kernel/acpi.c | 1 + arch/ia64/kernel/efi.c | 35 +- arch/ia64/kernel/entry.S | 8 +- arch/ia64/kernel/ia64_ksyms.c | 4 +- arch/ia64/kernel/irq.c | 7 +- arch/ia64/kernel/irq_ia64.c | 2 +- arch/ia64/kernel/ivt.S | 31 +- arch/ia64/kernel/mca.c | 5 +- arch/ia64/kernel/perfmon.c | 115 +- arch/ia64/kernel/process.c | 34 +- arch/ia64/kernel/ptrace.c | 31 +- arch/ia64/kernel/setup.c | 54 +- arch/ia64/kernel/signal.c | 8 +- arch/ia64/kernel/smp.c | 62 +- arch/ia64/kernel/smpboot.c | 2 +- arch/ia64/kernel/sys_ia64.c | 2 +- arch/ia64/kernel/time.c | 25 +- arch/ia64/kernel/traps.c | 6 + arch/ia64/kernel/unwind.c | 81 +- arch/ia64/mm/contig.c | 3 + arch/ia64/mm/discontig.c | 10 +- arch/ia64/mm/fault.c | 4 +- arch/ia64/mm/init.c | 94 +- arch/ia64/pci/pci.c | 131 +- arch/m68k/Kconfig | 21 +- arch/m68k/Makefile | 2 +- arch/m68k/defconfig | 580 +- arch/m68k/hp300/ints.c | 9 +- arch/m68k/kernel/bios32.c | 6 +- arch/m68k/kernel/entry.S | 47 + arch/m68k/kernel/head.S | 194 +- arch/m68k/kernel/setup.c | 25 +- arch/m68k/kernel/vmlinux-std.lds | 4 +- arch/m68k/kernel/vmlinux-sun3.lds | 4 +- arch/m68k/mm/memory.c | 2 +- arch/m68k/mm/motorola.c | 2 +- arch/m68k/mm/sun3mmu.c | 1 - arch/m68k/q40/config.c | 1 - arch/m68k/q40/q40ints.c | 1 - arch/m68k/sun3/mmu_emu.c | 5 +- arch/m68k/sun3/sun3dvma.c | 1 + arch/m68k/sun3/sun3ints.c | 4 + arch/m68k/sun3x/config.c | 3 +- arch/m68knommu/Kconfig | 118 +- arch/m68knommu/kernel/setup.c | 9 +- .../platform/5282/MOTOROLA/crt0_ram.S | 171 - arch/m68knommu/platform/5282/Makefile | 21 - arch/m68knommu/platform/5282/config.c | 82 - arch/m68knommu/platform/5282/pit.c | 87 - .../m68knommu/platform/5282/senTec/crt0_ram.S | 180 - arch/mips/Kconfig | 142 +- arch/mips/Makefile | 290 +- arch/mips/au1000/common/Makefile | 9 +- arch/mips/au1000/common/setup.c | 83 +- arch/mips/baget/Makefile | 53 - arch/mips/baget/baget.c | 96 - arch/mips/baget/bagetIRQ.S | 96 - arch/mips/baget/balo.c | 190 - arch/mips/baget/balo_supp.S | 142 - arch/mips/baget/irq.c | 407 -- arch/mips/baget/ld.script.balo | 125 - arch/mips/baget/print.c | 116 - arch/mips/baget/prom/Makefile | 5 - arch/mips/baget/prom/init.c | 32 - arch/mips/baget/reset.c | 32 - arch/mips/baget/setup.c | 489 -- arch/mips/baget/time.c | 105 - arch/mips/boot/Makefile | 18 +- arch/mips/configs/atlas_defconfig | 68 +- arch/mips/configs/bosporus_defconfig | 671 --- arch/mips/configs/capcella_defconfig | 64 +- arch/mips/configs/cobalt_defconfig | 63 +- arch/mips/configs/db1000_defconfig | 101 +- arch/mips/configs/db1100_defconfig | 101 +- arch/mips/configs/db1500_defconfig | 290 +- arch/mips/configs/ddb5476_defconfig | 65 +- arch/mips/configs/ddb5477_defconfig | 64 +- arch/mips/configs/decstation_defconfig | 67 +- arch/mips/configs/e55_defconfig | 65 +- arch/mips/configs/ev64120_defconfig | 64 +- arch/mips/configs/ev96100_defconfig | 66 +- arch/mips/configs/ip22_defconfig | 148 +- arch/mips/configs/ip27_defconfig | 149 +- arch/mips/configs/ip32_defconfig | 68 +- arch/mips/configs/it8172_defconfig | 83 +- arch/mips/configs/ivr_defconfig | 64 +- arch/mips/configs/jaguar-atx_defconfig | 60 +- arch/mips/configs/jmr3927_defconfig | 66 +- arch/mips/configs/lasat200_defconfig | 79 +- arch/mips/configs/malta_defconfig | 65 +- arch/mips/configs/mirage_defconfig | 671 --- arch/mips/configs/mpc30x_defconfig | 69 +- arch/mips/configs/mtx1_defconfig | 671 --- arch/mips/configs/ocelot_c_defconfig | 61 +- arch/mips/configs/ocelot_defconfig | 65 +- arch/mips/configs/osprey_defconfig | 65 +- arch/mips/configs/pb1000_defconfig | 671 --- arch/mips/configs/pb1100_defconfig | 196 +- arch/mips/configs/pb1500_defconfig | 105 +- arch/mips/configs/pb1550_defconfig | 102 +- arch/mips/configs/rm200_defconfig | 158 +- arch/mips/configs/sb1250-swarm_defconfig | 77 +- arch/mips/configs/sead_defconfig | 62 +- arch/mips/configs/tb0226_defconfig | 70 +- arch/mips/configs/tb0229_defconfig | 62 +- arch/mips/configs/workpad_defconfig | 65 +- arch/mips/configs/xxs1500_defconfig | 671 --- arch/mips/configs/yosemite_defconfig | 79 +- arch/mips/ddb5xxx/common/irq.c | 47 - arch/mips/ddb5xxx/ddb5074/irq.c | 10 +- arch/mips/ddb5xxx/ddb5476/irq.c | 2 +- arch/mips/ddb5xxx/ddb5477/irq.c | 5 +- arch/mips/defconfig | 148 +- arch/mips/gt64120/common/time.c | 4 +- arch/mips/hp-lj/Makefile | 26 - arch/mips/hp-lj/asic.c | 28 - arch/mips/hp-lj/gdb_hook.c | 99 - arch/mips/hp-lj/init.c | 50 - arch/mips/hp-lj/int-handler.S | 70 - arch/mips/hp-lj/irq.c | 37 - arch/mips/hp-lj/setup.c | 150 - arch/mips/hp-lj/utils.c | 69 - arch/mips/hp-lj/utils.h | 19 - arch/mips/jmr3927/rbhma3100/irq.c | 24 +- arch/mips/kernel/cpu-bugs64.c | 5 +- arch/mips/kernel/cpu-probe.c | 1 + arch/mips/kernel/entry.S | 5 + arch/mips/kernel/irixelf.c | 47 +- arch/mips/kernel/irixsig.c | 27 +- arch/mips/kernel/irq-mv6434x.c | 2 +- arch/mips/kernel/irq.c | 851 +-- arch/mips/kernel/process.c | 57 +- arch/mips/kernel/scall32-o32.S | 19 +- arch/mips/kernel/scall64-64.S | 43 +- arch/mips/kernel/scall64-n32.S | 29 +- arch/mips/kernel/scall64-o32.S | 680 ++- arch/mips/kernel/semaphore.c | 72 +- arch/mips/kernel/setup.c | 142 +- arch/mips/kernel/signal.c | 48 +- arch/mips/kernel/signal32.c | 93 +- arch/mips/kernel/signal_n32.c | 2 +- arch/mips/kernel/smp.c | 2 +- arch/mips/kernel/syscall.c | 9 +- arch/mips/kernel/sysirix.c | 43 +- arch/mips/kernel/time.c | 36 +- arch/mips/kernel/traps.c | 37 +- arch/mips/mm/Makefile | 25 +- arch/mips/mm/tlb-sb1.c | 29 +- arch/mips/mm/tlbex64-r4k.S | 203 - arch/mips/momentum/jaguar_atx/irq.c | 3 +- arch/mips/momentum/jaguar_atx/setup.c | 3 +- arch/mips/momentum/ocelot_c/irq.c | 11 +- arch/mips/momentum/ocelot_g/gt-irq.c | 4 +- arch/mips/pci/Makefile | 4 +- arch/mips/pci/fixup-au1000.c | 8 +- arch/mips/pci/fixup-capcella.c | 6 + arch/mips/pci/fixup-lasat.c | 6 - arch/mips/pci/fixup-tb0226.c | 6 + arch/mips/pci/fixup-yosemite.c | 6 + arch/mips/pci/ops-au1000.c | 16 +- arch/mips/pci/ops-titan.c | 23 +- arch/mips/pci/pci-hplj.c | 204 - arch/mips/pci/pci-ocelot-c.c | 3 +- arch/mips/pci/pci-ocelot-g.c | 3 +- arch/mips/pci/pci-vr41xx.c | 2 +- arch/mips/pci/pci.c | 6 +- arch/mips/pmc-sierra/yosemite/Makefile | 1 + arch/mips/pmc-sierra/yosemite/irq-handler.S | 26 +- arch/mips/pmc-sierra/yosemite/irq.c | 11 +- arch/mips/pmc-sierra/yosemite/prom.c | 18 +- arch/mips/pmc-sierra/yosemite/setup.c | 4 +- arch/mips/ramdisk/Makefile | 20 - arch/mips/ramdisk/ld.script | 9 - arch/mips/sgi-ip22/ip22-setup.c | 24 +- arch/mips/sgi-ip27/ip27-hubio.c | 5 +- arch/mips/sgi-ip32/ip32-irq.c | 69 +- arch/mips/sibyte/sb1250/irq.c | 25 +- arch/mips/sibyte/sb1250/irq_handler.S | 4 +- arch/mips/tx4927/common/tx4927_irq.c | 124 +- .../toshiba_rbtx4927/toshiba_rbtx4927_irq.c | 13 +- arch/mips/vr4181/common/irq.c | 12 +- arch/mips/vr41xx/common/icu.c | 5 +- arch/mips/vr41xx/common/vrc4173.c | 5 +- arch/parisc/Makefile | 17 +- arch/parisc/configs/a500_defconfig | 38 +- arch/parisc/kernel/Makefile | 7 +- arch/parisc/kernel/asm-offsets.c | 4 + arch/parisc/kernel/cache.c | 21 + arch/parisc/kernel/entry.S | 122 +- arch/parisc/kernel/firmware.c | 2 +- arch/parisc/kernel/head.S | 220 +- arch/parisc/kernel/head64.S | 327 -- arch/parisc/kernel/pacache.S | 6 +- arch/parisc/kernel/pci-dma.c | 4 + arch/parisc/kernel/process.c | 5 +- arch/parisc/kernel/ptrace.c | 4 + arch/parisc/kernel/real2.S | 4 +- arch/parisc/kernel/signal.c | 31 +- arch/parisc/kernel/smp.c | 14 +- arch/parisc/kernel/sys_parisc.c | 8 + arch/parisc/kernel/sys_parisc32.c | 5 +- arch/parisc/kernel/syscall.S | 373 +- arch/parisc/kernel/syscall_table.S | 63 +- arch/parisc/kernel/traps.c | 123 +- arch/parisc/lib/bitops.c | 24 +- arch/parisc/mm/init.c | 21 +- arch/ppc/4xx_io/serial_sicc.c | 71 +- arch/ppc/8260_io/enet.c | 2 +- arch/ppc/8260_io/fcc_enet.c | 2 +- arch/ppc/8xx_io/commproc.c | 267 +- arch/ppc/8xx_io/enet.c | 12 +- arch/ppc/8xx_io/uart.c | 3012 ---------- arch/ppc/Kconfig | 47 +- arch/ppc/boot/simple/Makefile | 2 +- arch/ppc/boot/simple/embed_config.c | 33 +- arch/ppc/kernel/Makefile | 3 +- arch/ppc/kernel/cputable.c | 1342 +++-- arch/ppc/kernel/head_44x.S | 58 +- arch/ppc/kernel/head_4xx.S | 46 +- arch/ppc/kernel/irq.c | 529 +- arch/ppc/kernel/machine_kexec.c | 132 - arch/ppc/kernel/misc.S | 9 +- arch/ppc/kernel/ppc-stub.c | 20 +- arch/ppc/kernel/ppc_ksyms.c | 12 +- arch/ppc/kernel/process.c | 21 +- arch/ppc/kernel/ptrace.c | 9 +- arch/ppc/kernel/relocate_kernel.S | 127 - arch/ppc/kernel/setup.c | 4 + arch/ppc/kernel/signal.c | 14 +- arch/ppc/kernel/time.c | 3 + arch/ppc/kernel/traps.c | 24 +- arch/ppc/mm/pgtable.c | 12 +- arch/ppc/platforms/4xx/Kconfig | 22 +- arch/ppc/platforms/4xx/Makefile | 2 + arch/ppc/platforms/4xx/ebony.c | 32 +- arch/ppc/platforms/4xx/ocotea.c | 65 +- arch/ppc/platforms/pmac_cpufreq.c | 29 +- arch/ppc/platforms/pmac_feature.c | 16 +- arch/ppc/platforms/pmac_pic.c | 40 +- arch/ppc/platforms/pmac_setup.c | 2 +- arch/ppc/platforms/pplus.c | 9 +- arch/ppc/platforms/sandpoint.c | 135 +- arch/ppc/platforms/sbc82xx.c | 12 +- arch/ppc/syslib/Makefile | 11 +- arch/ppc/syslib/m8260_setup.c | 7 +- arch/ppc/syslib/m8xx_setup.c | 65 +- arch/ppc/syslib/mpc10x_common.c | 13 +- arch/ppc/syslib/open_pic.c | 26 +- arch/ppc/syslib/ppc405_pci.c | 4 +- arch/ppc/syslib/prom_init.c | 2 +- arch/ppc64/Kconfig | 32 + arch/ppc64/Makefile | 7 +- arch/ppc64/boot/Makefile | 2 +- arch/ppc64/boot/main.c | 2 +- arch/ppc64/kernel/LparData.c | 7 +- arch/ppc64/kernel/Makefile | 19 +- arch/ppc64/kernel/asm-offsets.c | 1 + arch/ppc64/kernel/bitops.c | 2 +- arch/ppc64/kernel/cpu_setup_power4.S | 9 + arch/ppc64/kernel/dma.c | 20 + arch/ppc64/kernel/eeh.c | 276 +- arch/ppc64/kernel/entry.S | 2 +- arch/ppc64/kernel/head.S | 76 +- arch/ppc64/kernel/iSeries_IoMmTable.c | 169 - arch/ppc64/kernel/iSeries_IoMmTable.h | 85 - arch/ppc64/kernel/iSeries_pci.c | 206 +- arch/ppc64/kernel/iSeries_proc.c | 1 + arch/ppc64/kernel/iSeries_setup.c | 9 +- arch/ppc64/kernel/idle.c | 8 +- arch/ppc64/kernel/iommu.c | 35 +- arch/ppc64/kernel/irq.c | 506 +- arch/ppc64/kernel/lparcfg.c | 14 +- arch/ppc64/kernel/mf_proc.c | 250 - arch/ppc64/kernel/misc.S | 36 +- arch/ppc64/kernel/open_pic.c | 886 --- arch/ppc64/kernel/open_pic.h | 42 - arch/ppc64/kernel/open_pic_defs.h | 283 - arch/ppc64/kernel/open_pic_u3.c | 348 -- arch/ppc64/kernel/pSeries_lpar.c | 16 + arch/ppc64/kernel/pSeries_pci.c | 379 +- arch/ppc64/kernel/pacaData.c | 6 +- arch/ppc64/kernel/pci.c | 351 +- arch/ppc64/kernel/pci.h | 13 +- arch/ppc64/kernel/pci_dn.c | 91 +- arch/ppc64/kernel/pmac_smp.c | 200 +- arch/ppc64/kernel/ppc_ksyms.c | 2 +- arch/ppc64/kernel/process.c | 8 +- arch/ppc64/kernel/prom.c | 45 +- arch/ppc64/kernel/ras.c | 2 +- arch/ppc64/kernel/rtas-proc.c | 2 +- arch/ppc64/kernel/rtas.c | 61 +- arch/ppc64/kernel/rtas_flash.c | 4 +- arch/ppc64/kernel/rtasd.c | 19 +- arch/ppc64/kernel/rtc.c | 25 +- arch/ppc64/kernel/setup.c | 270 +- arch/ppc64/kernel/signal.c | 39 +- arch/ppc64/kernel/signal32.c | 52 +- arch/ppc64/kernel/smp.c | 550 +- arch/ppc64/kernel/sys_ppc32.c | 23 +- arch/ppc64/kernel/sysfs.c | 26 +- arch/ppc64/kernel/time.c | 20 +- arch/ppc64/kernel/traps.c | 3 + arch/ppc64/kernel/udbg.c | 120 +- arch/ppc64/kernel/vio.c | 19 +- arch/ppc64/kernel/viopath.c | 4 +- arch/ppc64/kernel/xics.c | 54 +- arch/ppc64/lib/Makefile | 1 + arch/ppc64/mm/hash_utils.c | 12 +- arch/ppc64/mm/hugetlbpage.c | 426 +- arch/ppc64/mm/init.c | 56 +- arch/ppc64/mm/numa.c | 36 +- arch/ppc64/oprofile/common.c | 5 + arch/ppc64/oprofile/op_model_power4.c | 44 +- arch/ppc64/xmon/xmon.c | 150 +- arch/s390/Makefile | 12 + arch/s390/boot/Makefile | 4 +- arch/s390/defconfig | 43 +- arch/s390/kernel/binfmt_elf32.c | 2 +- arch/s390/kernel/compat_linux.c | 2 + arch/s390/kernel/compat_wrapper.S | 16 +- arch/s390/kernel/debug.c | 77 +- arch/s390/kernel/entry.S | 3 + arch/s390/kernel/entry64.S | 3 + arch/s390/kernel/process.c | 3 +- arch/s390/kernel/ptrace.c | 5 +- arch/s390/kernel/syscalls.S | 3 +- arch/s390/kernel/time.c | 11 +- arch/s390/kernel/traps.c | 81 +- arch/sh/Kconfig | 95 +- arch/sh/Makefile | 63 +- arch/sh/drivers/dma/dma-api.c | 6 +- arch/sh/drivers/pci/Makefile | 2 +- arch/sh/drivers/pci/pci-auto.c | 2 + arch/sh/drivers/pci/pci-sh7751.c | 7 +- arch/sh/drivers/pci/pci.c | 2 + arch/sh/kernel/cpu/init.c | 10 +- arch/sh/kernel/cpu/irq_ipr.c | 10 +- arch/sh/kernel/cpu/sh4/sq.c | 31 +- arch/sh/kernel/entry.S | 6 + arch/sh/kernel/irq.c | 2 +- arch/sh/kernel/process.c | 16 +- arch/sh/kernel/setup.c | 3 +- arch/sh/kernel/sh_ksyms.c | 18 +- arch/sh/kernel/time.c | 253 +- arch/sh/kernel/traps.c | 4 +- arch/sh/mm/cache-sh3.c | 75 +- arch/sh/mm/cache-sh4.c | 129 +- arch/sh/mm/consistent.c | 4 + arch/sh/mm/tlb-sh3.c | 10 + arch/sh/tools/mach-types | 4 + arch/sh/tools/machgen.sh | 71 - arch/sparc/Kconfig | 29 +- arch/sparc/kernel/apc.c | 8 +- arch/sparc/kernel/ebus.c | 6 +- arch/sparc/kernel/ioport.c | 24 +- arch/sparc/kernel/process.c | 11 +- arch/sparc/kernel/signal.c | 2 +- arch/sparc/kernel/sys_sunos.c | 4 +- arch/sparc/kernel/systbls.S | 3 +- arch/sparc/kernel/time.c | 8 +- arch/sparc/mm/io-unit.c | 2 +- arch/sparc/mm/iommu.c | 1 + arch/sparc64/Kconfig | 13 +- arch/sparc64/Makefile | 2 +- arch/sparc64/defconfig | 170 +- arch/sparc64/kernel/binfmt_aout32.c | 6 +- arch/sparc64/kernel/entry.S | 4 +- arch/sparc64/kernel/pci.c | 2 +- arch/sparc64/kernel/process.c | 4 +- arch/sparc64/kernel/signal.c | 2 +- arch/sparc64/kernel/signal32.c | 2 +- arch/sparc64/kernel/smp.c | 9 - arch/sparc64/kernel/sparc64_ksyms.c | 2 +- arch/sparc64/kernel/sys32.S | 6 +- arch/sparc64/kernel/sys_sparc32.c | 2 + arch/sparc64/kernel/sys_sunos32.c | 4 +- arch/sparc64/kernel/systbls.S | 16 +- arch/sparc64/kernel/time.c | 12 +- arch/sparc64/kernel/unaligned.c | 2 +- arch/sparc64/lib/Makefile | 4 +- arch/sparc64/lib/find_bit.c | 2 +- arch/sparc64/mm/fault.c | 22 +- arch/sparc64/mm/init.c | 1 + arch/sparc64/solaris/fs.c | 16 +- arch/um/Kconfig | 55 +- arch/um/Kconfig_block | 34 +- arch/um/Makefile | 27 +- arch/um/Makefile-i386 | 1 + arch/um/defconfig | 171 +- arch/um/drivers/chan_user.c | 18 +- arch/um/drivers/cow_user.c | 42 +- arch/um/drivers/line.c | 29 +- arch/um/drivers/mconsole_kern.c | 66 + arch/um/drivers/mmapper_kern.c | 4 +- arch/um/drivers/net_kern.c | 1 + arch/um/drivers/port_kern.c | 1 + arch/um/drivers/ssl.c | 6 +- arch/um/drivers/stdio_console.c | 4 +- arch/um/drivers/xterm_kern.c | 1 + arch/um/include/irq_user.h | 2 +- arch/um/include/kern_util.h | 5 +- arch/um/include/line.h | 3 +- arch/um/include/mem_user.h | 1 + arch/um/include/os.h | 1 + arch/um/include/um_uaccess.h | 4 +- arch/um/include/user_util.h | 2 +- arch/um/kernel/exec_kern.c | 16 +- arch/um/kernel/frame.c | 8 +- arch/um/kernel/frame_kern.c | 23 +- arch/um/kernel/irq.c | 648 +-- arch/um/kernel/irq_user.c | 2 +- arch/um/kernel/mem_user.c | 55 +- arch/um/kernel/process.c | 107 +- arch/um/kernel/process_kern.c | 76 +- arch/um/kernel/ptrace.c | 26 +- arch/um/kernel/sigio_kern.c | 4 +- arch/um/kernel/signal_kern.c | 148 +- arch/um/kernel/skas/Makefile | 8 +- arch/um/kernel/skas/exec_user.c | 63 - arch/um/kernel/skas/include/mmu.h | 27 - arch/um/kernel/skas/include/mode.h | 39 - arch/um/kernel/skas/include/mode_kern.h | 53 - arch/um/kernel/skas/include/ptrace-skas.h | 10 - arch/um/kernel/skas/include/skas.h | 1 - arch/um/kernel/skas/include/uaccess.h | 40 - arch/um/kernel/skas/process.c | 24 +- arch/um/kernel/skas/process_kern.c | 63 - arch/um/kernel/skas/syscall_kern.c | 1 + arch/um/kernel/skas/syscall_user.c | 11 +- arch/um/kernel/syscall_kern.c | 16 +- arch/um/kernel/sysrq.c | 25 +- arch/um/kernel/time_kern.c | 2 - arch/um/kernel/tt/Makefile | 8 +- arch/um/kernel/tt/include/mmu.h | 23 - arch/um/kernel/tt/include/mode.h | 38 - arch/um/kernel/tt/include/mode_kern.h | 53 - arch/um/kernel/tt/include/uaccess.h | 71 - arch/um/kernel/tt/process_kern.c | 19 +- arch/um/kernel/tt/syscall_kern.c | 6 - arch/um/kernel/tt/syscall_user.c | 19 +- arch/um/kernel/tt/tracer.c | 12 +- arch/um/kernel/tt/trap_user.c | 7 + arch/um/kernel/um_arch.c | 11 +- arch/um/kernel/umid.c | 1 + arch/um/os-Linux/file.c | 2 +- arch/um/os-Linux/process.c | 12 + arch/v850/kernel/fpga85e2c.c | 2 +- arch/v850/kernel/ptrace.c | 8 +- arch/v850/kernel/time.c | 3 + arch/v850/kernel/vmlinux.lds.S | 5 + arch/x86_64/Kconfig | 46 +- arch/x86_64/defconfig | 57 +- arch/x86_64/ia32/fpu32.c | 5 +- arch/x86_64/ia32/ia32_aout.c | 7 +- arch/x86_64/ia32/ia32_binfmt.c | 10 +- arch/x86_64/ia32/ia32_signal.c | 6 + arch/x86_64/ia32/ia32entry.S | 32 +- arch/x86_64/ia32/ptrace32.c | 3 +- arch/x86_64/ia32/sys_ia32.c | 256 +- arch/x86_64/ia32/syscall32.c | 4 +- arch/x86_64/kernel/Makefile | 12 +- arch/x86_64/kernel/apic.c | 100 +- arch/x86_64/kernel/e820.c | 2 + arch/x86_64/kernel/head.S | 12 + arch/x86_64/kernel/head64.c | 6 + arch/x86_64/kernel/i8259.c | 16 +- arch/x86_64/kernel/io_apic.c | 169 +- arch/x86_64/kernel/irq.c | 839 +-- arch/x86_64/kernel/machine_kexec.c | 246 - arch/x86_64/kernel/mce.c | 3 +- arch/x86_64/kernel/mpparse.c | 14 +- arch/x86_64/kernel/pci-gart.c | 23 +- arch/x86_64/kernel/process.c | 12 +- arch/x86_64/kernel/ptrace.c | 2 + arch/x86_64/kernel/reboot.c | 83 +- arch/x86_64/kernel/relocate_kernel.S | 141 - arch/x86_64/kernel/setup.c | 17 +- arch/x86_64/kernel/setup64.c | 67 +- arch/x86_64/kernel/signal.c | 12 +- arch/x86_64/kernel/smp.c | 153 +- arch/x86_64/kernel/smpboot.c | 9 +- arch/x86_64/kernel/time.c | 165 +- arch/x86_64/kernel/traps.c | 66 +- arch/x86_64/kernel/vmlinux.lds.S | 35 +- arch/x86_64/kernel/x8664_ksyms.c | 4 +- arch/x86_64/mm/fault.c | 8 +- arch/x86_64/mm/init.c | 40 +- arch/x86_64/mm/ioremap.c | 2 +- arch/x86_64/mm/numa.c | 12 +- arch/x86_64/pci/mmconfig.c | 7 + ...ig => kernel-2.6.10-i686-planetlab.config} | 470 +- configs/kernel-2.6.9-i586-smp.config | 2571 --------- configs/kernel-2.6.9-i586.config | 2588 --------- configs/kernel-2.6.9-i686-smp.config | 2574 --------- crypto/Kconfig | 47 +- crypto/Makefile | 1 + crypto/tcrypt.c | 25 +- crypto/tcrypt.h | 302 + drivers/Kconfig | 2 + drivers/Makefile | 5 +- drivers/acpi/Kconfig | 31 +- drivers/acpi/ac.c | 8 +- drivers/acpi/acpi_ksyms.c | 159 - drivers/acpi/battery.c | 205 +- drivers/acpi/bus.c | 66 +- drivers/acpi/button.c | 8 +- drivers/acpi/ec.c | 63 +- drivers/acpi/events/evxface.c | 56 +- drivers/acpi/executer/exoparg2.c | 171 +- drivers/acpi/fan.c | 50 +- drivers/acpi/namespace/nsalloc.c | 8 +- drivers/acpi/namespace/nsdumpdv.c | 11 +- drivers/acpi/namespace/nsload.c | 15 +- drivers/acpi/namespace/nswalk.c | 4 +- drivers/acpi/osl.c | 61 +- drivers/acpi/pci_irq.c | 47 +- drivers/acpi/pci_link.c | 49 +- drivers/acpi/pci_root.c | 2 + drivers/acpi/power.c | 16 +- drivers/acpi/processor.c | 228 +- drivers/acpi/scan.c | 19 +- drivers/acpi/sleep/main.c | 11 +- drivers/acpi/system.c | 45 +- drivers/acpi/tables/tbconvrt.c | 58 +- drivers/acpi/thermal.c | 22 +- drivers/acpi/utilities/utglobal.c | 5 + drivers/atm/ambassador.c | 179 +- drivers/atm/firestream.c | 69 +- drivers/atm/fore200e.c | 87 +- drivers/atm/fore200e.h | 32 +- drivers/atm/he.c | 22 +- drivers/atm/horizon.c | 342 +- drivers/atm/idt77252.c | 33 +- drivers/atm/iphase.c | 94 +- drivers/atm/lanai.c | 8 +- drivers/base/Kconfig | 2 +- drivers/base/bus.c | 172 +- drivers/base/class.c | 36 +- drivers/base/class_simple.c | 2 +- drivers/base/core.c | 32 +- drivers/base/cpu.c | 2 + drivers/base/firmware_class.c | 15 +- drivers/base/power/main.c | 13 +- drivers/base/power/power.h | 5 + drivers/base/power/resume.c | 20 +- drivers/base/power/suspend.c | 48 +- drivers/block/DAC960.c | 3 +- drivers/block/Kconfig | 76 + drivers/block/Makefile | 2 + drivers/block/as-iosched.c | 122 +- drivers/block/cciss.c | 3 +- drivers/block/cciss_scsi.c | 53 +- drivers/block/cfq-iosched.c | 1510 ++++- drivers/block/cpqarray.c | 18 +- drivers/block/deadline-iosched.c | 136 +- drivers/block/elevator.c | 385 +- drivers/block/floppy.c | 30 +- drivers/block/genhd.c | 46 +- drivers/block/ll_rw_blk.c | 470 +- drivers/block/loop.c | 4 +- drivers/block/paride/pg.c | 2 +- drivers/block/rd.c | 23 +- drivers/block/scsi_ioctl.c | 16 +- drivers/block/swim3.c | 50 +- drivers/block/umem.c | 6 +- drivers/block/viodasd.c | 2 +- drivers/block/xd.c | 20 +- drivers/bluetooth/bcm203x.c | 3 +- drivers/bluetooth/bfusb.c | 4 +- drivers/bluetooth/bt3c_cs.c | 48 +- drivers/bluetooth/hci_ldisc.c | 4 +- drivers/bluetooth/hci_usb.c | 41 +- drivers/bluetooth/hci_usb.h | 7 - drivers/cdrom/cdrom.c | 105 +- drivers/cdrom/cdu31a.c | 4 +- drivers/char/Kconfig | 24 +- drivers/char/Makefile | 2 + drivers/char/README.computone | 10 - drivers/char/README.cyclomY | 23 - drivers/char/README.epca | 532 -- drivers/char/README.scc | 5 - drivers/char/agp/ali-agp.c | 11 + drivers/char/agp/alpha-agp.c | 2 + drivers/char/agp/amd-k7-agp.c | 2 + drivers/char/agp/amd64-agp.c | 11 +- drivers/char/agp/ati-agp.c | 3 + drivers/char/agp/efficeon-agp.c | 7 +- drivers/char/agp/generic.c | 16 +- drivers/char/agp/hp-agp.c | 2 + drivers/char/agp/i460-agp.c | 8 +- drivers/char/agp/intel-agp.c | 80 +- drivers/char/agp/intel-mch-agp.c | 45 +- drivers/char/agp/isoch.c | 2 +- drivers/char/agp/nvidia-agp.c | 2 + drivers/char/agp/sis-agp.c | 8 +- drivers/char/agp/sworks-agp.c | 2 + drivers/char/agp/uninorth-agp.c | 2 + drivers/char/agp/via-agp.c | 6 +- drivers/char/applicom.c | 2 +- drivers/char/cyclades.c | 82 +- drivers/char/drm/drm_drv.h | 3 +- drivers/char/drm/drm_fops.h | 7 +- drivers/char/drm/drm_vm.h | 4 +- drivers/char/drm/i810_dma.c | 4 +- drivers/char/drm/i830_dma.c | 4 +- drivers/char/drm/radeon_mem.c | 8 +- drivers/char/dtlk.c | 19 +- drivers/char/esp.c | 95 +- drivers/char/ftape/lowlevel/fdc-io.c | 2 +- drivers/char/ftape/lowlevel/ftape-init.c | 31 +- drivers/char/hvsi.c | 17 +- drivers/char/hw_random.c | 4 +- drivers/char/ip2main.c | 5 +- drivers/char/ipmi/ipmi_si_intf.c | 31 +- drivers/char/isicom.c | 836 +-- drivers/char/istallion.c | 66 +- drivers/char/lcd.c | 4 +- drivers/char/lp.c | 4 +- drivers/char/mem.c | 19 +- drivers/char/moxa.c | 134 +- drivers/char/mwave/3780i.c | 2 +- drivers/char/mxser.c | 2771 +++++---- drivers/char/n_hdlc.c | 24 +- drivers/char/n_r3964.c | 15 +- drivers/char/n_tty.c | 32 +- drivers/char/pcmcia/synclink_cs.c | 33 +- drivers/char/pty.c | 49 +- drivers/char/random.c | 51 +- drivers/char/rocket.c | 84 +- drivers/char/sonypi.c | 898 +-- drivers/char/sonypi.h | 134 +- drivers/char/stallion.c | 170 +- drivers/char/synclinkmp.c | 46 +- drivers/char/sysrq.c | 72 +- drivers/char/tipar.c | 2 +- drivers/char/tty_io.c | 128 +- drivers/char/tty_ioctl.c | 4 +- drivers/char/viotape.c | 2 +- drivers/char/vt.c | 54 +- drivers/char/watchdog/Kconfig | 30 + drivers/char/watchdog/Makefile | 1 + drivers/char/watchdog/alim7101_wdt.c | 46 +- drivers/char/watchdog/i8xx_tco.c | 13 +- drivers/char/watchdog/sc520_wdt.c | 2 +- drivers/char/watchdog/scx200_wdt.c | 12 +- drivers/cpufreq/cpufreq.c | 295 +- drivers/cpufreq/cpufreq_userspace.c | 73 +- drivers/firmware/Kconfig | 6 +- drivers/firmware/efivars.c | 2 +- drivers/i2c/busses/Kconfig | 51 +- drivers/i2c/busses/Makefile | 3 + drivers/i2c/busses/i2c-ali1535.c | 8 +- drivers/i2c/busses/i2c-ali1563.c | 4 +- drivers/i2c/busses/i2c-ali15x3.c | 4 +- drivers/i2c/busses/i2c-amd756.c | 60 +- drivers/i2c/busses/i2c-amd8111.c | 16 +- drivers/i2c/busses/i2c-elektor.c | 36 +- drivers/i2c/busses/i2c-i801.c | 11 +- drivers/i2c/busses/i2c-ibm_iic.c | 52 +- drivers/i2c/busses/i2c-keywest.c | 8 +- drivers/i2c/busses/i2c-nforce2.c | 21 +- drivers/i2c/busses/i2c-piix4.c | 4 +- drivers/i2c/busses/i2c-sis5595.c | 4 +- drivers/i2c/busses/i2c-sis630.c | 4 +- drivers/i2c/busses/i2c-sis96x.c | 4 +- drivers/i2c/busses/i2c-via.c | 4 +- drivers/i2c/busses/i2c-viapro.c | 4 +- drivers/i2c/busses/i2c-voodoo3.c | 6 +- drivers/i2c/busses/scx200_acb.c | 20 +- drivers/i2c/busses/scx200_i2c.c | 4 +- drivers/i2c/chips/Kconfig | 48 + drivers/i2c/chips/Makefile | 4 + drivers/i2c/chips/adm1021.c | 11 +- drivers/i2c/chips/asb100.c | 23 +- drivers/i2c/chips/eeprom.c | 7 +- drivers/i2c/chips/fscher.c | 4 +- drivers/i2c/chips/gl518sm.c | 10 +- drivers/i2c/chips/it87.c | 64 +- drivers/i2c/chips/lm75.c | 7 +- drivers/i2c/chips/lm78.c | 47 +- drivers/i2c/chips/lm80.c | 12 +- drivers/i2c/chips/lm83.c | 30 +- drivers/i2c/chips/lm85.c | 504 +- drivers/i2c/chips/lm90.c | 47 +- drivers/i2c/chips/via686a.c | 34 +- drivers/i2c/chips/w83627hf.c | 24 +- drivers/i2c/chips/w83781d.c | 82 +- drivers/i2c/chips/w83l785ts.c | 11 +- drivers/i2c/i2c-core.c | 106 +- drivers/i2c/i2c-dev.c | 2 +- drivers/ide/Kconfig | 43 +- drivers/ide/Makefile | 1 + drivers/ide/arm/icside.c | 6 +- drivers/ide/ide-cd.c | 94 +- drivers/ide/ide-cd.h | 6 +- drivers/ide/ide-disk.c | 470 +- drivers/ide/ide-dma.c | 238 +- drivers/ide/ide-floppy.c | 14 +- drivers/ide/ide-io.c | 115 +- drivers/ide/ide-iops.c | 112 +- drivers/ide/ide-lib.c | 14 +- drivers/ide/ide-pnp.c | 7 +- drivers/ide/ide-probe.c | 63 +- drivers/ide/ide-proc.c | 342 +- drivers/ide/ide-tape.c | 12 +- drivers/ide/ide-taskfile.c | 189 +- drivers/ide/ide.c | 82 +- drivers/ide/legacy/hd.c | 8 +- drivers/ide/legacy/ide-cs.c | 12 +- drivers/ide/legacy/pdc4030.c | 679 --- drivers/ide/legacy/pdc4030.h | 70 - drivers/ide/pci/Makefile | 2 +- drivers/ide/pci/aec62xx.c | 144 +- drivers/ide/pci/aec62xx.h | 6 +- drivers/ide/pci/alim15x3.c | 25 +- drivers/ide/pci/amd74xx.c | 4 +- drivers/ide/pci/atiixp.c | 172 +- drivers/ide/pci/cmd64x.c | 34 +- drivers/ide/pci/cs5520.c | 87 +- drivers/ide/pci/cs5530.c | 59 - drivers/ide/pci/generic.c | 4 +- drivers/ide/pci/hpt34x.h | 29 - drivers/ide/pci/hpt366.c | 553 +- drivers/ide/pci/hpt366.h | 47 +- drivers/ide/pci/it8172.c | 34 +- drivers/ide/pci/it8212.c | 851 --- drivers/ide/pci/ns87415.c | 101 +- drivers/ide/pci/pdc202xx_new.c | 161 +- drivers/ide/pci/pdc202xx_new.h | 2 - drivers/ide/pci/pdc202xx_old.c | 175 +- drivers/ide/pci/pdc202xx_old.h | 37 - drivers/ide/pci/piix.c | 186 +- drivers/ide/pci/piix.h | 7 +- drivers/ide/pci/rz1000.c | 2 +- drivers/ide/pci/sc1200.c | 69 +- drivers/ide/pci/serverworks.c | 204 +- drivers/ide/pci/serverworks.h | 4 +- drivers/ide/pci/sgiioc4.c | 86 +- drivers/ide/pci/siimage.c | 87 +- drivers/ide/pci/sis5513.c | 34 +- drivers/ide/pci/sl82c105.c | 8 +- drivers/ide/pci/slc90e66.c | 146 +- drivers/ide/pci/triflex.c | 25 +- drivers/ide/pci/trm290.c | 99 +- drivers/ide/ppc/pmac.c | 6 +- drivers/ide/setup-pci.c | 134 +- drivers/ieee1394/eth1394.c | 96 +- drivers/ieee1394/nodemgr.c | 13 +- drivers/ieee1394/sbp2.c | 11 +- drivers/ieee1394/video1394.c | 2 +- drivers/input/evdev.c | 4 +- drivers/input/gameport/Kconfig | 2 +- drivers/input/input.c | 2 +- drivers/input/joydev.c | 4 +- drivers/input/joystick/analog.c | 2 +- drivers/input/joystick/sidewinder.c | 2 +- drivers/input/mouse/Kconfig | 6 +- drivers/input/mousedev.c | 4 +- drivers/input/serio/Kconfig | 2 +- drivers/input/serio/i8042-io.h | 11 +- drivers/input/serio/i8042.c | 77 +- drivers/input/serio/maceps2.c | 2 +- drivers/input/serio/serport.c | 2 +- drivers/input/tsdev.c | 10 +- drivers/isdn/act2000/act2000_isa.c | 11 +- drivers/isdn/capi/capi.c | 26 +- drivers/isdn/capi/capidrv.c | 15 +- drivers/isdn/capi/kcapi.c | 35 +- drivers/isdn/hardware/avm/b1pcmcia.c | 1 - drivers/isdn/hardware/eicon/capifunc.c | 42 +- drivers/isdn/hardware/eicon/di.c | 22 +- drivers/isdn/hardware/eicon/divasmain.c | 22 +- drivers/isdn/hardware/eicon/maintidi.c | 10 +- drivers/isdn/hardware/eicon/message.c | 788 +-- drivers/isdn/hardware/eicon/os_4bri.c | 34 +- drivers/isdn/hardware/eicon/os_bri.c | 23 +- drivers/isdn/hardware/eicon/os_pri.c | 61 +- drivers/isdn/hisax/config.c | 3 +- drivers/isdn/i4l/isdn_tty.c | 49 +- drivers/isdn/i4l/isdn_x25iface.c | 16 +- drivers/isdn/icn/icn.c | 15 +- drivers/isdn/isdnloop/isdnloop.c | 3 + drivers/isdn/pcbit/drv.c | 2 +- drivers/isdn/sc/hardware.h | 3 - drivers/isdn/tpam/tpam.h | 25 +- drivers/isdn/tpam/tpam_commands.c | 78 +- drivers/isdn/tpam/tpam_memory.c | 38 +- drivers/macintosh/mediabay.c | 25 +- drivers/macintosh/therm_adt746x.c | 282 +- drivers/macintosh/therm_pm72.c | 577 +- drivers/macintosh/via-pmu.c | 2 +- drivers/md/Kconfig | 9 + drivers/md/Makefile | 1 + drivers/md/dm-ioctl.c | 95 +- drivers/md/dm-table.c | 11 +- drivers/md/dm.c | 82 +- drivers/md/dm.h | 5 + drivers/md/linear.c | 33 +- drivers/md/md.c | 197 +- drivers/md/multipath.c | 93 +- drivers/md/raid1.c | 92 +- drivers/md/raid10.c | 79 +- drivers/md/raid5.c | 78 +- drivers/md/raid6main.c | 96 +- drivers/media/common/ir-common.c | 12 +- drivers/media/common/saa7146_fops.c | 68 +- drivers/media/common/saa7146_vbi.c | 29 +- drivers/media/common/saa7146_video.c | 46 +- drivers/media/dvb/b2c2/skystar2.c | 417 +- drivers/media/dvb/bt8xx/dvb-bt8xx.c | 655 ++- drivers/media/dvb/dvb-core/Makefile.lib | 1 - drivers/media/dvb/dvb-core/dmxdev.c | 21 +- drivers/media/dvb/dvb-core/dvb_ca_en50221.c | 535 +- drivers/media/dvb/dvb-core/dvb_demux.c | 23 +- drivers/media/dvb/dvb-core/dvb_functions.c | 89 - drivers/media/dvb/dvb-core/dvb_functions.h | 50 - drivers/media/dvb/dvb-core/dvb_i2c.c | 290 - drivers/media/dvb/dvb-core/dvb_i2c.h | 63 - drivers/media/dvb/dvb-core/dvb_ksyms.c | 57 - drivers/media/dvb/dvb-core/dvb_net.c | 516 +- drivers/media/dvb/dvb-core/dvbdev.c | 111 +- drivers/media/dvb/frontends/Kconfig | 3 + drivers/media/dvb/frontends/alps_tdlb7.c | 724 --- drivers/media/dvb/frontends/alps_tdmb7.c | 458 -- drivers/media/dvb/frontends/dst-bt878.h | 38 - drivers/media/dvb/frontends/dst.c | 1187 ---- .../media/dvb/frontends/grundig_29504-401.c | 664 --- .../media/dvb/frontends/grundig_29504-491.c | 465 -- drivers/media/dvb/frontends/sp887x_firm.h | 1375 ----- drivers/media/dvb/frontends/stv0299.c | 1365 ++--- drivers/media/dvb/frontends/tda1004x.c | 1746 +++--- drivers/media/dvb/ttpci/av7110.c | 1081 +++- drivers/media/dvb/ttpci/av7110_av.c | 73 +- drivers/media/dvb/ttpci/av7110_ca.c | 34 +- drivers/media/dvb/ttpci/av7110_hw.c | 459 +- drivers/media/dvb/ttpci/av7110_ir.c | 17 +- .../media/dvb/ttusb-budget/dvb-ttusb-budget.c | 469 +- drivers/media/dvb/ttusb-dec/ttusb_dec.c | 362 +- drivers/media/video/Kconfig | 52 +- drivers/media/video/Makefile | 5 + drivers/media/video/bttv-cards.c | 513 +- drivers/media/video/bttv-driver.c | 346 +- drivers/media/video/bttv-i2c.c | 84 +- drivers/media/video/bttv-risc.c | 58 +- drivers/media/video/bttv-vbi.c | 47 +- drivers/media/video/bttv.h | 22 +- drivers/media/video/bttvp.h | 21 +- drivers/media/video/bw-qcam.c | 17 +- drivers/media/video/c-qcam.c | 6 +- drivers/media/video/cpia.c | 35 +- drivers/media/video/cx88/cx88-cards.c | 389 +- drivers/media/video/cx88/cx88-i2c.c | 169 +- drivers/media/video/cx88/cx88-reg.h | 80 +- drivers/media/video/cx88/cx88-tvaudio.c | 196 +- drivers/media/video/cx88/cx88-vbi.c | 64 +- drivers/media/video/cx88/cx88-video.c | 990 ++-- drivers/media/video/cx88/cx88.h | 297 +- drivers/media/video/dpc7146.c | 10 +- drivers/media/video/hexium_gemini.c | 9 +- drivers/media/video/hexium_orion.c | 9 +- drivers/media/video/ir-kbd-gpio.c | 107 +- drivers/media/video/ir-kbd-i2c.c | 47 +- drivers/media/video/meye.c | 1629 ++++-- drivers/media/video/meye.h | 57 +- drivers/media/video/msp3400.c | 1051 ++-- drivers/media/video/mxb.c | 19 +- drivers/media/video/planb.c | 9 +- drivers/media/video/pms.c | 16 +- drivers/media/video/saa5249.c | 3 +- drivers/media/video/saa7111.c | 4 +- drivers/media/video/saa7134/saa6752hs.c | 100 +- drivers/media/video/saa7134/saa7134-cards.c | 271 +- drivers/media/video/saa7134/saa7134-core.c | 264 +- drivers/media/video/saa7134/saa7134-i2c.c | 43 +- drivers/media/video/saa7134/saa7134-input.c | 69 +- drivers/media/video/saa7134/saa7134-oss.c | 26 +- drivers/media/video/saa7134/saa7134-ts.c | 362 +- drivers/media/video/saa7134/saa7134-tvaudio.c | 78 +- drivers/media/video/saa7134/saa7134-video.c | 158 +- drivers/media/video/saa7134/saa7134.h | 96 +- drivers/media/video/tda7432.c | 84 +- drivers/media/video/tda9840.c | 305 +- drivers/media/video/tda9875.c | 36 +- drivers/media/video/tda9887.c | 54 +- drivers/media/video/tea6415c.c | 227 +- drivers/media/video/tea6420.c | 171 +- drivers/media/video/tuner.c | 227 +- drivers/media/video/tvaudio.c | 104 +- drivers/media/video/tvmixer.c | 12 +- drivers/media/video/v4l1-compat.c | 38 +- drivers/media/video/video-buf.c | 178 +- drivers/media/video/videocodec.c | 5 - drivers/media/video/zoran_driver.c | 42 +- drivers/media/video/zr36120.c | 17 +- drivers/message/fusion/Kconfig | 2 +- drivers/message/fusion/mptbase.c | 239 +- drivers/message/fusion/mptbase.h | 192 +- drivers/message/fusion/mptctl.c | 8 +- drivers/message/fusion/mptscsih.c | 751 +-- drivers/message/fusion/mptscsih.h | 11 +- drivers/message/i2o/i2o_block.c | 218 +- drivers/message/i2o/i2o_config.c | 145 +- drivers/message/i2o/i2o_proc.c | 47 +- drivers/message/i2o/i2o_scsi.c | 113 +- drivers/message/i2o/pci.c | 2 +- drivers/misc/ibmasm/ibmasmfs.c | 17 +- drivers/misc/ibmasm/module.c | 12 +- drivers/mmc/mmc.c | 7 +- drivers/mtd/chips/cfi_cmdset_0001.c | 484 +- drivers/mtd/chips/cfi_cmdset_0002.c | 506 +- drivers/mtd/chips/cfi_cmdset_0020.c | 4 +- drivers/mtd/chips/cfi_probe.c | 46 +- drivers/mtd/chips/chipreg.c | 4 +- drivers/mtd/chips/gen_probe.c | 12 +- drivers/mtd/chips/jedec_probe.c | 184 +- drivers/mtd/chips/map_ram.c | 4 +- drivers/mtd/chips/map_rom.c | 8 +- drivers/mtd/cmdlinepart.c | 4 +- drivers/mtd/devices/Kconfig | 6 +- drivers/mtd/devices/blkmtd.c | 12 +- drivers/mtd/devices/doc2000.c | 44 +- drivers/mtd/devices/doc2001.c | 28 +- drivers/mtd/devices/doc2001plus.c | 40 +- drivers/mtd/devices/docprobe.c | 6 +- drivers/mtd/devices/pmc551.c | 4 +- drivers/mtd/ftl.c | 16 +- drivers/mtd/inftlcore.c | 10 +- drivers/mtd/inftlmount.c | 8 +- drivers/mtd/maps/Kconfig | 64 +- drivers/mtd/maps/Makefile | 6 +- drivers/mtd/maps/amd76xrom.c | 384 +- drivers/mtd/maps/arctic-mtd.c | 4 +- drivers/mtd/maps/autcpu12-nvram.c | 6 +- drivers/mtd/maps/beech-mtd.c | 4 +- drivers/mtd/maps/cdb89712.c | 8 +- drivers/mtd/maps/ceiva.c | 6 +- drivers/mtd/maps/cfi_flagadm.c | 4 +- drivers/mtd/maps/cstm_mips_ixx.c | 4 +- drivers/mtd/maps/dbox2-flash.c | 4 +- drivers/mtd/maps/dc21285.c | 54 +- drivers/mtd/maps/dilnetpc.c | 12 +- drivers/mtd/maps/ebony.c | 27 +- drivers/mtd/maps/edb7312.c | 13 +- drivers/mtd/maps/elan-104nc.c | 10 +- drivers/mtd/maps/epxa10db-flash.c | 4 +- drivers/mtd/maps/fortunet.c | 6 +- drivers/mtd/maps/h720x-flash.c | 4 +- drivers/mtd/maps/impa7.c | 9 +- drivers/mtd/maps/integrator-flash-v24.c | 258 - drivers/mtd/maps/integrator-flash.c | 8 +- drivers/mtd/maps/iq80310.c | 4 +- drivers/mtd/maps/l440gx.c | 14 +- drivers/mtd/maps/lasat.c | 4 +- drivers/mtd/maps/lubbock-flash.c | 4 +- drivers/mtd/maps/mbx860.c | 4 +- drivers/mtd/maps/netsc520.c | 10 +- drivers/mtd/maps/nettel.c | 9 +- drivers/mtd/maps/ocelot.c | 6 +- drivers/mtd/maps/pb1xxx-flash.c | 5 +- drivers/mtd/maps/pci.c | 6 +- drivers/mtd/maps/physmap.c | 10 +- drivers/mtd/maps/pnc2000.c | 8 +- drivers/mtd/maps/redwood.c | 5 +- drivers/mtd/maps/rpxlite.c | 4 +- drivers/mtd/maps/sa1100-flash.c | 1512 +---- drivers/mtd/maps/sbc_gxx.c | 12 +- drivers/mtd/maps/sc520cdp.c | 16 +- drivers/mtd/maps/scb2_flash.c | 8 +- drivers/mtd/maps/scx200_docflash.c | 10 +- drivers/mtd/maps/solutionengine.c | 6 +- drivers/mtd/maps/sun_uflash.c | 5 +- drivers/mtd/maps/tqm8xxl.c | 2 +- drivers/mtd/maps/uclinux.c | 6 +- drivers/mtd/maps/wr_sbc82xx_flash.c | 4 +- drivers/mtd/mtd_blkdevs.c | 12 +- drivers/mtd/mtdblock.c | 6 +- drivers/mtd/mtdblock.h | 35 - drivers/mtd/mtdchar.c | 12 +- drivers/mtd/mtdcore.c | 4 +- drivers/mtd/mtdpart.c | 4 +- drivers/mtd/nand/Kconfig | 49 +- drivers/mtd/nand/Makefile | 5 +- drivers/mtd/nand/autcpu12.c | 16 +- drivers/mtd/nand/edb7312.c | 37 +- drivers/mtd/nand/spia.c | 31 +- drivers/mtd/nftlcore.c | 10 +- drivers/mtd/nftlmount.c | 7 +- drivers/net/3c501.c | 2 +- drivers/net/3c505.c | 2 +- drivers/net/3c507.c | 2 +- drivers/net/3c509.c | 153 +- drivers/net/3c523.c | 2 +- drivers/net/3c527.c | 2 +- drivers/net/3c59x.c | 18 +- drivers/net/8139too.c | 15 +- drivers/net/82596.c | 4 +- drivers/net/Kconfig | 131 +- drivers/net/Makefile | 2 + drivers/net/Space.c | 3 - drivers/net/acenic.c | 189 +- drivers/net/acenic.h | 23 +- drivers/net/appletalk/ltpc.c | 2 +- drivers/net/arm/etherh.c | 167 +- drivers/net/at1700.c | 2 +- drivers/net/b44.c | 5 +- drivers/net/b44.h | 1 - drivers/net/bonding/bond_main.c | 17 +- drivers/net/cs89x0.c | 2 +- drivers/net/defxx.c | 146 +- drivers/net/dgrs.c | 6 +- drivers/net/dummy.c | 4 +- drivers/net/e100.c | 52 +- drivers/net/e1000/e1000.h | 5 +- drivers/net/e1000/e1000_ethtool.c | 12 +- drivers/net/e1000/e1000_hw.c | 128 +- drivers/net/e1000/e1000_hw.h | 2 +- drivers/net/e1000/e1000_main.c | 49 +- drivers/net/e1000/e1000_param.c | 167 +- drivers/net/eepro.c | 2 +- drivers/net/eepro100.c | 146 +- drivers/net/eexpress.c | 2 +- drivers/net/epic100.c | 2 +- drivers/net/eql.c | 26 +- drivers/net/eth16i.c | 2 +- drivers/net/ewrk3.c | 326 +- drivers/net/fealnx.c | 2 +- drivers/net/fmv18x.c | 2 +- drivers/net/forcedeth.c | 160 +- drivers/net/gt96100eth.c | 2 +- drivers/net/hamachi.c | 164 +- drivers/net/hamradio/dmascc.c | 1 - drivers/net/hamradio/hdlcdrv.c | 2 +- drivers/net/hp100.c | 6 +- drivers/net/ibmlana.c | 11 +- drivers/net/ibmveth.c | 21 +- drivers/net/irda/irda-usb.c | 20 +- drivers/net/irda/irport.c | 2 +- drivers/net/irda/irtty-sir.c | 2 +- drivers/net/irda/nsc-ircc.c | 5 +- drivers/net/irda/stir4200.c | 48 +- drivers/net/irda/via-ircc.c | 536 +- drivers/net/irda/via-ircc.h | 19 +- drivers/net/irda/vlsi_ir.c | 4 +- drivers/net/isa-skeleton.c | 2 +- drivers/net/iseries_veth.c | 87 +- drivers/net/ixgb/ixgb.h | 3 +- drivers/net/ixgb/ixgb_ethtool.c | 500 +- drivers/net/ixgb/ixgb_hw.h | 2 +- drivers/net/ixgb/ixgb_main.c | 39 +- drivers/net/jazzsonic.c | 2 +- drivers/net/lance.c | 2 +- drivers/net/lasi_82596.c | 4 +- drivers/net/lp486e.c | 2 +- drivers/net/macsonic.c | 2 +- drivers/net/natsemi.c | 273 +- drivers/net/ne2.c | 2 +- drivers/net/ne2k-pci.c | 31 + drivers/net/netconsole.c | 120 +- drivers/net/ni52.c | 2 +- drivers/net/ns83820.c | 190 +- drivers/net/pci-skeleton.c | 7 +- drivers/net/pcmcia/3c574_cs.c | 2 +- drivers/net/pcmcia/3c589_cs.c | 2 +- drivers/net/pcmcia/axnet_cs.c | 2 +- drivers/net/pcmcia/nmclan_cs.c | 2 +- drivers/net/pcmcia/smc91c92_cs.c | 179 +- drivers/net/pcmcia/xirc2ps_cs.c | 2 +- drivers/net/pcnet32.c | 66 +- drivers/net/plip.c | 2 +- drivers/net/ppp_async.c | 8 +- drivers/net/ppp_generic.c | 26 +- drivers/net/ppp_synctty.c | 4 +- drivers/net/r8169.c | 2 +- drivers/net/rrunner.c | 32 +- drivers/net/s2io.c | 20 +- drivers/net/s2io.h | 1 - drivers/net/sb1000.c | 2 +- drivers/net/sb1250-mac.c | 2 +- drivers/net/sgiseeq.c | 2 +- drivers/net/sis900.c | 284 +- drivers/net/sk98lin/h/skdrv1st.h | 4 +- drivers/net/sk98lin/h/skdrv2nd.h | 4 +- drivers/net/sk98lin/skge.c | 4 +- drivers/net/sk_mca.c | 11 +- drivers/net/skfp/hwmtm.c | 3 +- drivers/net/skfp/skfddi.c | 2 +- drivers/net/smc9194.c | 2 +- drivers/net/starfire.c | 211 +- drivers/net/sun3_82586.c | 2 +- drivers/net/sun3lance.c | 2 +- drivers/net/sundance.c | 191 +- drivers/net/sungem.c | 8 +- drivers/net/sunhme.c | 12 +- drivers/net/tc35815.c | 2 +- drivers/net/tg3.c | 133 +- drivers/net/tg3.h | 2 +- drivers/net/tokenring/ibmtr.c | 2 +- drivers/net/tokenring/lanstreamer.c | 4 +- drivers/net/tokenring/olympic.c | 3 +- drivers/net/tokenring/smctr.c | 2 +- drivers/net/tokenring/tms380tr.c | 2 +- drivers/net/tulip/21142.c | 62 +- drivers/net/tulip/de2104x.c | 12 +- drivers/net/tulip/de4x5.c | 12 +- drivers/net/tulip/dmfe.c | 4 +- drivers/net/tulip/eeprom.c | 24 +- drivers/net/tulip/interrupt.c | 74 +- drivers/net/tulip/media.c | 153 +- drivers/net/tulip/pnic.c | 52 +- drivers/net/tulip/pnic2.c | 46 +- drivers/net/tulip/timer.c | 17 +- drivers/net/tulip/tulip.h | 45 +- drivers/net/tulip/tulip_core.c | 289 +- drivers/net/tulip/winbond-840.c | 257 +- drivers/net/tulip/xircom_tulip_cb.c | 208 +- drivers/net/typhoon.c | 269 +- drivers/net/via-rhine.c | 10 +- drivers/net/wan/c101.c | 2 +- drivers/net/wan/cosa.c | 4 +- drivers/net/wan/dscc4.c | 69 +- drivers/net/wan/farsync.c | 50 +- drivers/net/wan/hd6457x.c | 22 +- drivers/net/wan/hostess_sv11.c | 2 +- drivers/net/wan/lmc/lmc_main.c | 11 +- drivers/net/wan/lmc/lmc_proto.c | 2 +- drivers/net/wan/n2.c | 2 +- drivers/net/wan/pc300_tty.c | 58 +- drivers/net/wan/pci200syn.c | 10 +- drivers/net/wan/sbni.c | 6 +- drivers/net/wan/sdla.c | 2 + drivers/net/wan/wanxl.c | 8 +- drivers/net/wan/x25_asy.c | 24 +- drivers/net/wireless/airo.c | 96 +- drivers/net/wireless/atmel.c | 4 +- drivers/net/wireless/atmel_cs.c | 5 +- drivers/net/wireless/prism54/isl_38xx.c | 15 +- drivers/net/wireless/prism54/isl_38xx.h | 4 + drivers/net/wireless/prism54/isl_ioctl.c | 639 ++- drivers/net/wireless/prism54/isl_ioctl.h | 2 + drivers/net/wireless/prism54/isl_oid.h | 9 + drivers/net/wireless/prism54/islpci_dev.c | 49 +- drivers/net/wireless/prism54/islpci_dev.h | 5 +- drivers/net/wireless/prism54/islpci_eth.c | 5 +- drivers/net/wireless/prism54/islpci_hotplug.c | 7 +- drivers/net/wireless/prism54/islpci_mgt.c | 5 +- drivers/net/wireless/prism54/islpci_mgt.h | 2 - drivers/net/wireless/prism54/oid_mgt.c | 126 +- drivers/net/wireless/prism54/oid_mgt.h | 5 +- drivers/net/wireless/strip.c | 6 +- drivers/net/yellowfin.c | 257 +- drivers/oprofile/oprofilefs.c | 14 +- drivers/parisc/superio.c | 79 +- drivers/parport/parport_pc.c | 272 +- drivers/parport/probe.c | 13 +- drivers/pci/Makefile | 3 +- drivers/pci/hotplug/acpiphp_glue.c | 4 +- drivers/pci/hotplug/cpcihp_generic.c | 14 +- drivers/pci/hotplug/cpcihp_zt5550.c | 15 +- drivers/pci/hotplug/cpqphp.h | 9 +- drivers/pci/hotplug/cpqphp_core.c | 38 +- drivers/pci/hotplug/cpqphp_ctrl.c | 4 +- drivers/pci/hotplug/cpqphp_pci.c | 14 +- drivers/pci/hotplug/ibmphp_core.c | 10 +- drivers/pci/hotplug/ibmphp_hpc.c | 28 +- drivers/pci/hotplug/pci_hotplug_core.c | 2 +- drivers/pci/hotplug/pciehp.h | 14 +- drivers/pci/hotplug/pciehp_core.c | 4 +- drivers/pci/hotplug/pciehp_ctrl.c | 34 +- drivers/pci/hotplug/pciehp_hpc.c | 3 + drivers/pci/hotplug/pciehp_sysfs.c | 143 - drivers/pci/hotplug/pciehprm_acpi.c | 62 +- drivers/pci/hotplug/rpadlpar_core.c | 2 +- drivers/pci/hotplug/rpaphp.h | 2 +- drivers/pci/hotplug/rpaphp_pci.c | 11 +- drivers/pci/hotplug/shpchp.h | 9 +- drivers/pci/hotplug/shpchp_core.c | 4 +- drivers/pci/hotplug/shpchp_ctrl.c | 2 +- drivers/pci/hotplug/shpchp_hpc.c | 6 +- drivers/pci/msi.c | 20 +- drivers/pci/pci-driver.c | 68 +- drivers/pci/pci-sysfs.c | 130 +- drivers/pci/pci.c | 52 +- drivers/pci/pci.h | 25 +- drivers/pci/pci.ids | 12 +- drivers/pci/probe.c | 67 +- drivers/pci/proc.c | 5 +- drivers/pci/quirks.c | 336 +- drivers/pci/search.c | 77 +- drivers/pci/syscall.c | 7 +- drivers/pcmcia/Kconfig | 111 +- drivers/pcmcia/Makefile | 28 +- drivers/pcmcia/cistpl.c | 86 +- drivers/pcmcia/cs.c | 168 +- drivers/pcmcia/cs_internal.h | 38 +- drivers/pcmcia/ds.c | 70 +- drivers/pcmcia/i82365.c | 4 +- drivers/pcmcia/o2micro.h | 19 +- drivers/pcmcia/rsrc_mgr.c | 8 +- drivers/pcmcia/sa1100_adsbitsy.c | 103 - drivers/pcmcia/sa1100_flexanet.c | 168 - drivers/pcmcia/sa1100_freebird.c | 135 - drivers/pcmcia/sa1100_generic.c | 21 - drivers/pcmcia/sa1100_graphicsclient.c | 154 - drivers/pcmcia/sa1100_graphicsmaster.c | 106 - drivers/pcmcia/sa1100_pangolin.c | 147 - drivers/pcmcia/sa1100_pfs168.c | 141 - drivers/pcmcia/sa1100_simpad.c | 4 +- drivers/pcmcia/sa1100_stork.c | 198 - drivers/pcmcia/sa1100_system3.c | 115 - drivers/pcmcia/sa1100_trizeps.c | 165 - drivers/pcmcia/sa1100_xp860.c | 154 - drivers/pcmcia/sa1100_yopy.c | 125 - drivers/pcmcia/sa1111_generic.c | 15 - drivers/pcmcia/tcic.c | 4 +- drivers/pcmcia/yenta_socket.c | 27 +- drivers/pnp/isapnp/core.c | 4 +- drivers/pnp/pnpbios/Kconfig | 3 +- drivers/pnp/pnpbios/core.c | 10 +- drivers/s390/Kconfig | 33 + drivers/s390/block/dasd.c | 12 +- drivers/s390/block/dasd_3990_erp.c | 19 +- drivers/s390/block/dasd_devmap.c | 4 +- drivers/s390/block/dasd_eckd.c | 6 +- drivers/s390/block/dasd_fba.c | 4 +- drivers/s390/char/Makefile | 4 + drivers/s390/char/raw3270.c | 38 +- drivers/s390/char/tty3270.c | 35 +- drivers/s390/cio/css.c | 8 +- drivers/s390/cio/device.c | 103 +- drivers/s390/cio/device_fsm.c | 37 +- drivers/s390/cio/qdio.c | 22 +- drivers/s390/net/ctcmain.c | 24 +- drivers/s390/net/ctctty.c | 12 +- drivers/s390/net/iucv.c | 8 +- drivers/s390/net/lcs.c | 6 +- drivers/s390/net/lcs.h | 3 +- drivers/s390/net/netiucv.c | 2 +- drivers/s390/net/qeth.h | 68 +- drivers/s390/net/qeth_main.c | 671 ++- drivers/s390/net/qeth_mpc.h | 39 +- drivers/s390/net/qeth_sys.c | 137 +- drivers/s390/scsi/zfcp_aux.c | 93 +- drivers/s390/scsi/zfcp_ccw.c | 5 +- drivers/s390/scsi/zfcp_def.h | 129 +- drivers/s390/scsi/zfcp_erp.c | 536 +- drivers/s390/scsi/zfcp_ext.h | 11 +- drivers/s390/scsi/zfcp_fsf.c | 398 +- drivers/s390/scsi/zfcp_qdio.c | 3 +- drivers/s390/scsi/zfcp_scsi.c | 31 +- drivers/s390/scsi/zfcp_sysfs_adapter.c | 3 +- drivers/s390/scsi/zfcp_sysfs_driver.c | 5 +- drivers/s390/scsi/zfcp_sysfs_port.c | 7 +- drivers/s390/scsi/zfcp_sysfs_unit.c | 13 +- drivers/sbus/char/bpp.c | 16 +- drivers/sbus/char/cpwatchdog.c | 8 +- drivers/sbus/char/display7seg.c | 4 +- drivers/sbus/char/flash.c | 4 +- drivers/sbus/char/riowatchdog.c | 6 +- drivers/scsi/3w-xxxx.c | 4328 ++++++-------- drivers/scsi/3w-xxxx.h | 151 +- drivers/scsi/53c700.c | 31 +- drivers/scsi/53c700.h | 3 +- drivers/scsi/BusLogic.c | 177 +- drivers/scsi/Kconfig | 62 +- drivers/scsi/Makefile | 4 +- drivers/scsi/NCR53c406a.c | 2 +- drivers/scsi/NCR_D700.c | 22 +- drivers/scsi/NCR_Q720.c | 20 +- drivers/scsi/aacraid/aachba.c | 492 +- drivers/scsi/aacraid/aacraid.h | 194 +- drivers/scsi/aacraid/linit.c | 196 +- drivers/scsi/aacraid/rkt.c | 131 +- drivers/scsi/aacraid/rx.c | 98 +- drivers/scsi/aacraid/sa.c | 66 +- drivers/scsi/advansys.c | 3 +- drivers/scsi/aha152x.c | 9 +- drivers/scsi/aha1542.c | 6 +- drivers/scsi/aic7xxx/aic7770_osm.c | 4 +- drivers/scsi/aic7xxx/aic79xx_core.c | 14 +- drivers/scsi/aic7xxx/aic79xx_osm.c | 95 +- drivers/scsi/aic7xxx/aic79xx_osm.h | 84 +- drivers/scsi/aic7xxx/aic79xx_osm_pci.c | 157 +- drivers/scsi/aic7xxx/aic79xx_pci.c | 26 +- drivers/scsi/aic7xxx/aic7xxx_core.c | 8 +- drivers/scsi/aic7xxx/aic7xxx_osm.c | 105 +- drivers/scsi/aic7xxx/aic7xxx_osm.h | 83 +- drivers/scsi/aic7xxx/aic7xxx_osm_pci.c | 118 +- drivers/scsi/aic7xxx_old.c | 20 +- drivers/scsi/arm/acornscsi.c | 2 +- drivers/scsi/arm/arxescsi.c | 19 +- drivers/scsi/arm/cumana_2.c | 19 +- drivers/scsi/arm/eesox.c | 19 +- drivers/scsi/arm/fas216.c | 2 +- drivers/scsi/arm/powertec.c | 19 +- drivers/scsi/ata_piix.c | 30 +- drivers/scsi/atari_scsi.c | 2 +- drivers/scsi/atp870u.c | 2561 ++++++--- drivers/scsi/atp870u.h | 92 +- drivers/scsi/cpqfcTSinit.c | 2 +- drivers/scsi/dc395x.c | 63 +- drivers/scsi/dec_esp.c | 2 +- drivers/scsi/dmx3191d.c | 216 +- drivers/scsi/dmx3191d.h | 48 - drivers/scsi/dpt_i2o.c | 52 +- drivers/scsi/dpti.h | 20 +- drivers/scsi/dtc.c | 49 +- drivers/scsi/eata.c | 240 +- drivers/scsi/fdomain.c | 182 +- drivers/scsi/hosts.c | 7 +- drivers/scsi/i60uscsi.c | 805 --- drivers/scsi/i91uscsi.c | 2672 --------- drivers/scsi/i91uscsi.h | 843 --- drivers/scsi/ide-scsi.c | 173 +- drivers/scsi/imm.c | 4 + drivers/scsi/ini9100u.c | 727 --- drivers/scsi/ini9100u.h | 251 - drivers/scsi/inia100.c | 580 -- drivers/scsi/inia100.h | 533 -- drivers/scsi/jazz_esp.c | 2 +- drivers/scsi/lasi700.c | 17 +- drivers/scsi/libata-core.c | 131 +- drivers/scsi/libata-scsi.c | 11 +- drivers/scsi/libata.h | 3 +- drivers/scsi/lpfc/Makefile | 7 - drivers/scsi/lpfc/lpfc.h | 449 -- drivers/scsi/lpfc/lpfc_compat.h | 120 - drivers/scsi/lpfc/lpfc_crtn.h | 265 - drivers/scsi/lpfc/lpfc_ct.c | 1288 ----- drivers/scsi/lpfc/lpfc_disc.h | 270 - drivers/scsi/lpfc/lpfc_els.c | 3235 ----------- drivers/scsi/lpfc/lpfc_fcp.c | 3419 ----------- drivers/scsi/lpfc/lpfc_fcp.h | 108 - drivers/scsi/lpfc/lpfc_hbadisc.c | 2703 --------- drivers/scsi/lpfc/lpfc_hw.h | 2688 --------- drivers/scsi/lpfc/lpfc_init.c | 1345 ----- drivers/scsi/lpfc/lpfc_logmsg.h | 46 - drivers/scsi/lpfc/lpfc_mbox.c | 672 --- drivers/scsi/lpfc/lpfc_mem.c | 192 - drivers/scsi/lpfc/lpfc_mem.h | 56 - drivers/scsi/lpfc/lpfc_nportdisc.c | 2145 ------- drivers/scsi/lpfc/lpfc_scsi.h | 92 - drivers/scsi/lpfc/lpfc_scsiport.c | 1300 ----- drivers/scsi/lpfc/lpfc_sli.c | 3349 ----------- drivers/scsi/lpfc/lpfc_sli.h | 218 - drivers/scsi/lpfc/lpfc_version.h | 37 - drivers/scsi/mac_esp.c | 2 +- drivers/scsi/mca_53c9x.c | 2 +- drivers/scsi/megaraid.c | 32 +- drivers/scsi/ncr53c8xx.c | 1356 +---- drivers/scsi/ncr53c8xx.h | 10 +- drivers/scsi/nsp32.c | 129 +- drivers/scsi/nsp32.h | 9 +- drivers/scsi/osst.c | 80 +- drivers/scsi/pas16.c | 4 +- drivers/scsi/pcmcia/aha152x_stub.c | 2 +- drivers/scsi/pcmcia/nsp_cs.c | 4 +- drivers/scsi/pcmcia/qlogic_stub.c | 2 +- drivers/scsi/psi240i.c | 37 - drivers/scsi/qla1280.c | 98 +- drivers/scsi/qla1280.h | 4 +- drivers/scsi/qla2xxx/qla_rscn.c | 26 - drivers/scsi/qlogicfc.c | 8 +- drivers/scsi/qlogicisp.c | 17 +- drivers/scsi/sata_promise.c | 12 +- drivers/scsi/sata_sil.c | 6 +- drivers/scsi/sata_sis.c | 8 +- drivers/scsi/sata_svw.c | 6 +- drivers/scsi/sata_via.c | 2 +- drivers/scsi/sata_vsc.c | 4 +- drivers/scsi/scsi.c | 1 - drivers/scsi/scsi_debug.c | 125 +- drivers/scsi/scsi_devinfo.c | 74 +- drivers/scsi/scsi_error.c | 76 + drivers/scsi/scsi_lib.c | 73 +- drivers/scsi/scsi_module.c | 1 - drivers/scsi/scsi_priv.h | 2 +- drivers/scsi/scsi_scan.c | 200 +- drivers/scsi/scsi_sysfs.c | 7 +- drivers/scsi/scsi_transport_fc.c | 50 +- drivers/scsi/scsi_transport_spi.c | 9 +- drivers/scsi/scsiiom.c | 1654 ------ drivers/scsi/sd.c | 13 +- drivers/scsi/seagate.c | 86 +- drivers/scsi/sg.c | 20 +- drivers/scsi/sim710.c | 16 +- drivers/scsi/sr.c | 7 +- drivers/scsi/st.c | 455 +- drivers/scsi/st.h | 30 +- drivers/scsi/sun3_scsi.c | 10 +- drivers/scsi/sun3_scsi_vme.c | 10 +- drivers/scsi/sun3x_esp.c | 2 +- drivers/scsi/sym53c416.c | 8 +- drivers/scsi/sym53c8xx_2/sym_glue.c | 616 +- drivers/scsi/sym53c8xx_comm.h | 358 +- drivers/scsi/sym53c8xx_defs.h | 39 +- drivers/scsi/t128.c | 71 +- drivers/scsi/tmscsim.c | 2720 ++++++--- drivers/scsi/tmscsim.h | 102 +- drivers/scsi/u14-34f.c | 70 +- drivers/scsi/ultrastor.c | 2 +- drivers/scsi/wd33c93.c | 2 +- drivers/scsi/wd7000.c | 13 +- drivers/scsi/zalon.c | 7 +- drivers/serial/68360serial.c | 22 +- drivers/serial/8250.c | 931 ++- drivers/serial/8250_acorn.c | 60 +- drivers/serial/8250_acpi.c | 74 +- drivers/serial/8250_pci.c | 102 +- drivers/serial/8250_pnp.c | 35 +- drivers/serial/Kconfig | 54 +- drivers/serial/Makefile | 5 + drivers/serial/amba-pl011.c | 51 +- drivers/serial/au1x00_uart.c | 15 - drivers/serial/icom.c | 10 +- drivers/serial/pmac_zilog.c | 82 +- drivers/serial/pxa.c | 47 +- drivers/serial/serial_core.c | 138 +- drivers/serial/sh-sci.c | 72 +- drivers/serial/sh-sci.h | 76 +- drivers/serial/sunsab.c | 24 +- drivers/serial/sunsu.c | 19 +- drivers/serial/sunzilog.c | 74 +- drivers/tc/zs.c | 14 +- drivers/usb/Kconfig | 2 +- drivers/usb/Makefile | 2 + drivers/usb/class/audio.c | 55 +- drivers/usb/class/bluetty.c | 32 +- drivers/usb/class/cdc-acm.c | 47 +- drivers/usb/class/usb-midi.c | 19 +- drivers/usb/class/usblp.c | 20 +- drivers/usb/core/devices.c | 18 +- drivers/usb/core/devio.c | 78 +- drivers/usb/core/hcd-pci.c | 157 +- drivers/usb/core/hcd.c | 132 +- drivers/usb/core/hcd.h | 15 +- drivers/usb/core/hub.c | 636 ++- drivers/usb/core/inode.c | 124 +- drivers/usb/core/message.c | 94 +- drivers/usb/core/urb.c | 16 +- drivers/usb/core/usb.c | 272 +- drivers/usb/core/usb.h | 25 +- drivers/usb/gadget/Kconfig | 15 +- drivers/usb/gadget/dummy_hcd.c | 449 +- drivers/usb/gadget/ether.c | 137 +- drivers/usb/gadget/file_storage.c | 83 +- drivers/usb/gadget/gadget_chips.h | 12 + drivers/usb/gadget/inode.c | 6 +- drivers/usb/gadget/net2280.c | 21 +- drivers/usb/gadget/pxa2xx_udc.c | 17 +- drivers/usb/gadget/rndis.c | 57 +- drivers/usb/gadget/serial.c | 904 ++- drivers/usb/gadget/zero.c | 6 +- drivers/usb/host/ehci-dbg.c | 17 +- drivers/usb/host/ehci-hcd.c | 267 +- drivers/usb/host/ehci-hub.c | 83 +- drivers/usb/host/ehci-mem.c | 5 - drivers/usb/host/ehci-q.c | 138 +- drivers/usb/host/ehci-sched.c | 25 +- drivers/usb/host/ehci.h | 13 +- drivers/usb/host/hc_simple.c | 1039 ---- drivers/usb/host/hc_simple.h | 231 - drivers/usb/host/hc_sl811.c | 1361 ----- drivers/usb/host/hc_sl811.h | 385 -- drivers/usb/host/hc_sl811_rh.c | 583 -- drivers/usb/host/ohci-dbg.c | 132 +- drivers/usb/host/ohci-hcd.c | 345 +- drivers/usb/host/ohci-hub.c | 228 +- drivers/usb/host/ohci-mem.c | 9 +- drivers/usb/host/ohci-omap.c | 64 +- drivers/usb/host/ohci-pci.c | 62 +- drivers/usb/host/ohci-q.c | 159 +- drivers/usb/host/ohci-sa1111.c | 35 +- drivers/usb/host/ohci.h | 280 +- drivers/usb/host/uhci-debug.c | 11 - drivers/usb/host/uhci-hcd.c | 312 +- drivers/usb/host/uhci-hcd.h | 20 +- drivers/usb/host/uhci-hub.c | 142 +- drivers/usb/image/hpusbscsi.c | 12 +- drivers/usb/image/mdc800.c | 18 +- drivers/usb/image/microtek.c | 17 +- drivers/usb/input/Kconfig | 14 +- drivers/usb/input/aiptek.c | 4 +- drivers/usb/input/ati_remote.c | 12 +- drivers/usb/input/hid-core.c | 61 +- drivers/usb/input/kbtab.c | 4 +- drivers/usb/input/mtouchusb.c | 4 +- drivers/usb/input/powermate.c | 4 +- drivers/usb/input/wacom.c | 4 +- drivers/usb/media/Kconfig | 6 +- drivers/usb/media/dabusb.c | 7 +- drivers/usb/media/konicawc.c | 9 +- drivers/usb/media/ov511.c | 24 +- drivers/usb/media/se401.c | 24 +- drivers/usb/media/stv680.c | 28 +- drivers/usb/media/usbvideo.c | 102 +- drivers/usb/media/vicam.c | 14 +- drivers/usb/media/w9968cf.c | 69 +- drivers/usb/media/w9968cf.h | 2 +- drivers/usb/misc/Kconfig | 10 + drivers/usb/misc/Makefile | 3 +- drivers/usb/misc/auerswald.c | 14 +- drivers/usb/misc/legousbtower.c | 4 +- drivers/usb/misc/speedtch.c | 0 drivers/usb/misc/tiglusb.c | 60 +- drivers/usb/misc/uss720.c | 4 +- drivers/usb/net/kaweth.c | 184 +- drivers/usb/net/pegasus.c | 401 +- drivers/usb/net/pegasus.h | 3 + drivers/usb/net/rtl8150.c | 194 +- drivers/usb/net/usbnet.c | 111 +- drivers/usb/serial/Kconfig | 25 + drivers/usb/serial/Makefile | 2 + drivers/usb/serial/belkin_sa.c | 9 +- drivers/usb/serial/bus.c | 1 + drivers/usb/serial/console.c | 4 +- drivers/usb/serial/cyberjack.c | 22 +- drivers/usb/serial/digi_acceleport.c | 25 +- drivers/usb/serial/empeg.c | 20 +- drivers/usb/serial/ftdi_sio.c | 52 +- drivers/usb/serial/ftdi_sio.h | 15 + drivers/usb/serial/generic.c | 14 +- drivers/usb/serial/io_edgeport.c | 285 +- drivers/usb/serial/io_ti.c | 825 ++- drivers/usb/serial/ipaq.c | 523 +- drivers/usb/serial/ipaq.h | 75 - drivers/usb/serial/ir-usb.c | 13 +- drivers/usb/serial/keyspan.c | 11 +- drivers/usb/serial/keyspan.h | 1 - drivers/usb/serial/keyspan_pda.c | 19 +- drivers/usb/serial/kl5kusb105.c | 25 +- drivers/usb/serial/kobil_sct.c | 26 +- drivers/usb/serial/mct_u232.c | 20 +- drivers/usb/serial/omninet.c | 19 +- drivers/usb/serial/pl2303.c | 424 +- drivers/usb/serial/pl2303.h | 11 +- drivers/usb/serial/safe_serial.c | 9 +- drivers/usb/serial/usb-serial.c | 317 +- drivers/usb/serial/usb-serial.h | 21 +- drivers/usb/serial/visor.c | 22 +- drivers/usb/serial/whiteheat.c | 19 +- drivers/usb/storage/Kconfig | 15 +- drivers/usb/storage/isd200.c | 10 +- drivers/usb/storage/scsiglue.c | 84 +- drivers/usb/storage/transport.c | 29 +- drivers/usb/storage/unusual_devs.h | 150 +- drivers/usb/storage/usb.c | 92 +- drivers/usb/storage/usb.h | 11 +- drivers/video/Kconfig | 92 +- drivers/video/Makefile | 9 +- drivers/video/acornfb.c | 22 +- drivers/video/aty/atyfb_base.c | 3621 +++++++----- drivers/video/aty/mach64_cursor.c | 297 +- drivers/video/aty/radeon_base.c | 318 +- drivers/video/aty/radeon_monitor.c | 80 +- drivers/video/aty/radeon_pm.c | 10 +- drivers/video/aty/radeonfb.h | 2 - drivers/video/cirrusfb.c | 43 +- drivers/video/console/Kconfig | 1 + drivers/video/console/Makefile | 3 +- drivers/video/console/fbcon.c | 1332 ++--- drivers/video/console/fbcon.h | 33 +- drivers/video/console/vgacon.c | 4 +- drivers/video/cyber2000fb.c | 16 +- drivers/video/fbmem.c | 204 +- drivers/video/hgafb.c | 54 +- drivers/video/i810/i810_gtf.c | 3 +- drivers/video/imsttfb.c | 23 +- drivers/video/kyro/fbdev.c | 3 +- drivers/video/matrox/matroxfb_base.c | 49 +- drivers/video/matrox/matroxfb_base.h | 141 +- drivers/video/matrox/matroxfb_crtc2.c | 7 +- drivers/video/modedb.c | 43 +- drivers/video/neofb.c | 103 +- drivers/video/pm2fb.c | 54 +- drivers/video/radeonfb.c | 15 +- drivers/video/riva/fbdev.c | 410 +- drivers/video/riva/riva_hw.c | 569 +- drivers/video/riva/rivafb.h | 3 +- drivers/video/sa1100fb.c | 319 +- drivers/video/sis/sis_main.c | 5 +- drivers/video/skeletonfb.c | 44 +- drivers/video/softcursor.c | 73 +- drivers/video/sstfb.c | 36 +- drivers/video/tdfxfb.c | 19 +- drivers/video/tgafb.c | 45 +- drivers/video/tridentfb.c | 21 +- drivers/video/vesafb.c | 83 +- drivers/video/vfb.c | 2 +- drivers/video/vga16fb.c | 40 +- fs/Kconfig | 29 +- fs/Makefile | 13 +- fs/aio.c | 7 +- fs/autofs4/inode.c | 2 +- fs/binfmt_aout.c | 10 +- fs/binfmt_elf.c | 41 +- fs/binfmt_flat.c | 2 +- fs/bio.c | 38 +- fs/buffer.c | 127 +- fs/char_dev.c | 10 +- fs/cifs/CHANGES | 54 +- fs/cifs/README | 82 +- fs/cifs/TODO | 34 +- fs/cifs/cifs_debug.c | 17 +- fs/cifs/cifsfs.c | 123 +- fs/cifs/cifsfs.h | 8 +- fs/cifs/cifsglob.h | 33 +- fs/cifs/cifspdu.h | 415 +- fs/cifs/cifsproto.h | 15 +- fs/cifs/cifssmb.c | 1127 +++- fs/cifs/connect.c | 94 +- fs/cifs/dir.c | 3 - fs/cifs/fcntl.c | 54 +- fs/cifs/file.c | 347 +- fs/cifs/inode.c | 40 +- fs/cifs/misc.c | 80 +- fs/cifs/transport.c | 150 +- fs/coda/sysctl.c | 2 +- fs/coda/upcall.c | 26 +- fs/compat.c | 62 +- fs/compat_ioctl.c | 10 + fs/dcache.c | 61 +- fs/dcookies.c | 1 + fs/devfs/base.c | 2 +- fs/devpts/inode.c | 2 +- fs/direct-io.c | 51 +- fs/dquot.c | 16 +- fs/eventpoll.c | 2 +- fs/exec.c | 236 +- fs/ext2/acl.c | 49 +- fs/ext2/inode.c | 13 - fs/ext2/namei.c | 3 +- fs/ext2/super.c | 66 +- fs/ext3/acl.c | 51 +- fs/ext3/balloc.c | 163 +- fs/ext3/ialloc.c | 2 +- fs/ext3/inode.c | 24 +- fs/ext3/ioctl.c | 8 +- fs/ext3/namei.c | 2 +- fs/ext3/super.c | 34 +- fs/fat/dir.c | 146 +- fs/fat/fatfs_syms.c | 9 +- fs/fat/inode.c | 165 +- fs/fcntl.c | 15 +- fs/file.c | 7 +- fs/fs-writeback.c | 22 +- fs/hfs/inode.c | 41 +- fs/hfs/super.c | 3 +- fs/hfsplus/inode.c | 38 +- fs/hfsplus/ioctl.c | 106 + fs/hostfs/hostfs_kern.c | 2 +- fs/inode.c | 69 +- fs/ioctl.c | 1 + fs/jbd/commit.c | 29 +- fs/jbd/journal.c | 12 +- fs/jbd/transaction.c | 47 +- fs/jffs2/compr.c | 9 +- fs/jffs2/erase.c | 2 +- fs/jffs2/gc.c | 19 +- fs/jffs2/nodelist.c | 11 +- fs/jffs2/nodelist.h | 15 +- fs/jffs2/nodemgmt.c | 55 +- fs/jffs2/readinode.c | 4 +- fs/jffs2/scan.c | 8 +- fs/jffs2/super.c | 13 +- fs/jffs2/wbuf.c | 8 +- fs/jffs2/write.c | 6 +- fs/jfs/acl.c | 89 +- fs/jfs/jfs_dmap.c | 10 +- fs/jfs/jfs_dtree.c | 26 +- fs/jfs/jfs_imap.c | 65 +- fs/jfs/jfs_incore.h | 2 +- fs/jfs/jfs_logmgr.c | 10 +- fs/jfs/jfs_logmgr.h | 96 +- fs/jfs/jfs_metapage.c | 10 +- fs/jfs/jfs_mount.c | 2 +- fs/jfs/jfs_txnmgr.c | 4 +- fs/jfs/jfs_types.h | 16 +- fs/jfs/jfs_xtree.c | 62 +- fs/jfs/super.c | 4 + fs/lockd/clntproc.c | 11 +- fs/lockd/host.c | 4 +- fs/lockd/lockd_syms.c | 36 - fs/lockd/svc.c | 48 +- fs/lockd/svc4proc.c | 7 +- fs/lockd/svcsubs.c | 7 +- fs/locks.c | 224 +- fs/namei.c | 34 +- fs/namespace.c | 5 +- fs/nfs/dir.c | 2 +- fs/nfs/direct.c | 6 +- fs/nfsctl.c | 1 + fs/nfsd/export.c | 7 +- fs/nfsd/lockd.c | 7 +- fs/nfsd/nfs4proc.c | 51 +- fs/nfsd/nfs4state.c | 295 +- fs/nfsd/nfs4xdr.c | 26 +- fs/nfsd/nfsfh.c | 76 +- fs/nfsd/vfs.c | 36 +- fs/ntfs/ChangeLog | 192 +- fs/ntfs/Makefile | 6 +- fs/ntfs/aops.c | 1228 ++-- fs/ntfs/attrib.c | 1326 ++--- fs/ntfs/attrib.h | 34 +- fs/ntfs/compress.c | 10 +- fs/ntfs/debug.c | 19 +- fs/ntfs/debug.h | 6 +- fs/ntfs/dir.c | 62 +- fs/ntfs/dir.h | 2 + fs/ntfs/file.c | 7 +- fs/ntfs/inode.c | 466 +- fs/ntfs/inode.h | 24 +- fs/ntfs/layout.h | 87 +- fs/ntfs/logfile.c | 65 +- fs/ntfs/malloc.h | 1 + fs/ntfs/mft.c | 2582 +++++++-- fs/ntfs/mft.h | 15 +- fs/ntfs/namei.c | 27 +- fs/ntfs/ntfs.h | 81 +- fs/ntfs/super.c | 69 +- fs/ntfs/types.h | 28 - fs/ntfs/unistr.c | 2 + fs/ntfs/upcase.c | 1 + fs/ntfs/volume.h | 4 + fs/open.c | 3 +- fs/openpromfs/inode.c | 4 +- fs/partitions/Kconfig | 33 +- fs/partitions/check.c | 21 +- fs/partitions/msdos.c | 1 + fs/pipe.c | 4 +- fs/proc/array.c | 64 +- fs/proc/base.c | 10 +- fs/proc/generic.c | 2 +- fs/proc/proc_misc.c | 10 +- fs/proc/proc_tty.c | 2 +- fs/proc/root.c | 2 +- fs/proc/task_mmu.c | 10 +- fs/quota.c | 1 + fs/read_write.c | 1 + fs/readdir.c | 1 + fs/reiserfs/bitmap.c | 30 +- fs/reiserfs/dir.c | 11 +- fs/reiserfs/do_balan.c | 2 +- fs/reiserfs/file.c | 127 +- fs/reiserfs/fix_node.c | 6 +- fs/reiserfs/ibalance.c | 8 +- fs/reiserfs/inode.c | 198 +- fs/reiserfs/item_ops.c | 10 +- fs/reiserfs/journal.c | 1141 ++-- fs/reiserfs/namei.c | 161 +- fs/reiserfs/objectid.c | 2 + fs/reiserfs/prints.c | 53 +- fs/reiserfs/procfs.c | 2 +- fs/reiserfs/stree.c | 85 +- fs/reiserfs/super.c | 169 +- fs/reiserfs/tail_conversion.c | 3 + fs/reiserfs/xattr.c | 1 + fs/select.c | 2 +- fs/smbfs/inode.c | 23 +- fs/smbfs/proc.c | 31 +- fs/smbfs/proto.h | 2 +- fs/smbfs/request.c | 1 - fs/stat.c | 1 + fs/super.c | 18 +- fs/sysfs/dir.c | 5 +- fs/ufs/balloc.c | 2 +- fs/xattr.c | 1 + fs/xfs/linux-2.6/xfs_ioctl.c | 7 +- fs/xfs/linux-2.6/xfs_lrw.c | 2 +- fs/xfs/linux-2.6/xfs_super.c | 6 +- fs/xfs/quota/xfs_qm.c | 47 +- fs/xfs/quota/xfs_qm_syscalls.c | 12 +- fs/xfs/xfs_dinode.h | 6 - fs/xfs/xfs_inode.c | 3 +- fs/xfs/xfs_inode.h | 6 +- fs/xfs/xfs_itable.c | 2 +- fs/xfs/xfs_log.c | 55 +- fs/xfs/xfs_log_recover.c | 7 +- fs/xfs/xfs_mount.c | 16 +- fs/xfs/xfs_mount.h | 8 +- fs/xfs/xfs_rtalloc.c | 18 +- fs/xfs/xfs_trans.h | 2 +- fs/xfs/xfs_vfsops.c | 2 +- include/acpi/acpiosxf.h | 15 +- include/acpi/actbl2.h | 92 +- include/asm-alpha/io.h | 28 +- include/asm-alpha/pgtable.h | 8 +- include/asm-alpha/topology.h | 3 - include/asm-arm/arch-cl7500/serial.h | 47 - include/asm-arm/arch-ebsa110/io.h | 14 +- include/asm-arm/arch-ebsa110/serial.h | 35 - include/asm-arm/arch-ebsa285/serial.h | 40 - include/asm-arm/arch-epxa10db/serial.h | 48 - include/asm-arm/arch-h720x/serial.h | 101 - include/asm-arm/arch-imx/serial.h | 26 - include/asm-arm/arch-integrator/platform.h | 4 - include/asm-arm/arch-integrator/serial.h | 47 - include/asm-arm/arch-integrator/time.h | 156 - include/asm-arm/arch-iop3xx/serial.h | 76 - include/asm-arm/arch-ixp2000/serial.h | 27 - include/asm-arm/arch-ixp4xx/serial.h | 27 - include/asm-arm/arch-lh7a40x/serial.h | 25 - include/asm-arm/arch-omap/dma.h | 28 +- include/asm-arm/arch-omap/hardware.h | 114 +- include/asm-arm/arch-omap/memory.h | 4 +- include/asm-arm/arch-omap/mux.h | 39 +- include/asm-arm/arch-omap/omap1610.h | 129 - include/asm-arm/arch-omap/omap5912.h | 112 - include/asm-arm/arch-omap/pm.h | 259 +- include/asm-arm/arch-omap/serial.h | 52 - include/asm-arm/arch-omap/uncompress.h | 27 +- include/asm-arm/arch-pxa/pxa-regs.h | 189 +- include/asm-arm/arch-pxa/serial.h | 50 - include/asm-arm/arch-rpc/serial.h | 46 - include/asm-arm/arch-s3c2410/regs-serial.h | 99 +- include/asm-arm/arch-s3c2410/serial.h | 28 - include/asm-arm/arch-sa1100/adsbitsy.h | 14 - include/asm-arm/arch-sa1100/flexanet.h | 100 - include/asm-arm/arch-sa1100/freebird.h | 69 - include/asm-arm/arch-sa1100/graphicsclient.h | 100 - include/asm-arm/arch-sa1100/graphicsmaster.h | 64 - include/asm-arm/arch-sa1100/huw_webpanel.h | 49 - include/asm-arm/arch-sa1100/irqs.h | 9 +- include/asm-arm/arch-sa1100/itsy.h | 5 - include/asm-arm/arch-sa1100/mftb2.h | 210 - include/asm-arm/arch-sa1100/omnimeter.h | 84 - include/asm-arm/arch-sa1100/pangolin.h | 62 - include/asm-arm/arch-sa1100/pfs168.h | 75 - include/asm-arm/arch-sa1100/pleb.h | 21 - include/asm-arm/arch-sa1100/serial.h | 47 - include/asm-arm/arch-sa1100/stork.h | 164 - include/asm-arm/arch-sa1100/system3.h | 113 - include/asm-arm/arch-sa1100/trizeps.h | 22 - include/asm-arm/arch-sa1100/yopy.h | 127 - include/asm-arm/arch-shark/serial.h | 31 - include/asm-arm/arch-versatile/serial.h | 37 - include/asm-arm/cacheflush.h | 65 +- include/asm-arm/ecard.h | 1 + include/asm-arm/ide.h | 4 - include/asm-arm/mach/arch.h | 6 +- include/asm-arm/page.h | 8 +- include/asm-arm/pgtable.h | 2 +- include/asm-arm/setup.h | 2 - include/asm-arm/system.h | 58 +- include/asm-arm/thread_info.h | 6 +- include/asm-arm/uaccess.h | 34 +- include/asm-arm26/linux_logo.h | 19 - include/asm-arm26/pgtable.h | 2 +- include/asm-cris/io.h | 2 + include/asm-generic/vmlinux.lds.h | 6 + include/asm-h8300/bitops.h | 8 +- include/asm-h8300/hardirq.h | 21 - include/asm-h8300/io.h | 25 +- include/asm-h8300/linux_logo.h | 11 - include/asm-h8300/pgtable.h | 3 +- include/asm-h8300/sigcontext.h | 2 + include/asm-h8300/timex.h | 4 - include/asm-h8300/unistd.h | 1 + include/asm-i386/acpi.h | 7 +- include/asm-i386/apic.h | 9 +- include/asm-i386/apicdef.h | 1 - include/asm-i386/cpu.h | 1 + include/asm-i386/hpet.h | 1 + include/asm-i386/hw_irq.h | 16 +- include/asm-i386/ide.h | 14 +- include/asm-i386/io_apic.h | 6 +- include/asm-i386/irq.h | 32 +- include/asm-i386/kexec.h | 25 - include/asm-i386/kmap_types.h | 4 +- include/asm-i386/module.h | 2 + include/asm-i386/mpspec.h | 2 +- include/asm-i386/page.h | 3 +- include/asm-i386/param.h | 4 +- include/asm-i386/pgtable.h | 3 +- include/asm-i386/processor.h | 2 + include/asm-i386/suspend.h | 3 + include/asm-i386/system.h | 4 +- include/asm-i386/thread_info.h | 10 +- include/asm-i386/timer.h | 20 +- include/asm-i386/timex.h | 4 - include/asm-i386/unistd.h | 20 +- include/asm-ia64/delay.h | 2 +- include/asm-ia64/machvec.h | 23 +- include/asm-ia64/machvec_sn2.h | 4 + include/asm-ia64/pci.h | 9 +- include/asm-ia64/pgtable.h | 12 +- include/asm-ia64/processor.h | 25 +- include/asm-ia64/sn/intr.h | 10 +- include/asm-ia64/sn/pda.h | 2 +- include/asm-ia64/unistd.h | 6 +- include/asm-m68k/atomic.h | 2 + include/asm-m68k/bootinfo.h | 7 + include/asm-m68k/io.h | 19 + include/asm-m68k/pgtable.h | 3 +- include/asm-m68k/setup.h | 2 +- include/asm-m68k/tlbflush.h | 2 + include/asm-m68k/unistd.h | 52 +- include/asm-m68knommu/m5282sim.h | 35 - include/asm-m68knommu/pgtable.h | 3 +- include/asm-m68knommu/shglcore.h | 65 - include/asm-m68knommu/shglports.h | 76 - include/asm-m68knommu/unistd.h | 73 +- include/asm-mips/atomic.h | 631 ++- include/asm-mips/baget/baget.h | 69 - include/asm-mips/baget/vac.h | 208 - include/asm-mips/baget/vic.h | 192 - include/asm-mips/bootinfo.h | 2 + include/asm-mips/checksum.h | 1 + include/asm-mips/hazards.h | 2 +- include/asm-mips/mach-au1x00/au1000.h | 322 +- include/asm-mips/mach-db1x00/db1x00.h | 34 +- include/asm-mips/mach-generic/ide.h | 21 +- include/asm-mips/mipsregs.h | 7 + include/asm-mips/mmu_context.h | 10 +- include/asm-mips/page.h | 17 +- include/asm-mips/pci.h | 65 + include/asm-mips/pci_channel.h | 46 - include/asm-mips/pgtable-32.h | 22 + include/asm-mips/pgtable-64.h | 19 +- include/asm-mips/pgtable-bits.h | 33 +- include/asm-mips/pgtable.h | 133 +- include/asm-mips/processor.h | 72 +- include/asm-mips/ptrace.h | 2 + include/asm-mips/serial.h | 105 +- include/asm-mips/smp.h | 7 +- include/asm-mips/spinlock.h | 259 +- include/asm-mips/stackframe.h | 2 +- include/asm-mips/system.h | 362 +- include/asm-mips/thread_info.h | 2 +- include/asm-mips/titan_dep.h | 40 +- include/asm-mips/uaccess.h | 217 +- include/asm-mips/unistd.h | 92 +- include/asm-parisc/atomic.h | 54 +- include/asm-parisc/bitops.h | 24 +- include/asm-parisc/pdc.h | 1 + include/asm-parisc/pgtable.h | 3 +- include/asm-parisc/som.h | 8 - include/asm-parisc/spinlock.h | 42 +- include/asm-parisc/system.h | 24 +- include/asm-parisc/uaccess.h | 178 +- include/asm-parisc/unistd.h | 40 +- include/asm-ppc/commproc.h | 69 +- include/asm-ppc/ibm4xx.h | 4 + include/asm-ppc/io.h | 340 +- include/asm-ppc/irq.h | 26 +- include/asm-ppc/kexec.h | 26 - include/asm-ppc/machdep.h | 1 + include/asm-ppc/ocp_ids.h | 1 + include/asm-ppc/pgtable.h | 3 +- include/asm-ppc/pmac_feature.h | 6 +- include/asm-ppc/reg_booke.h | 4 +- include/asm-ppc/unistd.h | 8 +- include/asm-ppc64/eeh.h | 179 +- include/asm-ppc64/hardirq.h | 45 +- include/asm-ppc64/ide.h | 2 +- include/asm-ppc64/io.h | 38 +- include/asm-ppc64/iommu.h | 13 +- include/asm-ppc64/irq.h | 20 +- include/asm-ppc64/machdep.h | 8 + include/asm-ppc64/mmu.h | 1 + include/asm-ppc64/paca.h | 14 +- include/asm-ppc64/page.h | 1 - include/asm-ppc64/pci-bridge.h | 34 +- include/asm-ppc64/pci.h | 11 +- include/asm-ppc64/pgtable.h | 31 +- include/asm-ppc64/processor.h | 1 + include/asm-ppc64/prom.h | 29 +- include/asm-ppc64/rtas.h | 2 +- include/asm-ppc64/smp.h | 19 +- include/asm-ppc64/thread_info.h | 2 +- include/asm-ppc64/udbg.h | 4 +- include/asm-ppc64/unistd.h | 23 +- include/asm-s390/debug.h | 2 + include/asm-s390/unistd.h | 3 +- include/asm-sh/bugs.h | 4 +- include/asm-sh/cache.h | 5 +- include/asm-sh/checksum.h | 3 +- include/asm-sh/cpu-sh3/cacheflush.h | 42 + include/asm-sh/dma-mapping.h | 46 +- include/asm-sh/dma.h | 2 + include/asm-sh/irq.h | 25 +- include/asm-sh/machvec.h | 2 +- include/asm-sh/mpc1211/keyboard.h | 2 +- include/asm-sh/page.h | 8 +- include/asm-sh/pgtable.h | 7 +- include/asm-sh/processor.h | 4 + include/asm-sh/ubc.h | 3 +- include/asm-sh/unistd.h | 8 +- include/asm-sparc/atomic.h | 1 + include/asm-sparc/dma.h | 2 +- include/asm-sparc/hardirq.h | 21 - include/asm-sparc/processor.h | 2 + include/asm-sparc/signal.h | 8 +- include/asm-sparc/unistd.h | 6 +- include/asm-sparc64/hardirq.h | 21 - include/asm-sparc64/io.h | 70 +- include/asm-sparc64/pci.h | 5 + include/asm-sparc64/uaccess.h | 34 +- include/asm-sparc64/unistd.h | 6 +- include/asm-um/current.h | 13 +- include/asm-um/pgtable.h | 9 +- include/asm-um/processor-generic.h | 2 +- include/asm-um/thread_info.h | 1 + include/asm-um/unistd.h | 10 +- include/asm-x86_64/apicdef.h | 33 +- include/asm-x86_64/compat.h | 2 +- include/asm-x86_64/io.h | 113 +- include/asm-x86_64/irq.h | 9 +- include/asm-x86_64/kexec.h | 25 - include/asm-x86_64/mmu_context.h | 5 +- include/asm-x86_64/mpspec.h | 6 +- include/asm-x86_64/msi.h | 1 + include/asm-x86_64/page.h | 12 +- include/asm-x86_64/pgtable.h | 4 +- include/asm-x86_64/processor.h | 2 + include/asm-x86_64/smp.h | 49 +- include/asm-x86_64/timex.h | 4 - include/asm-x86_64/topology.h | 22 +- include/asm-x86_64/uaccess.h | 2 +- include/asm-x86_64/unistd.h | 2 +- include/linux/acpi.h | 27 + include/linux/atm.h | 3 + include/linux/atmdev.h | 4 + include/linux/bio.h | 7 + include/linux/blkdev.h | 67 +- include/linux/buffer_head.h | 14 +- include/linux/cdrom.h | 3 + include/linux/coda.h | 4 +- include/linux/compat.h | 2 + include/linux/compat_ioctl.h | 9 + include/linux/compiler.h | 11 + include/linux/cpufreq.h | 27 +- include/linux/dcache.h | 3 +- include/linux/device.h | 11 +- include/linux/dvb/osd.h | 32 + include/linux/efi.h | 2 +- include/linux/elevator.h | 64 +- include/linux/ext3_fs.h | 6 +- include/linux/ext3_fs_i.h | 8 +- include/linux/ext3_fs_sb.h | 4 +- include/linux/fb.h | 125 +- include/linux/filter.h | 8 + include/linux/fs.h | 32 +- include/linux/hdlc.h | 8 +- include/linux/i2c.h | 18 +- include/linux/i2o.h | 68 +- include/linux/ide.h | 158 +- include/linux/idr.h | 2 +- include/linux/inetdevice.h | 3 + include/linux/init_task.h | 2 +- include/linux/interrupt.h | 33 +- include/linux/ipmi.h | 2 +- include/linux/ipmi_msgdefs.h | 2 +- include/linux/irq.h | 2 +- include/linux/isicom.h | 173 - include/linux/jbd.h | 45 +- include/linux/jffs2_fs_i.h | 3 +- include/linux/kallsyms.h | 10 + include/linux/kernel.h | 35 +- include/linux/kexec.h | 56 - include/linux/kmod.h | 4 - include/linux/kobject.h | 22 +- include/linux/libata.h | 46 +- include/linux/lockd/lockd.h | 1 - include/linux/lockd/xdr.h | 5 - include/linux/mm.h | 15 +- include/linux/mmzone.h | 66 +- include/linux/module.h | 63 +- include/linux/moduleparam.h | 21 +- include/linux/mount.h | 2 + include/linux/msdos_fs.h | 7 +- include/linux/mtd/cfi.h | 58 +- include/linux/mtd/doc2000.h | 8 +- include/linux/mtd/gen_probe.h | 2 +- include/linux/mtd/map.h | 20 +- include/linux/mtd/nand.h | 20 +- include/linux/mtd/partitions.h | 3 +- include/linux/net.h | 2 +- include/linux/netdevice.h | 34 +- include/linux/netfilter.h | 2 + include/linux/netfilter_ipv4/ip_conntrack.h | 4 + include/linux/netfilter_ipv4/ip_tables.h | 4 + include/linux/netfilter_ipv6/ip6_tables.h | 12 +- include/linux/netlink.h | 1 + include/linux/netpoll.h | 4 +- include/linux/nfsd/state.h | 16 + include/linux/nfsd/xdr4.h | 1 + include/linux/pci.h | 96 +- include/linux/pci_ids.h | 78 +- include/linux/pid.h | 2 - include/linux/pkt_cls.h | 8 +- include/linux/pkt_sched.h | 34 +- include/linux/pm.h | 38 +- include/linux/posix-timers.h | 38 +- include/linux/prctl.h | 1 - include/linux/proc_fs.h | 3 +- include/linux/ptrace.h | 2 + include/linux/random.h | 2 - include/linux/rcupdate.h | 18 + include/linux/reboot.h | 16 - include/linux/reiserfs_fs.h | 112 +- include/linux/reiserfs_fs_sb.h | 42 +- include/linux/rmap.h | 1 + include/linux/rtnetlink.h | 2 + include/linux/sched.h | 187 +- include/linux/security.h | 70 +- include/linux/serial_core.h | 26 +- include/linux/slab.h | 7 + include/linux/smp_lock.h | 64 +- include/linux/spinlock.h | 124 +- include/linux/stallion.h | 2 +- include/linux/swap.h | 2 + include/linux/syscalls.h | 15 + include/linux/sysctl.h | 1 + include/linux/sysrq.h | 46 +- include/linux/tcp.h | 4 + include/linux/time.h | 282 +- include/linux/timer.h | 3 + include/linux/times.h | 74 +- include/linux/timex.h | 62 +- include/linux/tty.h | 2 + include/linux/tty_driver.h | 6 +- include/linux/tty_ldisc.h | 2 +- include/linux/types.h | 16 +- include/linux/usb.h | 29 +- include/linux/usbdevice_fs.h | 35 - include/linux/videodev.h | 15 +- include/linux/videodev2.h | 18 +- include/linux/wait.h | 90 +- include/linux/workqueue.h | 3 + include/linux/writeback.h | 8 +- include/media/ir-common.h | 2 + include/media/saa7146_vv.h | 7 +- include/media/video-buf.h | 64 +- include/net/addrconf.h | 3 +- include/net/bluetooth/bluetooth.h | 1 + include/net/bluetooth/hci.h | 42 +- include/net/bluetooth/hci_core.h | 78 +- include/net/bluetooth/l2cap.h | 2 + include/net/dst.h | 10 +- include/net/ip.h | 4 +- include/net/ip6_route.h | 4 +- include/net/ipv6.h | 11 +- include/net/irda/irlmp.h | 3 +- include/net/neighbour.h | 6 +- include/net/pkt_cls.h | 278 +- include/net/pkt_sched.h | 265 +- include/net/sctp/sctp.h | 8 +- include/net/sock.h | 21 +- include/net/tcp.h | 77 +- include/net/tux.h | 2 +- include/net/xfrm.h | 4 +- include/pcmcia/cs_types.h | 3 - include/pcmcia/ftl.h | 73 - include/pcmcia/memory.h | 41 - include/pcmcia/ss.h | 8 - include/scsi/scsi.h | 19 +- include/scsi/scsi_device.h | 3 + include/scsi/scsi_devinfo.h | 2 + include/scsi/scsi_eh.h | 35 +- include/scsi/scsi_host.h | 9 - include/scsi/scsi_transport.h | 5 - include/scsi/scsi_transport_fc.h | 12 +- include/sound/ac97_codec.h | 17 +- include/sound/control.h | 4 + include/sound/core.h | 8 +- include/sound/cs46xx.h | 2 +- include/sound/emu10k1.h | 61 +- include/sound/pcm.h | 1 + include/sound/ymfpci.h | 2 +- include/video/neomagic.h | 4 +- include/video/radeon.h | 3 +- include/video/sstfb.h | 11 +- init/Kconfig | 77 +- init/do_mounts_rd.c | 17 +- init/initramfs.c | 12 +- init/main.c | 20 +- ipc/mqueue.c | 12 +- ipc/msg.c | 3 +- ipc/sem.c | 3 +- ipc/shm.c | 16 +- ipc/util.c | 82 +- ipc/util.h | 13 +- kernel/Makefile | 5 +- kernel/acct.c | 25 +- kernel/audit.c | 2 +- kernel/auditsc.c | 2 +- kernel/capability.c | 1 + kernel/ckrm/ckrm_mem.c | 4 +- kernel/compat.c | 12 +- kernel/cpu.c | 36 - kernel/exit.c | 32 +- kernel/fork.c | 211 +- kernel/futex.c | 23 +- kernel/irq/handle.c | 4 +- kernel/irq/spurious.c | 103 +- kernel/itimer.c | 1 + kernel/kallsyms.c | 194 +- kernel/kexec.c | 640 --- kernel/kmod.c | 23 - kernel/module.c | 176 +- kernel/panic.c | 26 +- kernel/params.c | 395 +- kernel/pid.c | 148 +- kernel/posix-timers.c | 137 +- kernel/power/poweroff.c | 2 +- kernel/power/swsusp.c | 34 +- kernel/printk.c | 46 +- kernel/ptrace.c | 51 +- kernel/rcupdate.c | 2 +- kernel/sched.c | 751 +-- kernel/signal.c | 103 +- kernel/softirq.c | 46 +- kernel/sys.c | 151 +- kernel/sysctl.c | 26 +- kernel/time.c | 21 +- kernel/timer.c | 69 +- kernel/user.c | 16 + kernel/vserver/legacy.c | 37 +- kernel/workqueue.c | 34 + lib/Kconfig | 18 + lib/Makefile | 10 +- lib/bitmap.c | 2 +- lib/idr.c | 25 +- lib/kobject.c | 148 +- lib/radix-tree.c | 6 +- mm/bootmem.c | 10 +- mm/fadvise.c | 1 + mm/filemap.c | 167 +- mm/fremap.c | 1 + mm/madvise.c | 1 + mm/memory.c | 56 +- mm/mincore.c | 1 + mm/mlock.c | 13 +- mm/mmap.c | 65 +- mm/mprotect.c | 18 +- mm/mremap.c | 5 +- mm/msync.c | 1 + mm/nommu.c | 30 +- mm/page-writeback.c | 7 +- mm/page_alloc.c | 61 +- mm/rmap.c | 9 + mm/shmem.c | 194 +- mm/slab.c | 218 +- mm/swap_state.c | 2 +- mm/swapfile.c | 52 +- mm/truncate.c | 12 +- mm/vmscan.c | 12 +- net/802/fc.c | 32 + net/802/tr.c | 38 + net/8021q/vlan.c | 80 +- net/8021q/vlan.h | 2 + net/8021q/vlan_dev.c | 40 +- net/Kconfig | 4 + net/Makefile | 3 +- net/appletalk/ddp.c | 7 - net/atm/common.c | 2 + net/atm/signaling.c | 23 +- net/atm/svc.c | 142 +- net/ax25/ax25_route.c | 16 - net/bluetooth/af_bluetooth.c | 8 +- net/bluetooth/hci_conn.c | 31 +- net/bluetooth/hci_core.c | 50 +- net/bluetooth/hci_event.c | 97 +- net/bluetooth/hci_sock.c | 14 +- net/bluetooth/hci_sysfs.c | 15 +- net/bluetooth/l2cap.c | 205 +- net/bluetooth/lib.c | 6 +- net/bluetooth/rfcomm/sock.c | 15 +- net/bridge/br_if.c | 4 +- net/bridge/br_ioctl.c | 2 + net/bridge/netfilter/ebtables.c | 10 +- net/compat.c | 5 +- net/core/dev.c | 100 +- net/core/dst.c | 4 +- net/core/neighbour.c | 9 +- net/core/net-sysfs.c | 11 + net/core/netfilter.c | 23 +- net/core/netpoll.c | 66 +- net/core/pktgen.c | 15 +- net/core/skbuff.c | 4 +- net/core/sock.c | 11 +- net/decnet/af_decnet.c | 8 +- net/decnet/dn_dev.c | 63 +- net/decnet/dn_nsp_in.c | 1 + net/decnet/dn_route.c | 27 +- net/econet/af_econet.c | 2 +- net/ethernet/eth.c | 61 + net/ipv4/Kconfig | 21 +- net/ipv4/Makefile | 3 +- net/ipv4/af_inet.c | 29 +- net/ipv4/devinet.c | 5 +- net/ipv4/fib_frontend.c | 2 +- net/ipv4/fib_hash.c | 2 +- net/ipv4/fib_semantics.c | 2 +- net/ipv4/icmp.c | 2 + net/ipv4/igmp.c | 4 +- net/ipv4/ip_fragment.c | 2 +- net/ipv4/ip_output.c | 7 +- net/ipv4/ipconfig.c | 15 +- net/ipv4/ipvs/ip_vs_ctl.c | 41 +- net/ipv4/netfilter/Kconfig | 55 + net/ipv4/netfilter/Makefile | 4 + net/ipv4/netfilter/arp_tables.c | 2 +- net/ipv4/netfilter/ip_conntrack_amanda.c | 12 +- net/ipv4/netfilter/ip_conntrack_core.c | 22 +- net/ipv4/netfilter/ip_conntrack_ftp.c | 2 +- net/ipv4/netfilter/ip_conntrack_proto_tcp.c | 36 +- net/ipv4/netfilter/ip_conntrack_standalone.c | 9 + net/ipv4/netfilter/ip_fw_compat.c | 2 +- net/ipv4/netfilter/ip_nat_core.c | 57 +- net/ipv4/netfilter/ip_nat_standalone.c | 2 +- net/ipv4/netfilter/ip_tables.c | 18 +- net/ipv4/netfilter/ipt_MASQUERADE.c | 89 +- net/ipv4/netfilter/ipt_REJECT.c | 58 +- net/ipv4/netfilter/ipt_ULOG.c | 6 +- net/ipv4/raw.c | 6 +- net/ipv4/route.c | 15 +- net/ipv4/tcp.c | 67 +- net/ipv4/tcp_input.c | 6 +- net/ipv4/tcp_ipv4.c | 12 +- net/ipv4/tcp_minisocks.c | 8 +- net/ipv4/tcp_output.c | 7 +- net/ipv4/tcp_timer.c | 7 +- net/ipv4/udp.c | 50 +- net/ipv6/addrconf.c | 174 +- net/ipv6/af_inet6.c | 30 +- net/ipv6/anycast.c | 12 +- net/ipv6/datagram.c | 2 +- net/ipv6/ip6_flowlabel.c | 2 +- net/ipv6/ip6_output.c | 31 +- net/ipv6/ip6_tunnel.c | 10 +- net/ipv6/mcast.c | 46 +- net/ipv6/ndisc.c | 73 +- net/ipv6/netfilter/ip6_tables.c | 257 +- net/ipv6/netfilter/ip6t_LOG.c | 279 +- net/ipv6/netfilter/ip6t_owner.c | 3 +- net/ipv6/raw.c | 11 +- net/ipv6/reassembly.c | 10 +- net/ipv6/route.c | 67 +- net/ipv6/tcp_ipv6.c | 25 +- net/ipv6/udp.c | 15 +- net/ipv6/xfrm6_policy.c | 6 +- net/ipv6/xfrm6_state.c | 6 +- net/irda/af_irda.c | 2 +- net/irda/ircomm/ircomm_tty.c | 28 +- net/irda/irlap_event.c | 38 +- net/irda/irlmp.c | 108 +- net/netrom/nr_in.c | 11 +- net/packet/af_packet.c | 3 +- net/rose/rose_route.c | 3 +- net/sched/Kconfig | 29 +- net/sched/Makefile | 4 +- net/sched/cls_api.c | 29 +- net/sched/cls_fw.c | 372 +- net/sched/cls_route.c | 60 +- net/sched/cls_rsvp.h | 54 +- net/sched/cls_tcindex.c | 56 +- net/sched/cls_u32.c | 164 +- net/sched/estimator.c | 2 +- net/sched/police.c | 67 +- net/sched/sch_api.c | 138 +- net/sched/sch_atm.c | 40 +- net/sched/sch_cbq.c | 130 +- net/sched/sch_generic.c | 49 +- net/sched/sch_gred.c | 29 +- net/sched/sch_hfsc.c | 107 +- net/sched/sch_htb.c | 77 +- net/sched/sch_ingress.c | 16 +- net/sched/sch_prio.c | 13 +- net/sched/sch_red.c | 54 +- net/sched/sch_tbf.c | 20 +- net/sctp/associola.c | 15 +- net/sctp/endpointola.c | 2 +- net/sctp/ipv6.c | 11 +- net/sctp/outqueue.c | 25 +- net/sctp/protocol.c | 16 +- net/sctp/sm_make_chunk.c | 31 + net/sctp/sm_statefuns.c | 59 + net/sctp/socket.c | 55 +- net/sctp/ulpevent.c | 42 +- net/socket.c | 5 +- net/sunrpc/rpc_pipe.c | 6 +- net/tux/cachemiss.c | 2 +- net/tux/input.c | 3 +- net/tux/logger.c | 2 +- net/unix/af_unix.c | 13 +- net/x25/af_x25.c | 1 + net/xfrm/xfrm_export.c | 1 - net/xfrm/xfrm_policy.c | 2 +- net/xfrm/xfrm_state.c | 2 +- net/xfrm/xfrm_user.c | 12 +- scripts/Makefile.modinst | 5 +- scripts/Makefile.modpost | 1 + scripts/basic/fixdep.c | 18 +- scripts/kallsyms.c | 577 +- scripts/kconfig/Makefile | 26 +- scripts/kconfig/conf.c | 6 +- scripts/kconfig/mconf.c | 4 +- scripts/kernel-2.6-planetlab.spec | 7 +- scripts/kernel-doc | 188 +- scripts/reference_init.pl | 3 + security/Makefile | 2 + security/capability.c | 1 + security/commoncap.c | 33 +- security/dummy.c | 8 + security/selinux/hooks.c | 10 +- security/selinux/selinuxfs.c | 17 +- sound/core/Kconfig | 75 +- sound/core/control.c | 62 +- sound/core/init.c | 7 +- sound/core/ioctl32/hwdep32.c | 34 +- sound/core/ioctl32/ioctl32.c | 318 +- sound/core/ioctl32/ioctl32.h | 91 +- sound/core/ioctl32/pcm32.c | 340 +- sound/core/ioctl32/rawmidi32.c | 16 +- sound/core/ioctl32/seq32.c | 6 +- sound/core/ioctl32/timer32.c | 10 +- sound/core/memalloc.c | 9 +- sound/core/memory.c | 4 +- sound/core/oss/pcm_oss.c | 17 +- sound/core/pcm_lib.c | 3 +- sound/core/pcm_misc.c | 11 +- sound/core/pcm_native.c | 644 +-- sound/core/rawmidi.c | 5 +- sound/core/seq/oss/seq_oss.c | 14 +- sound/core/seq/seq.c | 21 +- sound/core/seq/seq_clientmgr.c | 5 +- sound/core/seq/seq_dummy.c | 6 +- sound/core/seq/seq_midi.c | 4 +- sound/core/sound.c | 4 + sound/drivers/dummy.c | 15 +- sound/drivers/mpu401/mpu401.c | 13 +- sound/drivers/opl3/Makefile | 1 + sound/drivers/opl3/opl3_lib.c | 138 +- sound/drivers/serial-u16550.c | 23 +- sound/drivers/virmidi.c | 9 +- sound/drivers/vx/vx_core.c | 2 +- sound/isa/Kconfig | 189 +- sound/isa/ad1816a/ad1816a.c | 21 +- sound/isa/ad1848/ad1848.c | 15 +- sound/isa/als100.c | 21 +- sound/isa/azt2320.c | 23 +- sound/isa/cmi8330.c | 23 +- sound/isa/cs423x/cs4231.c | 19 +- sound/isa/cs423x/cs4236.c | 27 +- sound/isa/dt019x.c | 19 +- sound/isa/es1688/es1688.c | 17 +- sound/isa/es18xx.c | 26 +- sound/isa/gus/gusclassic.c | 21 +- sound/isa/gus/gusextreme.c | 29 +- sound/isa/gus/gusmax.c | 21 +- sound/isa/gus/interwave.c | 27 +- sound/isa/opl3sa2.c | 29 +- sound/isa/sb/es968.c | 13 +- sound/isa/sb/sb16.c | 29 +- sound/isa/sb/sb8.c | 13 +- sound/isa/sgalaxy.c | 15 +- sound/isa/sscape.c | 13 +- sound/isa/wavefront/wavefront.c | 29 +- sound/oss/ad1889.c | 45 +- sound/oss/cmpci.c | 6 +- sound/oss/dmabuf.c | 2 +- sound/oss/dmasound/dmasound_awacs.c | 35 +- sound/oss/i810_audio.c | 24 +- sound/oss/kahlua.c | 2 +- sound/oss/msnd.c | 80 +- sound/oss/msnd.h | 14 +- sound/oss/nm256_audio.c | 2 +- sound/oss/soundcard.c | 8 +- sound/oss/trident.c | 11 +- sound/oss/via82cxxx_audio.c | 8 +- sound/parisc/harmony.c | 22 +- sound/pci/Kconfig | 280 +- sound/pci/ac97/ac97_codec.c | 127 +- sound/pci/ac97/ac97_local.h | 7 + sound/pci/ac97/ac97_patch.c | 157 +- sound/pci/ac97/ac97_pcm.c | 158 +- sound/pci/ac97/ac97_proc.c | 6 +- sound/pci/ali5451/ali5451.c | 18 +- sound/pci/als4000.c | 16 +- sound/pci/atiixp.c | 26 +- sound/pci/au88x0/au88x0.c | 13 +- sound/pci/au88x0/au88x0.h | 2 +- sound/pci/au88x0/au88x0_core.c | 28 +- sound/pci/au88x0/au88x0_eq.c | 76 +- sound/pci/au88x0/au88x0_pcm.c | 9 + sound/pci/azt3328.c | 24 +- sound/pci/bt87x.c | 39 +- sound/pci/cmipci.c | 53 +- sound/pci/cs4281.c | 70 +- sound/pci/cs46xx/cs46xx.c | 13 +- sound/pci/cs46xx/cs46xx_lib.c | 157 +- sound/pci/cs46xx/dsp_spos_scb_lib.c | 4 +- sound/pci/emu10k1/emu10k1.c | 19 +- sound/pci/emu10k1/emu10k1_main.c | 7 +- sound/pci/emu10k1/emufx.c | 42 +- sound/pci/ens1370.c | 57 +- sound/pci/es1938.c | 15 +- sound/pci/es1968.c | 97 +- sound/pci/fm801.c | 30 +- sound/pci/ice1712/Makefile | 2 +- sound/pci/ice1712/aureon.c | 762 ++- sound/pci/ice1712/aureon.h | 5 + sound/pci/ice1712/delta.c | 13 + sound/pci/ice1712/ews.c | 59 +- sound/pci/ice1712/hoontech.c | 164 +- sound/pci/ice1712/ice1712.c | 78 +- sound/pci/ice1712/ice1712.h | 24 +- sound/pci/ice1712/ice1724.c | 18 +- sound/pci/intel8x0.c | 343 +- sound/pci/intel8x0m.c | 57 +- sound/pci/korg1212/korg1212.c | 166 +- sound/pci/maestro3.c | 53 +- sound/pci/mixart/mixart.c | 20 +- sound/pci/nm256/nm256.c | 121 +- sound/pci/rme32.c | 44 +- sound/pci/rme96.c | 22 +- sound/pci/rme9652/hdsp.c | 262 +- sound/pci/rme9652/rme9652.c | 20 +- sound/pci/sonicvibes.c | 21 +- sound/pci/trident/trident.c | 11 +- sound/pci/trident/trident_main.c | 20 +- sound/pci/via82xx.c | 55 +- sound/pci/vx222/vx222.c | 20 +- sound/pci/ymfpci/ymfpci.c | 15 +- sound/pci/ymfpci/ymfpci_main.c | 14 +- sound/pcmcia/Kconfig | 18 +- sound/pcmcia/pdaudiocf/pdaudiocf.c | 9 +- sound/pcmcia/vx/vxpocket.c | 11 +- sound/ppc/pmac.c | 40 +- sound/ppc/pmac.h | 12 +- sound/ppc/tumbler.c | 47 +- sound/sparc/amd7930.c | 7 +- sound/sparc/cs4231.c | 11 +- sound/usb/usbaudio.c | 120 +- sound/usb/usbaudio.h | 5 +- sound/usb/usbquirks.h | 67 +- 2837 files changed, 95361 insertions(+), 177919 deletions(-) delete mode 100644 Documentation/DocBook/mousedrivers.tmpl delete mode 100644 Documentation/digiboard.txt delete mode 100644 Documentation/dvb/firmware.txt delete mode 100644 Documentation/isdn/README.eicon delete mode 100644 Documentation/mkdev.ida delete mode 100644 Documentation/sound/oss/ChangeLog.awe delete mode 100644 Documentation/sound/oss/ChangeLog.multisound delete mode 100644 arch/arm/boot/compressed/hw-bse.c delete mode 100644 arch/arm/configs/adsbitsy_defconfig delete mode 100644 arch/arm/configs/brutus_defconfig delete mode 100644 arch/arm/configs/empeg_defconfig delete mode 100644 arch/arm/configs/flexanet_defconfig delete mode 100644 arch/arm/configs/freebird_defconfig delete mode 100644 arch/arm/configs/freebird_new_defconfig delete mode 100644 arch/arm/configs/graphicsclient_defconfig delete mode 100644 arch/arm/configs/graphicsmaster_defconfig delete mode 100644 arch/arm/configs/huw_webpanel_defconfig delete mode 100644 arch/arm/configs/pangolin_defconfig delete mode 100644 arch/arm/configs/pfs168_mqtft_defconfig delete mode 100644 arch/arm/configs/pfs168_mqvga_defconfig delete mode 100644 arch/arm/configs/pfs168_sastn_defconfig delete mode 100644 arch/arm/configs/pfs168_satft_defconfig delete mode 100644 arch/arm/configs/sherman_defconfig delete mode 100644 arch/arm/configs/stork_defconfig delete mode 100644 arch/arm/configs/system3_defconfig delete mode 100644 arch/arm/configs/trizeps_defconfig delete mode 100644 arch/arm/defconfig delete mode 100644 arch/arm/lib/io-readsl-armv3.S delete mode 100644 arch/arm/lib/io-readsl-armv4.S delete mode 100644 arch/arm/mach-footbridge/arch.c delete mode 100644 arch/arm/mach-footbridge/irq.c delete mode 100644 arch/arm/mach-footbridge/mm.c delete mode 100644 arch/arm/mach-iop3xx/arch.c delete mode 100644 arch/arm/mach-iop3xx/iop321-mm.c delete mode 100644 arch/arm/mach-iop3xx/iop331-mm.c delete mode 100644 arch/arm/mach-iop3xx/mm-321.c delete mode 100644 arch/arm/mach-omap/clocks.c delete mode 100644 arch/arm/mach-sa1100/adsbitsy.c delete mode 100644 arch/arm/mach-sa1100/brutus.c delete mode 100644 arch/arm/mach-sa1100/empeg.c delete mode 100644 arch/arm/mach-sa1100/flexanet.c delete mode 100644 arch/arm/mach-sa1100/freebird.c delete mode 100644 arch/arm/mach-sa1100/graphicsclient.c delete mode 100644 arch/arm/mach-sa1100/graphicsmaster.c delete mode 100644 arch/arm/mach-sa1100/huw_webpanel.c delete mode 100644 arch/arm/mach-sa1100/itsy.c delete mode 100644 arch/arm/mach-sa1100/leds-adsbitsy.c delete mode 100644 arch/arm/mach-sa1100/leds-brutus.c delete mode 100644 arch/arm/mach-sa1100/leds-flexanet.c delete mode 100644 arch/arm/mach-sa1100/leds-graphicsclient.c delete mode 100644 arch/arm/mach-sa1100/leds-graphicsmaster.c delete mode 100644 arch/arm/mach-sa1100/leds-pfs168.c delete mode 100644 arch/arm/mach-sa1100/leds-system3.c delete mode 100644 arch/arm/mach-sa1100/nanoengine.c delete mode 100644 arch/arm/mach-sa1100/omnimeter.c delete mode 100644 arch/arm/mach-sa1100/pangolin.c delete mode 100644 arch/arm/mach-sa1100/pfs168.c delete mode 100644 arch/arm/mach-sa1100/sherman.c delete mode 100644 arch/arm/mach-sa1100/stork.c delete mode 100644 arch/arm/mach-sa1100/system3.c delete mode 100644 arch/arm/mach-sa1100/trizeps.c delete mode 100644 arch/arm/mach-sa1100/xp860.c delete mode 100644 arch/arm/mach-sa1100/yopy.c delete mode 100644 arch/cris/arch-v10/drivers/ethernet.c delete mode 100644 arch/cris/arch-v10/drivers/ide.c delete mode 100644 arch/cris/arch-v10/drivers/serial.c delete mode 100644 arch/cris/arch-v10/drivers/serial.h delete mode 100644 arch/h8300/platform/h8300h/aki3068net/ram.ld delete mode 100644 arch/h8300/platform/h8300h/generic/ram.ld delete mode 100644 arch/h8300/platform/h8300h/generic/rom.ld delete mode 100644 arch/h8300/platform/h8300h/h8max/ram.ld delete mode 100644 arch/h8300/platform/h8s/edosk2674/ram.ld delete mode 100644 arch/h8300/platform/h8s/edosk2674/rom.ld delete mode 100644 arch/h8300/platform/h8s/generic/ram.ld delete mode 100644 arch/h8300/platform/h8s/generic/rom.ld delete mode 100644 arch/i386/kernel/cpu/cpufreq/acpi.c delete mode 100644 arch/i386/kernel/machine_kexec.c delete mode 100644 arch/i386/kernel/relocate_kernel.S delete mode 100644 arch/i386/pci/changelog delete mode 100644 arch/ia64/configs/generic_defconfig delete mode 100644 arch/m68knommu/platform/5282/MOTOROLA/crt0_ram.S delete mode 100644 arch/m68knommu/platform/5282/Makefile delete mode 100644 arch/m68knommu/platform/5282/config.c delete mode 100644 arch/m68knommu/platform/5282/pit.c delete mode 100644 arch/m68knommu/platform/5282/senTec/crt0_ram.S delete mode 100644 arch/mips/baget/Makefile delete mode 100644 arch/mips/baget/baget.c delete mode 100644 arch/mips/baget/bagetIRQ.S delete mode 100644 arch/mips/baget/balo.c delete mode 100644 arch/mips/baget/balo_supp.S delete mode 100644 arch/mips/baget/irq.c delete mode 100644 arch/mips/baget/ld.script.balo delete mode 100644 arch/mips/baget/print.c delete mode 100644 arch/mips/baget/prom/Makefile delete mode 100644 arch/mips/baget/prom/init.c delete mode 100644 arch/mips/baget/reset.c delete mode 100644 arch/mips/baget/setup.c delete mode 100644 arch/mips/baget/time.c delete mode 100644 arch/mips/configs/bosporus_defconfig delete mode 100644 arch/mips/configs/mirage_defconfig delete mode 100644 arch/mips/configs/mtx1_defconfig delete mode 100644 arch/mips/configs/pb1000_defconfig delete mode 100644 arch/mips/configs/xxs1500_defconfig delete mode 100644 arch/mips/ddb5xxx/common/irq.c delete mode 100644 arch/mips/hp-lj/Makefile delete mode 100644 arch/mips/hp-lj/asic.c delete mode 100644 arch/mips/hp-lj/gdb_hook.c delete mode 100644 arch/mips/hp-lj/init.c delete mode 100644 arch/mips/hp-lj/int-handler.S delete mode 100644 arch/mips/hp-lj/irq.c delete mode 100644 arch/mips/hp-lj/setup.c delete mode 100644 arch/mips/hp-lj/utils.c delete mode 100644 arch/mips/hp-lj/utils.h delete mode 100644 arch/mips/mm/tlbex64-r4k.S delete mode 100644 arch/mips/pci/fixup-lasat.c delete mode 100644 arch/mips/pci/pci-hplj.c delete mode 100644 arch/mips/ramdisk/Makefile delete mode 100644 arch/mips/ramdisk/ld.script delete mode 100644 arch/parisc/kernel/head64.S delete mode 100644 arch/ppc/8xx_io/uart.c delete mode 100644 arch/ppc/kernel/machine_kexec.c delete mode 100644 arch/ppc/kernel/relocate_kernel.S delete mode 100644 arch/ppc64/kernel/iSeries_IoMmTable.c delete mode 100644 arch/ppc64/kernel/iSeries_IoMmTable.h delete mode 100644 arch/ppc64/kernel/mf_proc.c delete mode 100644 arch/ppc64/kernel/open_pic.c delete mode 100644 arch/ppc64/kernel/open_pic.h delete mode 100644 arch/ppc64/kernel/open_pic_defs.h delete mode 100644 arch/ppc64/kernel/open_pic_u3.c delete mode 100644 arch/sh/tools/machgen.sh delete mode 100644 arch/um/kernel/skas/exec_user.c delete mode 100644 arch/um/kernel/skas/include/mmu.h delete mode 100644 arch/um/kernel/skas/include/mode.h delete mode 100644 arch/um/kernel/skas/include/mode_kern.h delete mode 100644 arch/um/kernel/skas/include/uaccess.h delete mode 100644 arch/um/kernel/tt/include/mmu.h delete mode 100644 arch/um/kernel/tt/include/mode.h delete mode 100644 arch/um/kernel/tt/include/mode_kern.h delete mode 100644 arch/um/kernel/tt/include/uaccess.h delete mode 100644 arch/x86_64/kernel/machine_kexec.c delete mode 100644 arch/x86_64/kernel/relocate_kernel.S rename configs/{kernel-2.6.9-i686.config => kernel-2.6.10-i686-planetlab.config} (90%) delete mode 100644 configs/kernel-2.6.9-i586-smp.config delete mode 100644 configs/kernel-2.6.9-i586.config delete mode 100644 configs/kernel-2.6.9-i686-smp.config delete mode 100644 drivers/acpi/acpi_ksyms.c delete mode 100644 drivers/char/README.computone delete mode 100644 drivers/char/README.cyclomY delete mode 100644 drivers/char/README.epca delete mode 100644 drivers/char/README.scc delete mode 100644 drivers/ide/legacy/pdc4030.c delete mode 100644 drivers/ide/legacy/pdc4030.h delete mode 100644 drivers/ide/pci/hpt34x.h delete mode 100644 drivers/ide/pci/it8212.c delete mode 100644 drivers/media/dvb/dvb-core/Makefile.lib delete mode 100644 drivers/media/dvb/dvb-core/dvb_functions.c delete mode 100644 drivers/media/dvb/dvb-core/dvb_functions.h delete mode 100644 drivers/media/dvb/dvb-core/dvb_i2c.c delete mode 100644 drivers/media/dvb/dvb-core/dvb_i2c.h delete mode 100644 drivers/media/dvb/dvb-core/dvb_ksyms.c delete mode 100644 drivers/media/dvb/frontends/alps_tdlb7.c delete mode 100644 drivers/media/dvb/frontends/alps_tdmb7.c delete mode 100644 drivers/media/dvb/frontends/dst-bt878.h delete mode 100644 drivers/media/dvb/frontends/dst.c delete mode 100644 drivers/media/dvb/frontends/grundig_29504-401.c delete mode 100644 drivers/media/dvb/frontends/grundig_29504-491.c delete mode 100644 drivers/media/dvb/frontends/sp887x_firm.h delete mode 100644 drivers/mtd/maps/integrator-flash-v24.c delete mode 100644 drivers/mtd/mtdblock.h delete mode 100644 drivers/pci/hotplug/pciehp_sysfs.c delete mode 100644 drivers/pcmcia/sa1100_adsbitsy.c delete mode 100644 drivers/pcmcia/sa1100_flexanet.c delete mode 100644 drivers/pcmcia/sa1100_freebird.c delete mode 100644 drivers/pcmcia/sa1100_graphicsclient.c delete mode 100644 drivers/pcmcia/sa1100_graphicsmaster.c delete mode 100644 drivers/pcmcia/sa1100_pangolin.c delete mode 100644 drivers/pcmcia/sa1100_pfs168.c delete mode 100644 drivers/pcmcia/sa1100_stork.c delete mode 100644 drivers/pcmcia/sa1100_system3.c delete mode 100644 drivers/pcmcia/sa1100_trizeps.c delete mode 100644 drivers/pcmcia/sa1100_xp860.c delete mode 100644 drivers/pcmcia/sa1100_yopy.c delete mode 100644 drivers/scsi/dmx3191d.h delete mode 100644 drivers/scsi/i60uscsi.c delete mode 100644 drivers/scsi/i91uscsi.c delete mode 100644 drivers/scsi/i91uscsi.h delete mode 100644 drivers/scsi/ini9100u.c delete mode 100644 drivers/scsi/ini9100u.h delete mode 100644 drivers/scsi/inia100.c delete mode 100644 drivers/scsi/inia100.h delete mode 100644 drivers/scsi/lpfc/Makefile delete mode 100644 drivers/scsi/lpfc/lpfc.h delete mode 100644 drivers/scsi/lpfc/lpfc_compat.h delete mode 100644 drivers/scsi/lpfc/lpfc_crtn.h delete mode 100644 drivers/scsi/lpfc/lpfc_ct.c delete mode 100644 drivers/scsi/lpfc/lpfc_disc.h delete mode 100644 drivers/scsi/lpfc/lpfc_els.c delete mode 100644 drivers/scsi/lpfc/lpfc_fcp.c delete mode 100644 drivers/scsi/lpfc/lpfc_fcp.h delete mode 100644 drivers/scsi/lpfc/lpfc_hbadisc.c delete mode 100644 drivers/scsi/lpfc/lpfc_hw.h delete mode 100644 drivers/scsi/lpfc/lpfc_init.c delete mode 100644 drivers/scsi/lpfc/lpfc_logmsg.h delete mode 100644 drivers/scsi/lpfc/lpfc_mbox.c delete mode 100644 drivers/scsi/lpfc/lpfc_mem.c delete mode 100644 drivers/scsi/lpfc/lpfc_mem.h delete mode 100644 drivers/scsi/lpfc/lpfc_nportdisc.c delete mode 100644 drivers/scsi/lpfc/lpfc_scsi.h delete mode 100644 drivers/scsi/lpfc/lpfc_scsiport.c delete mode 100644 drivers/scsi/lpfc/lpfc_sli.c delete mode 100644 drivers/scsi/lpfc/lpfc_sli.h delete mode 100644 drivers/scsi/lpfc/lpfc_version.h delete mode 100644 drivers/scsi/scsiiom.c delete mode 100644 drivers/usb/host/hc_simple.c delete mode 100644 drivers/usb/host/hc_simple.h delete mode 100644 drivers/usb/host/hc_sl811.c delete mode 100644 drivers/usb/host/hc_sl811.h delete mode 100644 drivers/usb/host/hc_sl811_rh.c delete mode 100644 drivers/usb/misc/speedtch.c delete mode 100644 fs/lockd/lockd_syms.c delete mode 100644 include/asm-arm/arch-cl7500/serial.h delete mode 100644 include/asm-arm/arch-ebsa110/serial.h delete mode 100644 include/asm-arm/arch-ebsa285/serial.h delete mode 100644 include/asm-arm/arch-epxa10db/serial.h delete mode 100644 include/asm-arm/arch-h720x/serial.h delete mode 100644 include/asm-arm/arch-imx/serial.h delete mode 100644 include/asm-arm/arch-integrator/serial.h delete mode 100644 include/asm-arm/arch-integrator/time.h delete mode 100644 include/asm-arm/arch-iop3xx/serial.h delete mode 100644 include/asm-arm/arch-ixp2000/serial.h delete mode 100644 include/asm-arm/arch-ixp4xx/serial.h delete mode 100644 include/asm-arm/arch-lh7a40x/serial.h delete mode 100644 include/asm-arm/arch-omap/omap1610.h delete mode 100644 include/asm-arm/arch-omap/omap5912.h delete mode 100644 include/asm-arm/arch-omap/serial.h delete mode 100644 include/asm-arm/arch-pxa/serial.h delete mode 100644 include/asm-arm/arch-rpc/serial.h delete mode 100644 include/asm-arm/arch-s3c2410/serial.h delete mode 100644 include/asm-arm/arch-sa1100/adsbitsy.h delete mode 100644 include/asm-arm/arch-sa1100/flexanet.h delete mode 100644 include/asm-arm/arch-sa1100/freebird.h delete mode 100644 include/asm-arm/arch-sa1100/graphicsclient.h delete mode 100644 include/asm-arm/arch-sa1100/graphicsmaster.h delete mode 100644 include/asm-arm/arch-sa1100/huw_webpanel.h delete mode 100644 include/asm-arm/arch-sa1100/itsy.h delete mode 100644 include/asm-arm/arch-sa1100/mftb2.h delete mode 100644 include/asm-arm/arch-sa1100/omnimeter.h delete mode 100644 include/asm-arm/arch-sa1100/pangolin.h delete mode 100644 include/asm-arm/arch-sa1100/pfs168.h delete mode 100644 include/asm-arm/arch-sa1100/pleb.h delete mode 100644 include/asm-arm/arch-sa1100/serial.h delete mode 100644 include/asm-arm/arch-sa1100/stork.h delete mode 100644 include/asm-arm/arch-sa1100/system3.h delete mode 100644 include/asm-arm/arch-sa1100/trizeps.h delete mode 100644 include/asm-arm/arch-sa1100/yopy.h delete mode 100644 include/asm-arm/arch-shark/serial.h delete mode 100644 include/asm-arm/arch-versatile/serial.h delete mode 100644 include/asm-arm26/linux_logo.h delete mode 100644 include/asm-h8300/linux_logo.h delete mode 100644 include/asm-i386/kexec.h delete mode 100644 include/asm-m68knommu/m5282sim.h delete mode 100644 include/asm-m68knommu/shglcore.h delete mode 100644 include/asm-m68knommu/shglports.h delete mode 100644 include/asm-mips/baget/baget.h delete mode 100644 include/asm-mips/baget/vac.h delete mode 100644 include/asm-mips/baget/vic.h delete mode 100644 include/asm-mips/pci_channel.h delete mode 100644 include/asm-parisc/som.h delete mode 100644 include/asm-ppc/kexec.h delete mode 100644 include/asm-x86_64/kexec.h delete mode 100644 include/linux/kexec.h delete mode 100644 include/pcmcia/ftl.h delete mode 100644 include/pcmcia/memory.h delete mode 100644 kernel/kexec.c diff --git a/CREDITS b/CREDITS index 22252bdf5..c0bdfc51a 100644 --- a/CREDITS +++ b/CREDITS @@ -46,13 +46,11 @@ D: Various kernel patches S: United Kingdom N: Werner Almesberger -E: werner.almesberger@epfl.ch +E: werner@almesberger.net +W: http://www.almesberger.net/ D: dosfs, LILO, some fd features, ATM, various other hacks here and there -S: Ecole Polytechnique Federale de Lausanne -S: DSC ICA -S: INN (Ecublens) -S: CH-1015 Lausanne -S: Switzerland +S: Buenos Aires +S: Argentina N: Tim Alpaerts E: tim_alpaerts@toyota-motor-europe.com @@ -497,6 +495,14 @@ E: m@mbsks.franken.de D: REINER SCT cyberJack pinpad/e-com USB chipcard reader driver S: Germany +N: Adrian Bunk +E: bunk@stusta.de +P: 1024D/4F12B400 B29C E71E FE19 6755 5C8A 84D4 99FC EA98 4F12 B400 +D: misc kernel hacking and testing +S: Grasmeierstrasse 11 +S: 80805 Muenchen +S: Germany + N: Ray Burr E: ryb@nightmare.com D: Original author of Amiga FFS filesystem @@ -1887,7 +1893,7 @@ D: Early protocol filter for bridging code D: Bug fixes N: Paul Laufer -E: pelaufer@csupomona.edu +E: paul@laufernet.com D: Soundblaster driver fixes, ISAPnP quirk S: California, USA @@ -2764,7 +2770,7 @@ N: Luca Risolia E: luca.risolia@studio.unibo.it P: 1024D/FCE635A4 88E8 F32F 7244 68BA 3958 5D40 99DA 5D2A FCE6 35A4 D: V4L driver for W996[87]CF JPEG USB Dual Mode Camera Chips -D: V4L2 driver for SN9C10[12] PC Camera Controllers +D: V4L2 driver for SN9C10x PC Camera Controllers S: Via Liberta' 41/A S: Osio Sotto, 24046, Bergamo S: Italy diff --git a/Documentation/DMA-API.txt b/Documentation/DMA-API.txt index 8787c4d09..6ee3cd613 100644 --- a/Documentation/DMA-API.txt +++ b/Documentation/DMA-API.txt @@ -160,7 +160,7 @@ pci_set_dma_mask(struct pci_device *dev, u64 mask) Checks to see if the mask is possible and updates the device parameters if it is. -Returns: 1 if successful and 0 if not +Returns: 0 if successful and a negative error if not. u64 dma_get_required_mask(struct device *dev) diff --git a/Documentation/DocBook/kernel-hacking.tmpl b/Documentation/DocBook/kernel-hacking.tmpl index cd1bc1574..1e8219d85 100644 --- a/Documentation/DocBook/kernel-hacking.tmpl +++ b/Documentation/DocBook/kernel-hacking.tmpl @@ -888,7 +888,7 @@ printk(KERN_INFO "my ip: %d.%d.%d.%d\n", NIPQUAD(ipaddress)); The second class of atomic operations is atomic bit operations on a long, defined in - include/asm/bitops.h. These + include/linux/bitops.h. These operations generally take a pointer to the bit pattern, and a bit number: 0 is the least significant bit. set_bit(), clear_bit() diff --git a/Documentation/DocBook/libata.tmpl b/Documentation/DocBook/libata.tmpl index ac0d5fc0a..92a405a0e 100644 --- a/Documentation/DocBook/libata.tmpl +++ b/Documentation/DocBook/libata.tmpl @@ -61,6 +61,196 @@ + + libata Driver API + + struct ata_port_operations + + +void (*port_disable) (struct ata_port *); + + + + Called from ata_bus_probe() and ata_bus_reset() error paths, + as well as when unregistering from the SCSI module (rmmod, hot + unplug). + + + +void (*dev_config) (struct ata_port *, struct ata_device *); + + + + Called after IDENTIFY [PACKET] DEVICE is issued to each device + found. Typically used to apply device-specific fixups prior to + issue of SET FEATURES - XFER MODE, and prior to operation. + + + +void (*set_piomode) (struct ata_port *, struct ata_device *); +void (*set_dmamode) (struct ata_port *, struct ata_device *); +void (*post_set_mode) (struct ata_port *ap); + + + + Hooks called prior to the issue of SET FEATURES - XFER MODE + command. dev->pio_mode is guaranteed to be valid when + ->set_piomode() is called, and dev->dma_mode is guaranteed to be + valid when ->set_dmamode() is called. ->post_set_mode() is + called unconditionally, after the SET FEATURES - XFER MODE + command completes successfully. + + + + ->set_piomode() is always called (if present), but + ->set_dma_mode() is only called if DMA is possible. + + + +void (*tf_load) (struct ata_port *ap, struct ata_taskfile *tf); +void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); + + + + ->tf_load() is called to load the given taskfile into hardware + registers / DMA buffers. ->tf_read() is called to read the + hardware registers / DMA buffers, to obtain the current set of + taskfile register values. + + + +void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf); + + + + causes an ATA command, previously loaded with + ->tf_load(), to be initiated in hardware. + + + +u8 (*check_status)(struct ata_port *ap); +void (*dev_select)(struct ata_port *ap, unsigned int device); + + + + Reads the Status ATA shadow register from hardware. On some + hardware, this has the side effect of clearing the interrupt + condition. + + + +void (*dev_select)(struct ata_port *ap, unsigned int device); + + + + Issues the low-level hardware command(s) that causes one of N + hardware devices to be considered 'selected' (active and + available for use) on the ATA bus. + + + +void (*phy_reset) (struct ata_port *ap); + + + + The very first step in the probe phase. Actions vary depending + on the bus type, typically. After waking up the device and probing + for device presence (PATA and SATA), typically a soft reset + (SRST) will be performed. Drivers typically use the helper + functions ata_bus_reset() or sata_phy_reset() for this hook. + + + +void (*bmdma_setup) (struct ata_queued_cmd *qc); +void (*bmdma_start) (struct ata_queued_cmd *qc); + + + + When setting up an IDE BMDMA transaction, these hooks arm + (->bmdma_setup) and fire (->bmdma_start) the hardware's DMA + engine. + + + +void (*qc_prep) (struct ata_queued_cmd *qc); +int (*qc_issue) (struct ata_queued_cmd *qc); + + + + Higher-level hooks, these two hooks can potentially supercede + several of the above taskfile/DMA engine hooks. ->qc_prep is + called after the buffers have been DMA-mapped, and is typically + used to populate the hardware's DMA scatter-gather table. + Most drivers use the standard ata_qc_prep() helper function, but + more advanced drivers roll their own. + + + ->qc_issue is used to make a command active, once the hardware + and S/G tables have been prepared. IDE BMDMA drivers use the + helper function ata_qc_issue_prot() for taskfile protocol-based + dispatch. More advanced drivers roll their own ->qc_issue + implementation, using this as the "issue new ATA command to + hardware" hook. + + + +void (*eng_timeout) (struct ata_port *ap); + + + + This is a high level error handling function, called from the + error handling thread, when a command times out. + + + +irqreturn_t (*irq_handler)(int, void *, struct pt_regs *); +void (*irq_clear) (struct ata_port *); + + + + ->irq_handler is the interrupt handling routine registered with + the system, by libata. ->irq_clear is called during probe just + before the interrupt handler is registered, to be sure hardware + is quiet. + + + +u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg); +void (*scr_write) (struct ata_port *ap, unsigned int sc_reg, + u32 val); + + + + Read and write standard SATA phy registers. Currently only used + if ->phy_reset hook called the sata_phy_reset() helper function. + + + +int (*port_start) (struct ata_port *ap); +void (*port_stop) (struct ata_port *ap); +void (*host_stop) (struct ata_host_set *host_set); + + + + ->port_start() is called just after the data structures for each + port are initialized. Typically this is used to alloc per-port + DMA buffers / tables / rings, enable DMA engines, and similar + tasks. + + + ->host_stop() is called when the rmmod or hot unplug process + begins. The hook must stop all hardware interrupts, DMA + engines, etc. + + + ->port_stop() is called after ->host_stop(). It's sole function + is to release DMA/memory resources, now that they are no longer + actively being used. + + + + + libata Library !Edrivers/scsi/libata-core.c @@ -83,7 +273,7 @@ - ata_sil Internals + sata_sil Internals !Idrivers/scsi/sata_sil.c diff --git a/Documentation/DocBook/mousedrivers.tmpl b/Documentation/DocBook/mousedrivers.tmpl deleted file mode 100644 index 8491969e6..000000000 --- a/Documentation/DocBook/mousedrivers.tmpl +++ /dev/null @@ -1,1022 +0,0 @@ - - - - - Mouse Drivers - - - - Alan - Cox - -
- alan@redhat.com -
-
-
-
- - - 2000 - Alan Cox - - - - - This documentation is free software; you can redistribute - it and/or modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later - version. - - - - This program is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. - - - - You should have received a copy of the GNU General Public - License along with this program; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, - MA 02111-1307 USA - - - - For more details see the file COPYING in the source - distribution of Linux. - - -
- - - - - Introduction - - Earlier publication - - Parts of this document first appeared in Linux Magazine under a - ninety day exclusivity. - - - - - Mice are conceptually one of the simplest device interfaces in the - Linux operating system. Not all mice are handled by the kernel. - Instead there is a two layer abstraction. - - - - The kernel mouse drivers and userspace drivers for the serial mice are - all managed by a system daemon called gpm - - the general purpose mouse driver. gpm - handles cutting and pasting on the text consoles. It provides a - general library for mouse-aware applications and it handles the - sharing of mouse services with the - X Window System user interface. - - - Sometimes a mouse speaks a sufficiently convoluted protocol that the - protocol is handled by Gpm itself. Most - of the mouse drivers follow a common interface called the bus mouse - protocol. - - - Each read from a bus mouse interface device returns a block of data. - The first three bytes of each read are defined as follows: - - - Mouse Data Encoding - - - - Byte 0 - 0x80 + the buttons currently down. - - - Byte 1 - A signed value for the shift in X position - - - Byte 2 - A signed value for the shift in Y position - - - -
- - An application can choose to read more than 3 bytes. The rest of the - bytes will be zero, or may optionally return some additional - device-specific information. -
- - The position values are truncated if they exceed the 8bit range (that - is -127 <= delta <= 127). While the value -128 does fit into a - byte is not allowed. - - - The buttons are numbered left to right as - 0, 1, 2, 3.. and each button sets the relevant bit. So a user pressing - the left and right button of a three button mouse will set bits 0 and 2. - - - All mice are required to support the poll - operation. Indeed pretty much every user of a mouse device uses - poll to wait for mouse events to occur. - - - Finally the mice support asynchronous I/O. This is a topic we have not - yet covered but which I will explain after looking at a simple mouse - driver. - -
- - - A simple mouse driver - - First we will need the set up functions for our mouse device. To keep - this simple our imaginary mouse device has three I/O ports fixed at I/O - address 0x300 and always lives on interrupt 5. The ports will be the X - position, the Y position and the buttons in that order. - - - -#define OURMOUSE_BASE 0x300 - -static struct miscdevice our_mouse = { - OURMOUSE_MINOR, "ourmouse", &our_mouse_fops -}; - -__init ourmouse_init(void) -{ - - if (request_region(OURMOUSE_BASE, 3, "ourmouse") < 0) { - printk(KERN_ERR "ourmouse: request_region failed.\n"); - return -ENODEV; - } - - if (misc_register(&our_mouse) < 0) { - printk(KERN_ERR "ourmouse: cannot register misc device.\n"); - release_region(OURMOUSE_BASE, 3); - return -EBUSY; - } - - return 0; -} - - - - The miscdevice is new here. Linux normally - parcels devices out by major number, and each device has 256 units. - For things like mice this is extremely wasteful so a device exists - which is used to accumulate all the odd individual devices that - computers tend to have. - - - Minor numbers in this space are allocated by a central source, although - you can look in the kernel Documentation/devices.txt - file and pick a free one for development use. This kernel file also - carries instructions for registering a device. This may change over time - so it is a good idea to obtain a current copy of this file first. - - - Our code then is fairly simple. We reserve our I/O address space with - request_region, checking to make sure that it succeeded (i.e. the - space wasn't reserved by anyone else). - - - Then we ask the misc driver to allocate our minor device number. We also - hand it our name (which is used in - /proc/misc) and a set of file - operations that are to be used. The file operations work exactly like the - file operations you would register for a normal character device. The misc - device itself is simply acting as a redirector for requests. - Since misc_register can fail, it is important to check for failure - and act accordingly (which in the case of a mouse driver is to abort, - since you can't use the mouse without a working device node). - - - Next, in order to be able to use and test our code we need to add some - module code to support it. This too is fairly simple: - - -#ifdef MODULE - -int init_module(void) -{ - if(ourmouse_init()<0) - return -ENODEV: - return 0; -} - -void cleanup_module(void) -{ - misc_deregister(&our_mouse); - free_region(OURMOUSE_BASE, 3); -} - - -#endif - - - - The module code provides the normal two functions. The - init_module function is called when the module is - loaded. In our case it simply calls the initialising function we wrote - and returns an error if this fails. This ensures the module will only - be loaded if it was successfully set up. - - - The cleanup_module function is called when the - module is unloaded. We give the miscellaneous device entry back, and - then free our I/O resources. If we didn't free the I/O resources then - the next time the module loaded it would think someone else had its I/O - space. - - - Once the misc_deregister has been called any - attempts to open the mouse device will fail with the error - ENODEV (No such device). - - - Next we need to fill in our file operations. A mouse doesn't need many - of these. We need to provide open, release, read and poll. That makes - for a nice simple structure: - - - -struct file_operations our_mouse_fops = { - owner: THIS_MODULE, /* Automatic usage management */ - read: read_mouse, /* You can read a mouse */ - write: write_mouse, /* This won't do a lot */ - poll: poll_mouse, /* Poll */ - open: open_mouse, /* Called on open */ - release: close_mouse, /* Called on close */ -}; - - - - There is nothing particularly special needed here. We provide functions - for all the relevant or required operations and little else. There is - nothing stopping us providing an ioctl function for this mouse. Indeed - if you have a configurable mouse it may be very appropriate to provide - configuration interfaces via ioctl calls. - - - The syntax we use is not standard C as such. GCC provides the ability - to initialise fields by name, and this generally makes the method table - much easier to read than counting through NULL pointers and remembering - the order by hand. - - - The owner field is used to manage the locking of module load an - unloading. It is obviously important that a module is not unloaded while - in use. When your device is opened the module specified by "owner" is - locked. When it is finally released the module is unlocked. - - - The open and close routines need to manage enabling and disabling the - interrupts for the mouse as well as stopping the mouse being unloaded - when it is no longer required. - - - -static int mouse_users = 0; /* User count */ -static int mouse_dx = 0; /* Position changes */ -static int mouse_dy = 0; -static int mouse_event = 0; /* Mouse has moved */ - -static int open_mouse(struct inode *inode, struct file *file) -{ - if(mouse_users++) - return 0; - - if(request_irq(mouse_intr, OURMOUSE_IRQ, 0, "ourmouse", NULL)) - { - mouse_users--; - return -EBUSY; - } - mouse_dx = 0; - mouse_dy = 0; - mouse_event = 0; - mouse_buttons = 0; - return 0; -} - - - The open function has to do a small amount of housework. We keep a count - of the number of times the mouse is open. This is because we do not want - to request the interrupt multiple times. If the mouse has at least one - user then it is set up and we simply add to the user count and return - 0 for success. - - - We grab the interrupt and thus start mouse interrupts. If the interrupt - has been borrowed by some other driver then request_irq - will fail and we will return an error. If we were capable of sharing an - interrupt line we would specify SA_SHIRQ instead of - zero. Provided that everyone claiming an interrupt - sets this flag, they get to share the line. PCI can - share interrupts, ISA normally however cannot. - - - We do the housekeeping. We make the current mouse position the starting - point for accumulated changes and declare that nothing has happened - since the mouse driver was opened. - - - The release function needs to unwind all these: - - -static int close_mouse(struct inode *inode, struct file *file) -{ - if(--mouse_users) - return 0; - free_irq(OURMOUSE_IRQ, NULL); - return 0; -} - - - We count off a user and provided that there are still other users need - take no further action. The last person closing the mouse causes us to - free up the interrupt. This stops interrupts from the mouse from using - our CPU time, and ensures that the mouse can now be unloaded. - - - We can fill in the write handler at this point as the write function for - our mouse simply declines to allow writes: - - - -static ssize_t write_mouse(struct file *file, const char *buffer, size_t - count, loff_t *ppos) -{ - return -EINVAL; -} - - - - This is pretty much self-explanatory. Whenever you write you get told - it was an invalid function. - - - To make the poll and read functions work we have to consider how we - handle the mouse interrupt. - - - -static struct wait_queue *mouse_wait; -static spinlock_t mouse_lock = SPIN_LOCK_UNLOCKED; - -static void ourmouse_interrupt(int irq, void *dev_id, struct pt_regs *regs) -{ - char delta_x; - char delta_y; - unsigned char new_buttons; - - delta_x = inb(OURMOUSE_BASE); - delta_y = inb(OURMOUSE_BASE+1); - new_buttons = inb(OURMOUSE_BASE+2); - - if(delta_x || delta_y || new_buttons != mouse_buttons) - { - /* Something happened */ - - spin_lock(&mouse_lock); - mouse_event = 1; - mouse_dx += delta_x; - mouse_dy += delta_y; - mouse_buttons = new_buttons; - spin_unlock(&mouse_lock); - - wake_up_interruptible(&mouse_wait); - } -} - - - - The interrupt handler reads the mouse status. The next thing we do is - to check whether something has changed. If the mouse was smart it would - only interrupt us if something had changed, but let's assume our mouse - is stupid as most mice actually tend to be. - - - If the mouse has changed we need to update the status variables. What we - don't want is the mouse functions reading these variables to read them - during a change. We add a spinlock that protects these variables while we - play with them. - - - If a change has occurred we also need to wake sleeping processes, so we - add a wakeup call and a wait_queue to use when - we wish to await a mouse event. - - - Now we have the wait queue we can implement the poll function for the - mouse relatively easily: - - - -static unsigned int mouse_poll(struct file *file, poll_table *wait) -{ - poll_wait(file, &mouse_wait, wait); - if(mouse_event) - return POLLIN | POLLRDNORM; - return 0; -} - - - - This is fairly standard poll code. First we add the wait queue to the - list of queues we want to monitor for an event. Secondly we check if an - event has occurred. We only have one kind of event - the - mouse_event flag tells us that something happened. - We know that this something can only be mouse data. We return the flags - indicating input and normal reading will succeed. - - - You may be wondering what happens if the function returns saying 'no - event yet'. In this case the wake up from the wait queue we added to - the poll table will cause the function to be called again. Eventually - we will be woken up and have an event ready. At this point the - poll call will exit back to the user. - - - After the poll completes the user will want to read the data. We now - need to think about how our mouse_read function - will work: - - -static ssize_t mouse_read(struct file *file, char *buffer, - size_t count, loff_t *pos) -{ - int dx, dy; - unsigned char button; - unsigned long flags; - int n; - - if(count<3) - return -EINVAL; - - /* - * Wait for an event - */ - - while(!mouse_event) - { - if(file->f_flags&O_NDELAY) - return -EAGAIN; - interruptible_sleep_on(&mouse_wait); - if(signal_pending(current)) - return -ERESTARTSYS; - } - - - - We start by validating that the user is reading enough data. We could - handle partial reads if we wanted but it isn't terribly useful and the - mouse drivers don't bother to try. - - - Next we wait for an event to occur. The loop is fairly standard event - waiting in Linux. Having checked that the event has not yet occurred, we - then check if an event is pending and if not we need to sleep. - - - A user process can set the O_NDELAY flag on a file - to indicate that it wishes to be told immediately if no event is - pending. We check this and give the appropriate error if so. - - - Next we sleep until the mouse or a signal awakens us. A signal will - awaken us as we have used wakeup_interruptible. - This is important as it means a user can kill processes waiting for - the mouse - clearly a desirable property. If we are interrupted we - exit the call and the kernel will then process signals and maybe - restart the call again - from the beginning. - - - This code contains a classic Linux bug. All will be revealed later in this - article as well as explanations for how to avoid it. - - - /* Grab the event */ - - spinlock_irqsave(&mouse_lock, flags); - - dx = mouse_dx; - dy = mouse_dy; - button = mouse_buttons; - - if(dx<=-127) - dx=-127; - if(dx>=127) - dx=127; - if(dy<=-127) - dy=-127; - if(dy>=127) - dy=127; - - mouse_dx -= dx; - mouse_dy -= dy; - - if(mouse_dx == 0 && mouse_dy == 0) - mouse_event = 0; - - spin_unlock_irqrestore(&mouse_lock, flags); - - - This is the next stage. Having established that there is an event - going, we capture it. To be sure that the event is not being updated - as we capture it we also take the spinlock and thus prevent parallel - updates. Note here we use spinlock_irqsave. We - need to disable interrupts on the local processor otherwise bad things - will happen. - - - What will occur is that we take the spinlock. While we hold the lock - an interrupt will occur. At this point our interrupt handler will try - and take the spinlock. It will sit in a loop waiting for the read - routine to release the lock. However because we are sitting in a loop - in the interrupt handler we will never release the lock. The machine - hangs and the user gets upset. - - - By blocking the interrupt on this processor we ensure that the lock - holder will always give the lock back without deadlocking. - - - There is a little cleverness in the reporting mechanism too. We can - only report a move of 127 per read. We don't however want to lose - information by throwing away further movement. Instead we keep - returning as much information as possible. Each time we return a - report we remove the amount from the pending movement in - mouse_dx and mouse_dy. Eventually - when these counts hit zero we clear the mouse_event - flag as there is nothing else left to report. - - - - if(put_user(button|0x80, buffer)) - return -EFAULT; - if(put_user((char)dx, buffer+1)) - return -EFAULT; - if(put_user((char)dy, buffer+2)) - return -EFAULT; - - for(n=3; n < count; n++) - if(put_user(0x00, buffer+n)) - return -EFAULT; - - return count; -} - - - - Finally we must put the results in the user supplied buffer. We cannot - do this while holding the lock as a write to user memory may sleep. - For example the user memory may be residing on disk at this instant. - Thus we did our computation beforehand and now copy the data. Each - put_user call is filling in one byte of the buffer. - If it returns an error we inform the program that it passed us an - invalid buffer and abort. - - - Having written the data we blank the rest of the buffer that was read - and report the read as being successful. - - - - - Debugging the mouse driver - - - We now have an almost perfectly usable mouse driver. If you were to - actually try and use it however you would eventually find a couple of - problems with it. A few programs will also not work with as it does not - yet support asynchronous I/O. - - - First let us look at the bugs. The most obvious one isn't really a driver - bug but a failure to consider the consequences. Imagine you bumped the - mouse hard by accident and sent it skittering across the desk. The mouse - interrupt routine will add up all that movement and report it in steps of - 127 until it has reported all of it. Clearly there is a point beyond - which mouse movement isn't worth reporting. We need to add this as a - limit to the interrupt handler: - - - -static void ourmouse_interrupt(int irq, void *dev_id, struct pt_regs *regs) -{ - char delta_x; - char delta_y; - unsigned char new_buttons; - - delta_x = inb(OURMOUSE_BASE); - delta_y = inb(OURMOUSE_BASE+1); - new_buttons = inb(OURMOUSE_BASE+2); - - if(delta_x || delta_y || new_buttons != mouse_buttons) - { - /* Something happened */ - - spin_lock(&mouse_lock); - mouse_event = 1; - mouse_dx += delta_x; - mouse_dy += delta_y; - - if(mouse_dx < -4096) - mouse_dx = -4096; - if(mouse_dx > 4096) - mouse_dx = 4096; - - if(mouse_dy < -4096) - mouse_dy = -4096; - if(mouse_dy > 4096) - mouse_dy = 4096; - - mouse_buttons = new_buttons; - spin_unlock(&mouse_lock); - - wake_up_interruptible(&mouse_wait); - } -} - - - - By adding these checks we limit the range of accumulated movement to - something sensible. - - - The second bug is a bit more subtle, and that is perhaps why this is - such a common mistake. Remember, I said the waiting loop for the read - handler had a bug in it. Think about what happens when we execute: - - - - while(!mouse_event) - { - - - - and an interrupt occurs at this point here. This causes a mouse movement - and wakes up the queue. - - - - interruptible_sleep_on(&mouse_wait); - - - - Now we sleep on the queue. We missed the wake up and the application - will not see an event until the next mouse event occurs. This will - lead to just the odd instance when a mouse button gets delayed. The - consequences to the user will probably be almost undetectable with a - mouse driver. With other drivers this bug could be a lot more severe. - - - There are two ways to solve this. The first is to disable interrupts - during the testing and the sleep. This works because when a task sleeps - it ceases to disable interrupts, and when it resumes it disables them - again. Our code thus becomes: - - - - save_flags(flags); - cli(); - - while(!mouse_event) - { - if(file->f_flags&O_NDELAY) - { - restore_flags(flags); - return -EAGAIN; - } - interruptible_sleep_on(&mouse_wait); - if(signal_pending(current)) - { - restore_flags(flags); - return -ERESTARTSYS; - } - } - restore_flags(flags); - - - - This is the sledgehammer approach. It works but it means we spend a - lot more time turning interrupts on and off. It also affects - interrupts globally and has bad properties on multiprocessor machines - where turning interrupts off globally is not a simple operation, but - instead involves kicking each processor, waiting for them to disable - interrupts and reply. - - - The real problem is the race between the event testing and the sleeping. - We can avoid that by using the scheduling functions more directly. - Indeed this is the way they generally should be used for an interrupt. - - - - struct wait_queue wait = { current, NULL }; - - add_wait_queue(&mouse_wait, &wait); - set_current_state(TASK_INTERRUPTIBLE); - - while(!mouse_event) - { - if(file->f_flags&O_NDELAY) - { - remove_wait_queue(&mouse_wait, &wait); - set_current_state(TASK_RUNNING); - return -EWOULDBLOCK; - } - if(signal_pending(current)) - { - remove_wait_queue(&mouse_wait, &wait); - current->state = TASK_RUNNING; - return -ERESTARTSYS; - } - schedule(); - set_current_state(TASK_INTERRUPTIBLE); - } - - remove_wait_wait(&mouse_wait, &wait); - set_current_state(TASK_RUNNING); - - - - At first sight this probably looks like deep magic. To understand how - this works you need to understand how scheduling and events work on - Linux. Having a good grasp of this is one of the keys to writing clean - efficient device drivers. - - - add_wait_queue does what its name suggests. It adds - an entry to the mouse_wait list. The entry in this - case is the entry for our current process (current - is the current task pointer). - - - So we start by adding an entry for ourself onto the - mouse_wait list. This does not put us to sleep - however. We are merely tagged onto the list. - - - Next we set our status to TASK_INTERRUPTIBLE. Again - this does not mean we are now asleep. This flag says what should happen - next time the process sleeps. TASK_INTERRUPTIBLE says - that the process should not be rescheduled. It will run from now until it - sleeps and then will need to be woken up. - - - The wakeup_interruptible call in the interrupt - handler can now be explained in more detail. This function is also very - simple. It goes along the list of processes on the queue it is given and - any that are marked as TASK_INTERRUPTIBLE it changes - to TASK_RUNNING and tells the kernel that new - processes are runnable. - - - Behind all the wrappers in the original code what is happening is this - - - - - - We add ourself to the mouse wait queue - - - - - We mark ourself as sleeping - - - - - We ask the kernel to schedule tasks again - - - - - The kernel sees we are asleep and schedules someone else. - - - - - The mouse interrupt sets our state to TASK_RUNNING - and makes a note that the kernel should reschedule tasks - - - - - The kernel sees we are running again and continues our execution - - - - - This is why the apparent magic works. Because we mark ourself as - TASK_INTERRUPTIBLE and as we add ourselves - to the queue before we check if there are events pending, the race - condition is removed. - - - Now if an interrupt occurs after we check the queue status and before - we call the schedule function in order to sleep, - things work out. Instead of missing an event, we are set back to - TASK_RUNNING by the mouse interrupt. We still call - schedule but it will continue running our task. - We go back around the loop and this time there may be an event. - - - There will not always be an event. Thus we set ourselves back to - TASK_INTERRUPTIBLE before resuming the loop. - Another process doing a read may already have cleared the event flag, - and if so we will need to go back to sleep again. Eventually we will - get our event and escape. - - - Finally when we exit the loop we remove ourselves from the - mouse_wait queue as we are no longer interested - in mouse events, and we set ourself back to - TASK_RUNNABLE as we do not wish to go to sleep - again just yet. - - - Note - - This isn't an easy topic. Don't be afraid to reread the description a - few times and also look at other device drivers to see how it works. - Finally if you can't grasp it just yet, you can use the code as - boilerplate to write other drivers and trust me instead. - - - - - - Asynchronous I/O - - This leaves the missing feature - Asynchronous I/O. Normally UNIX - programs use the poll call (or its variant form - select) to wait for an event to occur on one of - multiple input or output devices. This model works well for most tasks - but because poll and select - wait for an event isn't suitable for tasks that are also continually - doing computation work. Such programs really want the kernel to kick - them when something happens rather than watch for events. - - - Poll is akin to having a row of lights in front of you. You can see at a - glance which ones if any are lit. You cannot however get anything useful - done while watching them. Asynchronous I/O uses signals which work more - like a door bell. Instead of you watching, it tells you that something - is up. - - - Asynchronous I/O sends the signal SIGIO to a user process when the I/O - events occur. In this case that means when people move the mouse. The - SIGIO signal causes the user process to jump to its signal handler and - execute code in that handler before returning to whatever was going on - previously. It is the application equivalent of an interrupt handler. - - - Most of the code needed for this operation is common to all its users. - The kernel provides a simple set of functions for managing asynchronous - I/O. - - - Our first job is to allow users to set asynchronous I/O on file handles. - To do that we need to add a new function to the file operations table for - our mouse: - - - -struct file_operations our_mouse_fops = { - owner: THIS_MODULE - read: read_mouse, /* You can read a mouse */ - write: write_mouse, /* This won't do a lot */ - poll: poll_mouse, /* Poll */ - open: open_mouse, /* Called on open */ - release: close_mouse, /* Called on close */ - fasync: fasync_mouse, /* Asynchronous I/O */ -}; - - - - Once we have installed this entry the kernel knows we support - asynchronous I/O and will allow all the relevant operations on the - device. Whenever a user adds or removes asynchronous I/O notification - on a file handle it calls our fasync_mouse routine - we just added. This routine uses the helper functions to keep the queue - of handles up to date: - - - -static struct fasync_struct *mouse_fasync = NULL; - -static int fasync_mouse(int fd, struct file *filp, int on) -{ - int retval = fasync_helper(fd, filp, on, &mouse_fasync); - - if (retval < 0) - return retval; - return 0; -} - - - - The fasync helper adds and deletes entries by managing the supplied - list. We also need to remove entries from this list when the file is - closed. This requires we add one line to our close function: - - - -static int close_mouse(struct inode *inode, struct file *file) -{ - fasync_mouse(-1, file, 0) - if(--mouse_users) - return 0; - free_irq(OURMOUSE_IRQ, NULL); - return 0; -} - - - - When we close the file we now call our own fasync handler as if the - user had requested that this file cease to be used for asynchronous - I/O. This rather neatly cleans up any loose ends. We certainly don't - wait to deliver a signal for a file that no longer exists. - - - At this point the mouse driver supports all the asynchronous I/O - operations, and applications using them will not error. They won't - however work yet. We need to actually send the signals. Again the - kernel provides a function for handling this. - - - We update our interrupt handler a little: - - - -static void ourmouse_interrupt(int irq, void *dev_id, struct pt_regs *regs) -{ - char delta_x; - char delta_y; - unsigned char new_buttons; - - delta_x = inb(OURMOUSE_BASE); - delta_y = inb(OURMOUSE_BASE+1); - new_buttons = inb(OURMOUSE_BASE+2); - - if(delta_x || delta_y || new_buttons != mouse_buttons) - { - /* Something happened */ - - spin_lock(&mouse_lock); - mouse_event = 1; - mouse_dx += delta_x; - mouse_dy += delta_y; - - if(mouse_dx < -4096) - mouse_dx = -4096; - if(mouse_dx > 4096) - mouse_dx = 4096; - - if(mouse_dy < -4096) - mouse_dy = -4096; - if(mouse_dy > 4096) - mouse_dy = 4096; - - mouse_buttons = new_buttons; - spin_unlock(&mouse_lock); - - /* Now we do asynchronous I/O */ - kill_fasync(&mouse_fasync, SIGIO); - - wake_up_interruptible(&mouse_wait); - } -} - - - - The new code simply calls the kill_fasync routine - provided by the kernel if the queue is non-empty. This sends the - required signal (SIGIO in this case) to the process each file handle - says should be informed about the exciting new mouse movement that - just happened. - - - With this in place and the bugs in the original version fixed, you now - have a fully functional mouse driver using the bus mouse protocol. It - will work with the X window system, will work - with GPM and should work with every other - application you need. Doom is of course the - ideal way to test your new mouse driver is functioning properly. Be sure - to test it thoroughly. - - -
- diff --git a/Documentation/DocBook/videobook.tmpl b/Documentation/DocBook/videobook.tmpl index 45243eeb2..2c92b1836 100644 --- a/Documentation/DocBook/videobook.tmpl +++ b/Documentation/DocBook/videobook.tmpl @@ -731,13 +731,14 @@ static int io = 0x300; static int io = -1; +#endif MODULE_AUTHOR("Alan Cox"); MODULE_DESCRIPTION("A driver for an imaginary radio card."); -MODULE_PARM(io, "i"); +module_param(io, int, 0444); MODULE_PARM_DESC(io, "I/O address of the card."); -int init_module(void) +static int __init init(void) { if(io==-1) { @@ -748,25 +749,26 @@ int init_module(void) return myradio_init(NULL); } -void cleanup_module(void) +static void __exit cleanup(void) { video_unregister_device(&my_radio); release_region(io, MY_IO_SIZE); } -#endif +module_init(init); +module_exit(cleanup); In this example we set the IO base by default if the driver is compiled into - the kernel where you cannot pass a parameter. For the module we require the + the kernel: you can still set it using "my_radio.irq" if this file is called my_radio.c. For the module we require the user sets the parameter. We set io to a nonsense port (-1) so that we can tell if the user supplied an io parameter or not. We use MODULE_ defines to give an author for the card driver and a description. We also use them to declare that io is an integer and it is the - address of the card. + address of the card, and can be read by anyone from sysfs. The clean-up routine unregisters the video_device we registered, and frees diff --git a/Documentation/devices.txt b/Documentation/devices.txt index c46f5961a..f115145e5 100644 --- a/Documentation/devices.txt +++ b/Documentation/devices.txt @@ -2546,12 +2546,7 @@ Your cooperation is appreciated. 0 = /dev/usb/lp0 First USB printer ... 15 = /dev/usb/lp15 16th USB printer - 16 = /dev/usb/mouse0 First USB mouse - ... - 31 = /dev/usb/mouse15 16th USB mouse - 32 = /dev/usb/ez0 First USB firmware loader - ... - 47 = /dev/usb/ez15 16th USB firmware loader + 32 = /dev/usb/mdc800 MDC800 USB camera 48 = /dev/usb/scanner0 First USB scanner ... 63 = /dev/usb/scanner15 16th USB scanner @@ -2559,6 +2554,22 @@ Your cooperation is appreciated. 65 = /dev/usb/usblcd USBLCD Interface (info@usblcd.de) 66 = /dev/usb/cpad0 Synaptics cPad (mouse/LCD) + 96 = /dev/usb/hiddev0 1st USB HID device + ... + 111 = /dev/usb/hiddev15 16th USB HID device + 112 = /dev/usb/auer0 1st auerswald ISDN device + ... + 127 = /dev/usb/auer15 16th auerswald ISDN device + 128 = /dev/usb/brlvgr0 First Braille Voyager device + ... + 131 = /dev/usb/brlvgr3 Fourth Braille Voyager device + 144 = /dev/usb/lcd USB LCD device + 160 = /dev/usb/legousbtower0 1st USB Legotower device + ... + 175 = /dev/usb/legousbtower15 16th USB Legotower device + 240 = /dev/usb/dabusb0 First daubusb device + ... + 243 = /dev/usb/dabusb3 Fourth dabusb device 181 char Conrad Electronic parallel port radio clocks 0 = /dev/pcfclock0 First Conrad radio clock @@ -2747,6 +2758,10 @@ Your cooperation is appreciated. 43 = /dev/ttySMX2 Motorola i.MX - port 2 44 = /dev/ttyMM0 Marvell MPSC - port 0 45 = /dev/ttyMM1 Marvell MPSC - port 1 + 46 = /dev/ttyCPM0 PPC CPM (SCC or SMC) - port 0 + ... + 49 = /dev/ttyCPM5 PPC CPM (SCC or SMC) - port 5 + 205 char Low-density serial ports (alternate device) 0 = /dev/culu0 Callout device for ttyLU0 @@ -2775,6 +2790,9 @@ Your cooperation is appreciated. 41 = /dev/ttySMX0 Callout device for ttySMX0 42 = /dev/ttySMX1 Callout device for ttySMX1 43 = /dev/ttySMX2 Callout device for ttySMX2 + 46 = /dev/cucpm0 Callout device for ttyCPM0 + ... + 49 = /dev/cucpm5 Callout device for ttyCPM5 206 char OnStream SC-x0 tape devices 0 = /dev/osst0 First OnStream SCSI tape, mode 0 diff --git a/Documentation/digiboard.txt b/Documentation/digiboard.txt deleted file mode 100644 index 9ccd612b0..000000000 --- a/Documentation/digiboard.txt +++ /dev/null @@ -1,272 +0,0 @@ -The Linux Digiboard Driver --------------------------- - -The Digiboard Driver for Linux supports the following boards: - - DigiBoard PC/Xi, PC/Xe, PC/Xeve(which is the newer, smaller Xe with - a 8K window which is also known as PC/Xe(8K) and has no memory/irq - switches) You can use up to 4 cards with this driver and it should work - on other architectures than intel also. - -A version of this driver has been taken by Digiboard to make a driver -software package which supports also PC/Xem cards and newer PCI cards -but it doesn't support the old PC/Xi cards and it isn't yet ported to -linux-2.1.x and may not be usable on other architectures than intel now. -It is available from ftp.digi.com/ftp.digiboard.com. You can write me if -you need an patch for this driver. - -Bernhard Kaindl (bkaindl@netway.at) 6. April 1997. - -Configuring the Driver ----------------------- - -The driver can be built direct into the kernel or as a module. -The pcxx driver can be configured using the command line feature while -loading the kernel with LILO or LOADLIN or, if built as a module, -with arguments to insmod and modprobe or with parameters in -/etc/modprobe.conf for modprobe and kerneld. - -After configuring the driver you need to create the device special files -as described in "Device file creation:" below and set the appropriate -permissions for your application. - -As Module ---------- - -modprobe pcxx io= \ - membase= \ - memsize= \ - numports= \ - altpin= \ - verbose= - -or, if several cards are installed - -modprobe pcxx io=,,... \ - membase=,,... \ - memsize=,,... \ - numports=,,... \ - altpin=,,... \ - verbose= - -where is the io address of the Nth card and is the -memory base address of the Nth card, etc. - -The parameters can be specified in any order. For example, the numports -parameter can precede the membase parameter, or vice versa. If several -cards are installed the ordering within the comma separated parameter -lists must be consistent, of course. - -io - I/O port address of that card. -membase - Memory start address of that card. -memsize - Memory size of that card, in kilobytes. If given, this value - is compared against the card to verify configuration and - hinder the driver from using a misconfigured card. If the parameter - does not match the board it is disabled with a memory size error. -numports - Number of ports on this card. This is the number of devices to - assign to this card or reserve if disabled. -altpin - 1: swap DCD and DSR for 8-pin RJ-45 with modems. - 0: don't swap DCD and DSR. - other values count as 1. -verbose - 1: give nice verbose output during initialisation of the driver, - possibly helpful during board configuration. - 0: normal terse output. - -Only the parameters which differ from the defaults need to be specified. -If the io= parameter is not given, the default config is used. This is - - io=0x200 membase=0xD0000 numports=16 altpin=0 - -Only applicable parameters need be specified. For example to configure -2 boards, first one at 0x200 with 8 ports, rest defaults, second one at -0x120, memory at 0xD80000, altpin enabled, rest defaults, you can do this -by using these parameters: - - modprobe pcxx io=0x200,0x120 numports=8,8 membase=,0xD80000 altpin=,1 - -To disable a temporary unusable board without changing the mapping of the -devices following that board, you can empty the io-value for that board: - - modprobe pcxx io=,0x120 numports=8,8 membase=,0xD80000 altpin=,1 - -The remaining board still uses ttyD8-ttyD15 and cud8-cud15. - -Example line for /etc/modprobe.conf for use with kerneld and as default -parameters for modprobe: - -options pcxx io=0x200 numports=8 - -For kmod to work you will likely need to add these two lines to your -/etc/modprobe.conf: - -alias char-major-22 pcxx -alias char-major-23 pcxx - - -Boot-time configuration when linked into the kernel ---------------------------------------------------- - -Per board to be configured, pass a digi= command-line parameter to the -kernel using lilo or loadlin. It consists of a string of comma separated -identifiers or integers. The 6 values in order are: - -Card status: Enable - use that board - Disable - don't actually use that board. - -Card type: PC/Xi - the old ones with 64/128/256/512K RAM. - PC/Xe - PC/Xe(old ones with 64k mem range). - PC/Xeve - PC/Xe(new ones with 8k mem range). - -Note: This is for documentation only, the type is detected from the board. - -Altpin setting: Enable - swap DCD and DSR for 8-pin RJ-45 with modems. - Disable - don't swap DCD and DSR. - -Number of ports: 1 ... 16 - Number of ports on this card. This is the - number of devices to assign to this card. - -I/O port address: eg. 200 - I/O Port address where the card is configured. - -Memory base addr: eg. 80000 - Memory address where the board's memory starts. - -This is an example for a line which you can insert into you lilo.conf: - - append="digi=Enable,PC/Xi,Disable,4,120,D0000" - -there is an alternate form, in which you must use decimal values only: - - append="digi=1,0,0,16,512,851968" - -If you don't give a digi= command line, the compiled-in defaults of -board 1: io=0x200, membase=0xd0000, altpin=off and numports=16 are used. - -If you have the resources (io&mem) free for use, configure your board to -these settings and you should be set up fine even if yours has not got 16 -ports. - - -Sources of Information ----------------------- - -Please contact digi directly digilnux@dgii.com. Forward any information of -general interest to me so that I can include it on the webpage. - -Web page: http://lameter.com/digi - -Christoph Lameter (christoph@lameter.com) Aug 14, 2000. - -Device file creation --------------------- - -Currently the Linux MAKEDEV command does not support generating the Digiboard -Devices. - -The /dev/cud devices behave like the /dev/cua devices -and the ttyD devices are like the /dev/ttyS devices. - -Use the following script to generate the devices: - ------------------- mkdigidev begin -#!/bin/sh -# -# Script to create Digiboard Devices -# Christoph Lameter, April 16, 1996 -# -# Usage: -# mkdigidev [] -# - -DIGI_MAJOR=23 -DIGICU_MAJOR=22 - -BOARDS=$1 - -if [ "$BOARDS" = "" ]; then -BOARDS=1 -fi - -boardnum=0 -while [ $boardnum -lt $BOARDS ]; -do - for c in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; - do - name=`expr $boardnum \* 16 + $c` - mknod /dev/cud$name c $DIGICU_MAJOR $name - mknod /dev/ttyD$name c $DIGI_MAJOR $name - done - boardnum=`expr $boardnum + 1` -done ------------------- mkdigidev end - -or apply the following patch to /dev/MAKEDEV and do a -sh /dev/MAKEDEV digi - ------ MAKEDEV Patch ---- /dev/MAKEDEV Sun Aug 13 15:48:23 1995 -+++ MAKEDEV Tue Apr 16 17:53:27 1996 -@@ -120,7 +120,7 @@ - while [ $# -ne 0 ] - do - case "$1" in -- mem|tty|ttyp|cua|cub) ;; -+ mem|tty|ttyp|cua|cub|cud) ;; - hd) echo hda hdb hdc hdd ;; - xd) echo xda xdb ;; - fd) echo fd0 fd1 ;; -@@ -140,6 +140,7 @@ - dcf) echo dcf ;; - pcmcia) ;; # taken care of by its own driver - ttyC) echo cyclades ;; -+ ttyD) echo digi ;; - *) echo "$0: don't know what \"$1\" is" >&2 ;; - esac - shift -@@ -208,6 +209,15 @@ - do - makedev ttyC$i c $major1 `expr 32 + $i` $tty - makedev cub$i c $major2 `expr 32 + $i` $dialout -+ done -+ ;; -+ digi) -+ major1=`Major ttyD` || continue -+ major2=`Major cud` || continue -+ for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -+ do -+ makedev ttyD$i c $major1 `expr 32 + $i` $tty -+ makedev cud$i c $major2 `expr 32 + $i` $dialout - done - ;; - par[0-2]) ------ End Makedev patch - ------------------------------------------------------------------------------ - -Changes v1.5.5: - -The ability to use the kernel's command line to pass in the configuration for -boards. Using LILO's APPEND command, a string of comma separated identifiers -or integers can be used. The 6 values in order are: - - Enable/Disable this card, - Type of card: PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3) - Enable/Disable alternate pin arrangement, - Number of ports on this card, - I/O Port where card is configured (in HEX if using string identifiers), - Base of memory window (in HEX if using string identifiers), - -Samples: - append="digi=E,PC/Xi,D,16,200,D0000" - append="digi=1,0,0,16,512,(whatever D0000 is in base 10 :) - -Drivers' minor device numbers are conserved. This means that instead of -each board getting a block of 16 minors pre-assigned, it gets however -many it should, with the next card following directly behind it. A -system with 4 2-port PC/Xi boards will use minor numbers 0-7. -This conserves some memory, and removes a few hard coded constants. - -NOTE!! NOTE!! NOTE!! -The definition of PC/Xem as a valid board type is the BEGINNING of support -for this device. The driver does not currently recognise the board, nor -does it want to initialize it. At least not the EISA version. - -Mike McLagan 5, April 1996. diff --git a/Documentation/dvb/firmware.txt b/Documentation/dvb/firmware.txt deleted file mode 100644 index 37d880794..000000000 --- a/Documentation/dvb/firmware.txt +++ /dev/null @@ -1,120 +0,0 @@ -Some DVB cards and many newer frontends require proprietary, -binary-only firmware. - -The DVB drivers will be converted to use the request_firmware() -hotplug interface (see Documentation/firmware_class/). -(CONFIG_FW_LOADER) - -The firmware can be loaded automatically via the hotplug manager -or manually with the steps described below. - -Currently the drivers still use various different methods -to load their firmwares, so here's just a short list of the -current state: - -- dvb-ttpci: driver uses firmware hotplug interface -- ttusb-budget: firmware is compiled in (dvb-ttusb-dspbootcode.h) -- sp887x: firmware is compiled in (sp887x_firm.h) -- alps_tdlb7: firmware is loaded from path specified by - "mcfile" module parameter; the binary must be - extracted from the Windows driver (Sc_main.mc). -- tda1004x: firmware is loaded from path specified in - DVB_TDA1004X_FIRMWARE_FILE kernel config - variable (default /usr/lib/hotplug/firmware/tda1004x.bin); the - firmware binary must be extracted from the windows - driver -- ttusb-dec: see "ttusb-dec.txt" for details - -1) Automatic firmware loading - -You need to install recent hotplug scripts if your distribution did not do it -for you already, especially the /etc/hotplug/firmware.agent. -http://linux-hotplug.sourceforge.net/ (Call /sbin/hotplug without arguments -to find out if the firmware agent is installed.) - -The firmware.agent script expects firmware binaries in -/usr/lib/hotplug/firmware/. To avoid naming and versioning -conflicts we propose the following naming scheme: - - /usr/lib/hotplug/firmware/dvb-{driver}-{ver}.fw for MPEG decoders etc. - /usr/lib/hotplug/firmware/dvb-fe-{driver}-{ver}.fw for frontends - - {driver} name is the basename of the driver kernel module (e.g. dvb-ttpci) - {ver} is a version number/name that should change only when the - driver/firmware internal API changes (so users are free to install the - latest firmware compatible with the driver). - -2) Manually loading the firmware into a driver - (currently only the dvb-ttpci / av7110 driver supports this) - -Step a) Mount sysfs-filesystem. - -Sysfs provides a means to export kernel data structures, their attributes, -and the linkages between them to userspace. - -For detailed informations have a look at Documentation/filesystems/sysfs.txt -All you need to know at the moment is that firmware loading only works through -sysfs. - -> mkdir /sys -> mount -t sysfs sysfs /sys - -Step b) Exploring the firmware loading facilities - -Firmware_class support is located in -/sys/class/firmware - -> dir /sys/class/firmware - -The "timeout" values specifies the amount of time that is waited before the -firmware upload process is cancelled. The default values is 10 seconds. If -you use a hotplug script for the firmware upload, this is sufficient. If -you want to upload the firmware by hand, however, this might be too fast. - -> echo "180" > /sys/class/firmware/timeout - -Step c) Getting a usable firmware file for the dvb-ttpci driver/av7110 card. - -You can download the firmware files from -http://linuxtv.org/download/dvb/ - -Please note that in case of the dvb-ttpci driver this is *not* the "Root" -file you probably know from the 2.4 DVB releases driver. - -The ttpci-firmware utility from linuxtv.org CVS can be used to -convert Dpram and Root files into a usable firmware image. -See dvb-kerrnel/scripts/ in http://linuxtv.org/cvs/. - -> wget http://www.linuxtv.org/download/dvb/dvb-ttpci-01.fw -gets you the version 01 of the firmware fot the ttpci driver. - -Step d) Loading the dvb-ttpci driver and loading the firmware - -"modprobe" will take care that every needed module will be loaded -automatically (except the frontend driver) - -> modprobe dvb-ttpci - -The "modprobe" process will hang until -a) you upload the firmware or -b) the timeout occurs. - -Change to another terminal and have a look at - -> dir /sys/class/firmware/ - -total 0 -drwxr-xr-x 2 root root 0 Jul 29 11:00 0000:03:05.0 --rw-r--r-- 1 root root 0 Jul 29 10:41 timeout - -"0000:03:05.0" is the id for my dvb-c card. It depends on the pci slot, -so it changes if you plug the card to different slots. - -You can upload the firmware like that: - -> export DEVDIR=/sys/class/firmware/0000\:03\:05.0 -> echo 1 > $DEVDIR/loading -> cat dvb-ttpci-01.fw > $DEVDIR/data -> echo 0 > $DEVDIR/loading - -That's it. The driver should be up and running now. diff --git a/Documentation/fb/vesafb.txt b/Documentation/fb/vesafb.txt index 36beb54f1..814e2f56a 100644 --- a/Documentation/fb/vesafb.txt +++ b/Documentation/fb/vesafb.txt @@ -146,11 +146,16 @@ pmipal Use the protected mode interface for palette changes. mtrr setup memory type range registers for the vesafb framebuffer. -vram:n remap 'n' MiB of video RAM. If 0 or not specified, remap memory +vremap:n + remap 'n' MiB of video RAM. If 0 or not specified, remap memory according to video mode. (2.5.66 patch/idea by Antonino Daplas reversed to give override possibility (allocate more fb memory than the kernel would) to 2.4 by tmb@iki.fi) +vtotal:n + if the video BIOS of your card incorrectly determines the total + amount of video RAM, use this option to override the BIOS (in MiB). + Have fun! Gerd diff --git a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt index 7d600c0f4..f89b440fa 100644 --- a/Documentation/filesystems/ntfs.txt +++ b/Documentation/filesystems/ntfs.txt @@ -10,8 +10,10 @@ Table of contents - Features - Supported mount options - Known bugs and (mis-)features -- Using Software RAID with NTFS -- Limitiations when using the MD driver +- Using NTFS volume and stripe sets + - The Device-Mapper driver + - The Software RAID / MD driver + - Limitiations when using the MD driver - ChangeLog @@ -199,11 +201,161 @@ Please send bug reports/comments/feedback/abuse to the Linux-NTFS development list at sourceforge: linux-ntfs-dev@lists.sourceforge.net -Using Software RAID with NTFS -============================= +Using NTFS volume and stripe sets +================================= + +For support of volume and stripe sets, you can either use the kernel's +Device-Mapper driver or the kernel's Software RAID / MD driver. The former is +the recommended one to use for linear raid. But the latter is required for +raid level 5. For striping and mirroring, either driver should work fine. + + +The Device-Mapper driver +------------------------ + +You will need to create a table of the components of the volume/stripe set and +how they fit together and load this into the kernel using the dmsetup utility +(see man 8 dmsetup). + +Linear volume sets, i.e. linear raid, has been tested and works fine. Even +though untested, there is no reason why stripe sets, i.e. raid level 0, and +mirrors, i.e. raid level 1 should not work, too. Stripes with parity, i.e. +raid level 5, unfortunately cannot work yet because the current version of the +Device-Mapper driver does not support raid level 5. You may be able to use the +Software RAID / MD driver for raid level 5, see the next section for details. + +To create the table describing your volume you will need to know each of its +components and their sizes in sectors, i.e. multiples of 512-byte blocks. + +For NT4 fault tolerant volumes you can obtain the sizes using fdisk. So for +example if one of your partitions is /dev/hda2 you would do: + +$ fdisk -ul /dev/hda + +Disk /dev/hda: 81.9 GB, 81964302336 bytes +255 heads, 63 sectors/track, 9964 cylinders, total 160086528 sectors +Units = sectors of 1 * 512 = 512 bytes + + Device Boot Start End Blocks Id System + /dev/hda1 * 63 4209029 2104483+ 83 Linux + /dev/hda2 4209030 37768814 16779892+ 86 NTFS + /dev/hda3 37768815 46170809 4200997+ 83 Linux + +And you would know that /dev/hda2 has a size of 37768814 - 4209030 + 1 = +33559785 sectors. + +For Win2k and later dynamic disks, you can for example use the ldminfo utility +which is part of the Linux LDM tools (the latest version at the time of +writing is linux-ldm-0.0.8.tar.bz2). You can download it from: + http://linux-ntfs.sourceforge.net/downloads.html +Simply extract the downloaded archive (tar xvjf linux-ldm-0.0.8.tar.bz2), go +into it (cd linux-ldm-0.0.8) and change to the test directory (cd test). You +will find the precompiled (i386) ldminfo utility there. NOTE: You will not be +able to compile this yourself easily so use the binary version! + +Then you would use ldminfo in dump mode to obtain the necessary information: + +$ ./ldminfo --dump /dev/hda + +This would dump the LDM database found on /dev/hda which describes all of your +dynamic disks and all the volumes on them. At the bottom you will see the +VOLUME DEFINITIONS section which is all you really need. You may need to look +further above to determine which of the disks in the volume definitions is +which device in Linux. Hint: Run ldminfo on each of your dynamic disks and +look at the Disk Id close to the top of the output for each (the PRIVATE HEADER +section). You can then find these Disk Ids in the VBLK DATABASE section in the + components where you will get the LDM Name for the disk that is found in +the VOLUME DEFINITIONS section. + +Note you will also need to enable the LDM driver in the Linux kernel. If your +distribution did not enable it, you will need to recompile the kernel with it +enabled. This will create the LDM partitions on each device at boot time. You +would then use those devices (for /dev/hda they would be /dev/hda1, 2, 3, etc) +in the Device-Mapper table. + +You can also bypass using the LDM driver by using the main device (e.g. +/dev/hda) and then using the offsets of the LDM partitions into this device as +the "Start sector of device" when creating the table. Once again ldminfo would +give you the correct information to do this. + +Assuming you know all your devices and their sizes things are easy. + +For a linear raid the table would look like this (note all values are in +512-byte sectors): + +--- cut here --- +# Offset into Size of this Raid type Device Start sector +# volume device of device +0 1028161 linear /dev/hda1 0 +1028161 3903762 linear /dev/hdb2 0 +4931923 2103211 linear /dev/hdc1 0 +--- cut here --- -For support of volume and stripe sets, use the kernel's Software RAID / MD -driver and set up your /etc/raidtab appropriately (see man 5 raidtab). +For a striped volume, i.e. raid level 0, you will need to know the chunk size +you used when creating the volume. Windows uses 64kiB as the default, so it +will probably be this unless you changes the defaults when creating the array. + +For a raid level 0 the table would look like this (note all values are in +512-byte sectors): + +--- cut here --- +# Offset Size Raid Number Chunk 1st Start 2nd Start +# into of the type of size Device in Device in +# volume volume stripes device device +0 2056320 striped 2 128 /dev/hda1 0 /dev/hdb1 0 +--- cut here --- + +If there are more than two devices, just add each of them to the end of the +line. + +Finally, for a mirrored volume, i.e. raid level 1, the table would look like +this (note all values are in 512-byte sectors): + +--- cut here --- +# Ofs Size Raid Log Number Region Should Number Source Start Taget Start +# in of the type type of log size sync? of Device in Device in +# vol volume params mirrors Device Device +0 2056320 mirror core 2 16 nosync 2 /dev/hda1 0 /dev/hdb1 0 +--- cut here --- + +If you are mirroring to multiple devices you can specify further targets at the +end of the line. + +Note the "Should sync?" parameter "nosync" means that the two mirrors are +already in sync which will be the case on a clean shutdown of Windows. If the +mirrors are not clean, you can specify the "sync" option instead of "nosync" +and the Device-Mapper driver will then copy the entirey of the "Source Device" +to the "Target Device" or if you specified multipled target devices to all of +them. + +Once you have your table, save it in a file somewhere (e.g. /etc/ntfsvolume1), +and hand it over to dmsetup to work with, like so: + +$ dmsetup create myvolume1 /etc/ntfsvolume1 + +You can obviously replace "myvolume1" with whatever name you like. + +If it all worked, you will now have the device /dev/device-mapper/myvolume1 +which you can then just use as an argument to the mount command as usual to +mount the ntfs volume. For example: + +$ mount -t ntfs -o ro /dev/device-mapper/myvolume1 /mnt/myvol1 + +(You need to create the directory /mnt/myvol1 first and of course you can use +anything you like instead of /mnt/myvol1 as long as it is an existing +directory.) + +It is advisable to do the mount read-only to see if the volume has been setup +correctly to avoid the possibility of causing damage to the data on the ntfs +volume. + + +The Software RAID / MD driver +----------------------------- + +An alternative to using the Device-Mapper driver is to use the kernel's +Software RAID / MD driver. For which you need to set up your /etc/raidtab +appropriately (see man 5 raidtab). Linear volume sets, i.e. linear raid, as well as stripe sets, i.e. raid level 0, have been tested and work fine (though see section "Limitiations when using @@ -258,8 +410,8 @@ setup correctly to avoid the possibility of causing damage to the data on the ntfs volume. -Limitiations when using the MD driver -===================================== +Limitiations when using the Software RAID / MD driver +----------------------------------------------------- Using the md driver will not work properly if any of your NTFS partitions have an odd number of sectors. This is especially important for linear raid as all @@ -271,12 +423,24 @@ apparent when you try to use the volume again under Windows. So when using linear raid, make sure that all your partitions have an even number of sectors BEFORE attempting to use it. You have been warned! +Even better is to simply use the Device-Mapper for linear raid and then you do +not have this problem with odd numbers of sectors. + ChangeLog ========= Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. +2.1.22: + - Improve handling of ntfs volumes with errors. + - Fix various bugs and race conditions. +2.1.21: + - Fix several race conditions and various other bugs. + - Many internal cleanups, code reorganization, optimizations, and mft + and index record writing code rewritten to fit in with the changes. + - Update Documentation/filesystems/ntfs.txt with instructions on how to + use the Device-Mapper driver with NTFS ftdisk/LDM raid. 2.1.20: - Fix two stupid bugs introduced in 2.1.18 release. 2.1.19: diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index 0dad0f2b0..2c3fc3a27 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt @@ -350,22 +350,6 @@ available. In this case, there are 0 chunks of 2^0*PAGE_SIZE available in ZONE_DMA, 4 chunks of 2^1*PAGE_SIZE in ZONE_DMA, 101 chunks of 2^4*PAGE_SIZE available in ZONE_NORMAL, etc... - -1.3 IDE devices in /proc/ide ----------------------------- - -The subdirectory /proc/ide contains information about all IDE devices of which -the kernel is aware. There is one subdirectory for each IDE controller, the -file drivers and a link for each IDE device, pointing to the device directory -in the controller specific subtree. - -The file drivers contains general information about the drivers used for the -IDE devices: - - > cat /proc/ide/drivers - ide-cdrom version 4.53 - ide-disk version 1.08 - .............................................................................. meminfo: @@ -394,9 +378,9 @@ Dirty: 968 kB Writeback: 0 kB Mapped: 280372 kB Slab: 684068 kB -Committed_AS: 1576424 kB +CommitLimit: 7669796 kB +Committed_AS: 100056 kB PageTables: 24448 kB -ReverseMaps: 1080904 VmallocTotal: 112216 kB VmallocUsed: 428 kB VmallocChunk: 111088 kB @@ -434,26 +418,54 @@ VmallocChunk: 111088 kB Writeback: Memory which is actively being written back to the disk Mapped: files which have been mmaped, such as libraries Slab: in-kernel data structures cache -Committed_AS: An estimate of how much RAM you would need to make a - 99.99% guarantee that there never is OOM (out of memory) - for this workload. Normally the kernel will overcommit - memory. That means, say you do a 1GB malloc, nothing - happens, really. Only when you start USING that malloc - memory you will get real memory on demand, and just as - much as you use. So you sort of take a mortgage and hope - the bank doesn't go bust. Other cases might include when - you mmap a file that's shared only when you write to it - and you get a private copy of that data. While it normally - is shared between processes. The Committed_AS is a - guesstimate of how much RAM/swap you would need - worst-case. + CommitLimit: Based on the overcommit ratio ('vm.overcommit_ratio'), + this is the total amount of memory currently available to + be allocated on the system. This limit is only adhered to + if strict overcommit accounting is enabled (mode 2 in + 'vm.overcommit_memory'). + The CommitLimit is calculated with the following formula: + CommitLimit = ('vm.overcommit_ratio' * Physical RAM) + Swap + For example, on a system with 1G of physical RAM and 7G + of swap with a `vm.overcommit_ratio` of 30 it would + yield a CommitLimit of 7.3G. + For more details, see the memory overcommit documentation + in vm/overcommit-accounting. +Committed_AS: The amount of memory presently allocated on the system. + The committed memory is a sum of all of the memory which + has been allocated by processes, even if it has not been + "used" by them as of yet. A process which malloc()'s 1G + of memory, but only touches 300M of it will only show up + as using 300M of memory even if it has the address space + allocated for the entire 1G. This 1G is memory which has + been "committed" to by the VM and can be used at any time + by the allocating application. With strict overcommit + enabled on the system (mode 2 in 'vm.overcommit_memory'), + allocations which would exceed the CommitLimit (detailed + above) will not be permitted. This is useful if one needs + to guarantee that processes will not fail due to lack of + memory once that memory has been successfully allocated. PageTables: amount of memory dedicated to the lowest level of page tables. - ReverseMaps: number of reverse mappings performed VmallocTotal: total size of vmalloc memory area VmallocUsed: amount of vmalloc area which is used VmallocChunk: largest contigious block of vmalloc area which is free + +1.3 IDE devices in /proc/ide +---------------------------- + +The subdirectory /proc/ide contains information about all IDE devices of which +the kernel is aware. There is one subdirectory for each IDE controller, the +file drivers and a link for each IDE device, pointing to the device directory +in the controller specific subtree. + +The file drivers contains general information about the drivers used for the +IDE devices: + + > cat /proc/ide/drivers + ide-cdrom version 4.53 + ide-disk version 1.08 + More detailed information can be found in the controller specific subdirectories. These are named ide0, ide1 and so on. Each of these directories contains the files shown in table 1-4. @@ -1269,6 +1281,14 @@ block_dump block_dump enables block I/O debugging when set to a nonzero value. More information on block I/O debugging is in Documentation/laptop-mode.txt. +swap_token_timeout +------------------ + +This file contains valid hold time of swap out protection token. The Linux +VM has token based thrashing control mechanism and uses the token to prevent +unnecessary page faults in thrashing situation. The unit of the value is +second. The value would be useful to tune thrashing behavior. + 2.5 /proc/sys/dev - Device specific parameters ---------------------------------------------- diff --git a/Documentation/isdn/README.eicon b/Documentation/isdn/README.eicon deleted file mode 100644 index 111409ba6..000000000 --- a/Documentation/isdn/README.eicon +++ /dev/null @@ -1,118 +0,0 @@ -$Id: README.eicon,v 1.10.6.1 2001/02/19 10:04:59 armin Exp $ - -(c) 1999,2000 Armin Schindler (mac@melware.de) -(c) 1999,2000 Cytronics & Melware (info@melware.de) - -This document describes the eicon driver for the -Eicon active ISDN cards. - -It is meant to be used with isdn4linux, an ISDN link-level module for Linux. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - - -Supported Cards -=============== - -Old ISA type ------------- -- S-Card ISA -- SX-Card ISA -- SXn-Card ISA -- SCOM-Card ISA -- Quadro-Card ISA -- S2M-Card ISA - -DIVA Server family ------------------- -- DIVA Server BRI/PCI 2M -- DIVA Server PRI/PCI 2M (9M 23M 30M) -- DIVA Server 4BRI/PCI - supported functions of onboard DSPs: - - analog modem - - fax group 2/3 (Fax Class 2 commands) - - DTMF detection - - -ISDN D-Channel Protocols ------------------------- - -- ETSI (Euro-DSS1) -- 1TR6 (German ISDN) *not testet* -- other protocols exist for the range of DIVA Server cards, - but they are not fully testet yet. - - -You can load the module simply by using the insmod or modprobe function : - - insmod eicon [id=driverid] [membase=] [irq=] - - -The module will automatically probe the PCI-cards. If the id-option -is omitted, the driver will assume 'eicon0' for the first pci card and -increases the digit with each further card. With a given driver-id -the module appends a number starting with '0'. - -For ISA-cards you have to specify membase, irq and id. If id or -membase is missing/invalid, the driver will not be loaded except -PCI-cards were found. Additional ISA-cards and irq/membase changes -can be done with the eiconctrl utility. - -After loading the module, you have to download the protocol and -dsp-code by using the eiconctrl utility of isdn4k-utils. - - -Example for loading and starting a BRI card with E-DSS1 Protocol. - - eiconctrl [-d DriverId] load etsi - -Example for a BRI card with E-DSS1 Protocol with PtP configuration. - - eiconctrl [-d DriverId] load etsi -n -t1 -s1 - - -Example for loading and starting a PRI card with E-DSS1 Protocol. - - eiconctrl [-d DriverId] load etsi -s2 -n - - -Details about using the eiconctrl utility are in 'man eiconctrl' -or will be printed by starting eiconctrl without any parameters. - -ISDNLOG: -With eicon driver version 1.77 or newer and the eiconctrl utility -of version 1.1 or better, you can use the isdnlog user program -with your DIVA Server BRI card. -Just use "eiconctrl isdnlog on" and the driver will generate -the necessary D-Channel traces for isdnlog. - - - -Thanks to - Deutsche Mailbox Saar-Lor-Lux GmbH - for sponsoring and testing fax - capabilities with Diva Server cards. - - -Any reports about bugs, errors and even wishes are welcome. - - -Have fun ! - -Armin Schindler -mac@melware.de -http://www.melware.de - diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 1b8691daa..3db6c5095 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -54,6 +54,7 @@ restrictions referred to are that the relevant option is valid if: NFS Appropriate NFS support is enabled. OSS OSS sound support is enabled. PARIDE The ParIDE subsystem is enabled. + PARISC The PA-RISC architecture is enabled. PCI PCI bus support is enabled. PCMCIA The PCMCIA subsystem is enabled. PNP Plug & Play support is enabled. @@ -312,8 +313,24 @@ running once the system is up. condev= [HW,S390] console device conmode= - console= [KNL] Output console - Console device and comm spec (speed, control, parity). + console= [KNL] Output console device and options. + + tty Use the virtual console device . + + ttyS[,options] + Use the specified serial port. The options are of + the form "bbbbpn", where "bbbb" is the baud rate, + "p" is parity ("n", "o", or "e"), and "n" is bits. + Default is "9600n8". + + See also Documentation/serial-console.txt. + + uart,io,[,options] + uart,mmio,[,options] + Start an early, polled-mode console on the 8250/16550 + UART at the specified I/O port or MMIO address, + switching to the matching ttyS device later. The + options are the same as for ttyS, above. cpcihp_generic= [HW,PCI] Generic port I/O CompactPCI driver Format: ,,,[,] @@ -399,7 +416,7 @@ running once the system is up. eicon= [HW,ISDN] Format: ,, - eisa_irq_edge= [PARISC] + eisa_irq_edge= [PARISC,HW] See header of drivers/parisc/eisa.c. elanfreq= [IA-32] @@ -408,7 +425,8 @@ running once the system is up. elevator= [IOSCHED] Format: {"as"|"cfq"|"deadline"|"noop"} - See Documentation/as-iosched.txt for details + See Documentation/block/as-iosched.txt + and Documentation/block/deadline-iosched.txt for details. es1370= [HW,OSS] Format: [,] @@ -493,16 +511,26 @@ running once the system is up. i810= [HW,DRM] + i8k.force [HW] Activate i8k driver even if SMM BIOS signature + does not match list of supported models. + i8k.power_status + [HW] Report power status in /proc/i8k + (disabled by default) + i8k.restricted [HW] Allow controlling fans only if SYS_ADMIN + capability is set. + ibmmcascsi= [HW,MCA,SCSI] IBM MicroChannel SCSI adapter See Documentation/mca.txt. icn= [HW,ISDN] Format: [,[,[,]]] + ide= [HW] (E)IDE subsystem + Format: ide=nodma or ide=doubler or ide=reverse + See Documentation/ide.txt. + ide?= [HW] (E)IDE subsystem - Config (iomem/irq), tuning or debugging - (serialize,reset,no{dma,tune,probe}) or chipset - specific parameters. + Format: ide?=noprobe or chipset specific parameters. See Documentation/ide.txt. idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed @@ -546,6 +574,17 @@ running once the system is up. ips= [HW,SCSI] Adaptec / IBM ServeRAID controller See header of drivers/scsi/ips.c. + irqfixup [HW] + When an interrupt is not handled search all handlers + for it. Intended to get systems with badly broken + firmware running. + + irqpoll [HW] + When an interrupt is not handled search all handlers + for it. Also check all handlers each timer + interrupt. Intended to get systems with badly broken + firmware running. + isapnp= [ISAPNP] Format: , , , @@ -648,9 +687,10 @@ running once the system is up. maxcpus= [SMP] Maximum number of processors that an SMP kernel should make use of - max_scsi_luns= [SCSI] + max_luns= [SCSI] Maximum number of LUNs to probe + Should be between 1 and 2^32-1. - max_scsi_report_luns= + max_report_luns= [SCSI] Maximum number of LUNs received Should be between 1 and 16384. @@ -675,6 +715,9 @@ running once the system is up. mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory Amount of memory to be used when the kernel is not able to see the whole system memory or for test. + [IA-32] Use together with memmap= to avoid physical + address space collisions. Without memmap= PCI devices + could be placed at addresses belonging to unused RAM. mem=nopentium [BUGS=IA-32] Disable usage of 4MB pages for kernel memory. @@ -697,7 +740,7 @@ running once the system is up. [KNL,ACPI] Mark specific memory as reserved. Region of memory to be used, from ss to ss+nn. - meye= [HW] Set MotionEye Camera parameters + meye.*= [HW] Set MotionEye Camera parameters See Documentation/video4linux/meye.txt. mga= [HW,DRM] @@ -759,8 +802,8 @@ running once the system is up. noalign [KNL,ARM] - noapic [SMP,APIC] Tells the kernel not to make use of any - APIC that may be present on the system. + noapic [SMP,APIC] Tells the kernel to not make use of any + IOAPICs that may be present in the system. noasync [HW,M68K] Disables async and sync negotiation for all devices. @@ -774,14 +817,12 @@ running once the system is up. noexec [IA-64] - noexec [i386] + noexec [i386, x86_64] noexec=on: enable non-executable mappings (default) noexec=off: disable nn-executable mappings nofxsr [BUGS=IA-32] - nohighio [BUGS=IA-32] Disable highmem block I/O. - nohlt [BUGS=ARM] no-hlt [BUGS=IA-32] Tells the kernel that the hlt @@ -862,6 +903,16 @@ running once the system is up. order they are specified on the command line, starting with parport0. + parport_init_mode= + [HW,PPT] Configure VIA parallel port to + operate in specific mode. This is + necessary on Pegasos computer where + firmware has no options for setting up + parallel port mode and sets it to + spp. Currently this function knows + 686a and 8231 chips. + Format: [spp|ps2|epp|ecp|ecpepp] + pas2= [HW,OSS] Format: ,,,,,,, @@ -917,6 +968,10 @@ running once the system is up. enabled. noacpi [IA-32] Do not use ACPI for IRQ routing or for PCI scanning. + routeirq Do IRQ routing for all PCI devices. + This is normally done in pci_enable_device(), + so this option is a temporary workaround + for broken drivers that don't call it. firmware [ARM] Do not re-enumerate the bus but instead just use the configuration @@ -930,6 +985,11 @@ running once the system is up. pd. [PARIDE] See Documentation/paride.txt. + pdcchassis= [PARISC,HW] Disable/Enable PDC Chassis Status codes at + boot time. + Format: { 0 | 1 } + See arch/parisc/kernel/pdc_chassis.c + pf. [PARIDE] See Documentation/paride.txt. @@ -965,6 +1025,10 @@ running once the system is up. (param: profile step/bucket size as a power of 2 for statistical time based profiling) + processor.max_cstate= [HW, ACPI] + Limit processor to maximum C-state + max_cstate=9 overrides any DMI blacklist limit. + prompt_ramdisk= [RAM] List of RAM disks to prompt for floppy disk before loading. See Documentation/ramdisk.txt. @@ -1006,10 +1070,6 @@ running once the system is up. New name for the ramdisk parameter. See Documentation/ramdisk.txt. - ramdisk_start= [RAM] Starting block of RAM disk image (so you can - place it after the kernel image on a boot floppy). - See Documentation/ramdisk.txt. - reboot= [BUGS=IA-32,BUGS=ARM,BUGS=IA-64] Rebooting mode Format: [,[,...]] See arch/*/kernel/reboot.c. @@ -1065,8 +1125,6 @@ running once the system is up. scsi_logging= [SCSI] - scsihosts= [SCSI] - serialnumber [BUGS=IA-32] sf16fm= [HW] SF16FMI radio driver for Linux @@ -1224,17 +1282,12 @@ running once the system is up. sonycd535= [HW,CD] Format: [,] - sonypi= [HW] Sony Programmable I/O Control Device driver - Format: ,,,,, + sonypi.*= [HW] Sony Programmable I/O Control Device driver + See Documentation/sonypi.txt specialix= [HW,SERIAL] Specialix multi-serial port adapter See Documentation/specialix.txt. - speedstep_coppermine= - [HW,IA-32] Take CPU in your notebook as SpeedStep-capable - See comment before function speedstep_setup() in - arch/i386/kernel/cpu/cpufreq/speedstep.c. - spia_io_base= [HW,MTD] spia_fio_base= spia_pedr= @@ -1249,7 +1302,7 @@ running once the system is up. st0x= [HW,SCSI] See header of drivers/scsi/seagate.c. - sti= [HW] + sti= [PARISC,HW] Format: Set the STI (builtin display/keyboard on the HP-PARISC machines) console (graphic card) which should be used @@ -1316,6 +1369,8 @@ running once the system is up. uart6850= [HW,OSS] Format: , + + usb-handoff [HW] Enable early USB BIOS -> OS handoff video= [FB] Frame buffer configuration See Documentation/fb/modedb.txt. diff --git a/Documentation/md.txt b/Documentation/md.txt index 3fb3b1ef1..e2b536992 100644 --- a/Documentation/md.txt +++ b/Documentation/md.txt @@ -45,7 +45,8 @@ Boot time autodetection of RAID arrays When md is compiled into the kernel (not as module), partitions of type 0xfd are scanned and automatically assembled into RAID arrays. This autodetection may be suppressed with the kernel parameter -"raid=noautodetect". +"raid=noautodetect". As of kernel 2.6.9, only drives with a type 0 +superblock can be autodetected and run at boot time. The kernel parameter "raid=partitionable" (or "raid=part") means that all auto-detected arrays are assembled as partitionable. @@ -55,13 +56,13 @@ Superblock formats ------------------ The md driver can support a variety of different superblock formats. -(It doesn't yet, but it can) +Currently, it supports superblock formats "0.90.0" and the "md-1" format +introduced in the 2.5 development series. -The kernel does *NOT* autodetect which format superblock is being -used. It must be told. +The kernel will autodetect which format superblock is being used. Superblock format '0' is treated differently to others for legacy -reasons. +reasons - it is the original superblock format. General Rules - apply for all superblock formats @@ -69,6 +70,7 @@ General Rules - apply for all superblock formats An array is 'created' by writing appropriate superblocks to all devices. + It is 'assembled' by associating each of these devices with an particular md virtual device. Once it is completely assembled, it can be accessed. @@ -76,10 +78,10 @@ be accessed. An array should be created by a user-space tool. This will write superblocks to all devices. It will usually mark the array as 'unclean', or with some devices missing so that the kernel md driver -can create approrpriate redundancy (copying in raid1, parity +can create appropriate redundancy (copying in raid1, parity calculation in raid4/5). -When an array is assembled, it is first initialised with the +When an array is assembled, it is first initialized with the SET_ARRAY_INFO ioctl. This contains, in particular, a major and minor version number. The major version number selects which superblock format is to be used. The minor number might be used to tune handling @@ -101,15 +103,16 @@ array using HOT_REMOVE_DISK. Specific Rules that apply to format-0 super block arrays, and - arrays with no superblock (non-persistant). + arrays with no superblock (non-persistent). ------------------------------------------------------------- An array can be 'created' by describing the array (level, chunksize etc) in a SET_ARRAY_INFO ioctl. This must has major_version==0 and raid_disks != 0. -Then uninitialised devices can be added with ADD_NEW_DISK. The + +Then uninitialized devices can be added with ADD_NEW_DISK. The structure passed to ADD_NEW_DISK must specify the state of the device and it's role in the array. -One started with RUN_ARRAY, uninitialised spares can be added with +Once started with RUN_ARRAY, uninitialized spares can be added with HOT_ADD_DISK. diff --git a/Documentation/mkdev.ida b/Documentation/mkdev.ida deleted file mode 100644 index d2764899d..000000000 --- a/Documentation/mkdev.ida +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -# Script to create device nodes for SMART array controllers -# Usage: -# mkdev.ida [num controllers] [num log volumes] [num partitions] -# -# With no arguments, the script assumes 1 controller, 16 logical volumes, -# and 16 partitions/volume, which is adequate for most configurations. -# -# If you had 5 controllers and were planning on no more than 4 logical volumes -# each, using a maximum of 8 partitions per volume, you could say: -# -# mkdev.ida 5 4 8 -# -# Of course, this has no real benefit over "mkdev.ida 5" except that it -# doesn't create so many device nodes in /dev/ida. - -NR_CTLR=${1-1} -NR_VOL=${2-16} -NR_PART=${3-16} - -if [ ! -d /dev/ida ]; then - mkdir -p /dev/ida -fi - -C=0; while [ $C -lt $NR_CTLR ]; do - MAJ=`expr $C + 72` - D=0; while [ $D -lt $NR_VOL ]; do - P=0; while [ $P -lt $NR_PART ]; do - MIN=`expr $D \* 16 + $P` - if [ $P -eq 0 ]; then - mknod /dev/ida/c${C}d${D} b $MAJ $MIN - else - mknod /dev/ida/c${C}d${D}p${P} b $MAJ $MIN - fi - P=`expr $P + 1` - done - D=`expr $D + 1` - done - C=`expr $C + 1` -done diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index c9ead70d5..a2c893a74 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt @@ -355,6 +355,12 @@ tcp_default_win_scale - INTEGER conections. Default: 7 +tcp_tso_win_divisor - INTEGER + This allows control over what percentage of the congestion window + can be consumed by a single TSO frame. + The setting of this parameter is a choice between burstiness and + building larger TSO frames. + Default: 8 tcp_frto - BOOLEAN Enables F-RTO, an enhanced recovery algorithm for TCP retransmission diff --git a/Documentation/pci.txt b/Documentation/pci.txt index a1a2bd557..b0676d114 100644 --- a/Documentation/pci.txt +++ b/Documentation/pci.txt @@ -141,26 +141,24 @@ for PCI devices manually using the following constructs: Searching by vendor and device ID: struct pci_dev *dev = NULL; - while (dev = pci_find_device(VENDOR_ID, DEVICE_ID, dev)) + while (dev = pci_get_device(VENDOR_ID, DEVICE_ID, dev)) configure_device(dev); Searching by class ID (iterate in a similar way): - pci_find_class(CLASS_ID, dev) + pci_get_class(CLASS_ID, dev) Searching by both vendor/device and subsystem vendor/device ID: - pci_find_subsys(VENDOR_ID, DEVICE_ID, SUBSYS_VENDOR_ID, SUBSYS_DEVICE_ID, dev). + pci_get_subsys(VENDOR_ID, DEVICE_ID, SUBSYS_VENDOR_ID, SUBSYS_DEVICE_ID, dev). You can use the constant PCI_ANY_ID as a wildcard replacement for VENDOR_ID or DEVICE_ID. This allows searching for any device from a specific vendor, for example. -Note that these functions are not hotplug-safe. Their hotplug-safe -replacements are pci_get_device(), pci_get_class() and pci_get_subsys(). -They increment the reference count on the pci_dev that they return. -You must eventually (possibly at module unload) decrement the reference -count on these devices by calling pci_dev_put(). + These functions are hotplug-safe. They increment the reference count on +the pci_dev that they return. You must eventually (possibly at module unload) +decrement the reference count on these devices by calling pci_dev_put(). 3. Enabling and disabling devices @@ -275,11 +273,12 @@ pci_present() of PCI subsystem when trying to talk to it. devices just return NULL. pcibios_(read|write)_* Superseded by their pci_(read|write)_* counterparts. -pcibios_find_* Superseded by their pci_find_* counterparts. -pci_for_each_dev() Superseded by pci_find_device() +pcibios_find_* Superseded by their pci_get_* counterparts. +pci_for_each_dev() Superseded by pci_get_device() pci_for_each_dev_reverse() Superseded by pci_find_device_reverse() pci_for_each_bus() Superseded by pci_find_next_bus() pci_find_device() Superseded by pci_get_device() pci_find_subsys() Superseded by pci_get_subsys() -pcibios_find_class() Superseded by pci_find_class() +pcibios_find_class() Superseded by pci_get_class() +pci_find_class() Superseded by pci_get_class() pci_(read|write)_*_nodev() Superseded by pci_bus_(read|write)_*() diff --git a/Documentation/power/pci.txt b/Documentation/power/pci.txt index 972c7c74b..c85428e7a 100644 --- a/Documentation/power/pci.txt +++ b/Documentation/power/pci.txt @@ -5,6 +5,7 @@ PCI Power Management An overview of the concepts and the related functions in the Linux kernel Patrick Mochel +(and others) --------------------------------------------------------------------------- @@ -31,10 +32,15 @@ The PCI PM spec defines 4 operating states for devices (D0 - D3) and for buses the higher the number, the longer the latency is for the device to return to an operational state (D0). +There are actually two D3 states. When someone talks about D3, they usually +mean D3hot, which corresponds to an ACPI D2 state (power is reduced, the +device may lose some context). But they may also mean D3cold, which is an +ACPI D3 state (power is fully off, all state was discarded); or both. + Bus power management is not covered in this version of this document. -Note that all PCI devices support D0 and D3 by default, regardless of whether or -not they implement any of the PCI PM spec. +Note that all PCI devices support D0 and D3cold by default, regardless of +whether or not they implement any of the PCI PM spec. The possible state transitions that a device can undergo are: @@ -204,15 +210,16 @@ if (dev->driver && dev->driver->suspend) dev->driver->suspend(dev,state); A driver uses this function to actually transition the device into a low power -state. This may include disabling I/O, memory and bus-mastering, as well as -physically transitioning the device to a lower power state. +state. This should include disabling I/O, IRQs, and bus-mastering, as well as +physically transitioning the device to a lower power state; it may also include +calls to pci_enable_wake(). Bus mastering may be disabled by doing: pci_disable_device(dev); For devices that support the PCI PM Spec, this may be used to set the device's -power state: +power state to match the suspend() parameter: pci_set_power_state(dev,state); @@ -223,7 +230,7 @@ The driver should be sure to track the current state of the device, as it may obviate the need for some operations. The driver should update the current_state field in its pci_dev structure in -this function. +this function, except for PM-capable devices when pci_set_power_state is used. resume ------ @@ -237,16 +244,28 @@ The resume callback may be called from any power state, and is always meant to transition the device to the D0 state. The driver is responsible for reenabling any features of the device that had -been disabled during previous suspend calls and restoring all state that was -saved in previous save_state calls. +been disabled during previous suspend calls, such as IRQs and bus mastering, +as well as calling pci_restore_state(). + +If the device is currently in D3, it may need to be reinitialized in resume(). + + * Some types of devices, like bus controllers, will preserve context in D3hot + (using Vcc power). Their drivers will often want to avoid re-initializing + them after re-entering D0 (perhaps to avoid resetting downstream devices). + + * Other kinds of devices in D3hot will discard device context as part of a + soft reset when re-entering the D0 state. + + * Devices resuming from D3cold always go through a power-on reset. Some + device context can also be preserved using Vaux power. + + * Some systems hide D3cold resume paths from drivers. For example, on PCs + the resume path for suspend-to-disk often runs BIOS powerup code, which + will sometimes re-initialize the device. -If the device is currently in D3, it must be completely reinitialized, as it -must be assumed that the device has lost all of its context (even that of its -PCI config space). For almost all current drivers, this means that the -initialization code that the driver does at boot must be separated out and -called again from the resume callback. Note that some values for the device may -not have to be probed for this time around if they are saved before entering the -low power state. +To handle resets during D3 to D0 transitions, it may be convenient to share +device initialization code between probe() and resume(). Device parameters +can also be saved before the driver suspends into D3, avoiding re-probe. If the device supports the PCI PM Spec, it can use this to physically transition the device to D0: @@ -263,7 +282,7 @@ The driver should take note of the state that it is resuming from in order to ensure correct (and speedy) operation. The driver should update the current_state field in its pci_dev structure in -this function. +this function, except for PM-capable devices when pci_set_power_state is used. enable_wake diff --git a/Documentation/power/swsusp.txt b/Documentation/power/swsusp.txt index cbbbc9c07..3b7172df0 100644 --- a/Documentation/power/swsusp.txt +++ b/Documentation/power/swsusp.txt @@ -15,10 +15,18 @@ From kernel/suspend.c: * If you change kernel command line between suspend and resume... * ...prepare for nasty fsck or worse. * - * (*) pm interface support is needed to make it safe. + * (*) suspend/resume support is needed to make it safe. You need to append resume=/dev/your_swap_partition to kernel command -line. Then you suspend by echo 4 > /proc/acpi/sleep. +line. Then you suspend by + +echo shutdown > /sys/power/disk; echo disk > /sys/power/state + +. If you feel ACPI works pretty well on your system, you might try + +echo platform > /sys/power/disk; echo disk > /sys/power/state + + Article about goals and implementation of Software Suspend for Linux ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -32,42 +40,24 @@ saves the state of the machine to a filesystem or to a partition and switches to standby mode. Later resuming the machine the saved state is loaded back to ram and the machine can continue its work. It has two real benefits. First we save ourselves the time machine goes down and later boots up, energy costs -real high when running from batteries. The other gain is that we don't have to +are real high when running from batteries. The other gain is that we don't have to interrupt our programs so processes that are calculating something for a long time shouldn't need to be written interruptible. -Using the code - -You have two ways to use this code. The first one is is with a patched -SysVinit (my patch is against 2.76 and available at my home page). You -might call 'swsusp' or 'shutdown -z