maltalinux-cvs-patches
[Top] [All Lists]

CVS Update@linux-mips.org: malta

To: maltalinux-cvs-patches@linux-mips.org
Subject: CVS Update@linux-mips.org: malta
From: beth@linux-mips.org
Date: Tue, 21 Jun 2005 14:42:10 +0100
Reply-to: linux-mips@linux-mips.org
Sender: maltalinux-cvs-patches-bounce@linux-mips.org
CVSROOT:        /home/cvs
Module name:    malta
Changes by:     beth@ftp.linux-mips.org 05/06/21 14:40:13

Modified files:
        linux          : Tag: MaltaRef_2_6 CREDITS MAINTAINERS Makefile 
                         REPORTING-BUGS 
        linux/Documentation: Tag: MaltaRef_2_6 00-INDEX Changes 
                             CodingStyle DMA-API.txt DMA-mapping.txt 
                             IO-mapping.txt IPMI.txt SAK.txt 
                             SubmittingDrivers cachetlb.txt cciss.txt 
                             computone.txt cpqarray.txt devices.txt 
                             digiepca.txt dnotify.txt floppy.txt 
                             ftape.txt hw_random.txt ide.txt 
                             ioctl-number.txt kernel-docs.txt 
                             kernel-parameters.txt laptop-mode.txt 
                             md.txt memory.txt nmi_watchdog.txt 
                             oops-tracing.txt parport.txt pci.txt pm.txt 
                             ramdisk.txt riscom8.txt rocket.txt 
                             sched-domains.txt sonypi.txt spinlocks.txt 
                             stallion.txt sysrq.txt tipar.txt 
                             unicode.txt 
        linux/Documentation/DocBook: Tag: MaltaRef_2_6 Makefile 
                                     deviceiobook.tmpl gadget.tmpl 
                                     journal-api.tmpl kernel-api.tmpl 
                                     kernel-hacking.tmpl 
                                     kernel-locking.tmpl libata.tmpl 
                                     lsm.tmpl mcabook.tmpl 
                                     procfs-guide.tmpl scsidrivers.tmpl 
                                     sis900.tmpl usb.tmpl videobook.tmpl 
                                     wanbook.tmpl 
                                     writing_usb_driver.tmpl 
                                     z8530book.tmpl 
        linux/Documentation/arm: Tag: MaltaRef_2_6 Booting IXP4xx README 
        linux/Documentation/arm/Samsung-S3C24XX: Tag: MaltaRef_2_6 
                                                 EB2410ITX.txt 
                                                 Overview.txt 
        linux/Documentation/arm/Sharp-LH: Tag: MaltaRef_2_6 IOBarrier 
        linux/Documentation/block: Tag: MaltaRef_2_6 as-iosched.txt 
                                   biodoc.txt deadline-iosched.txt 
        linux/Documentation/cdrom: Tag: MaltaRef_2_6 00-INDEX 
                                   cdrom-standard.tex mcdx 
        linux/Documentation/cpu-freq: Tag: MaltaRef_2_6 index.txt 
                                      user-guide.txt 
        linux/Documentation/crypto: Tag: MaltaRef_2_6 api-intro.txt 
        linux/Documentation/driver-model: Tag: MaltaRef_2_6 bus.txt 
                                          driver.txt 
        linux/Documentation/dvb: Tag: MaltaRef_2_6 avermedia.txt 
                                 bt8xx.txt cards.txt contributors.txt 
                                 faq.txt readme.txt ttusb-dec.txt 
        linux/Documentation/early-userspace: Tag: MaltaRef_2_6 README 
        linux/Documentation/fb: Tag: MaltaRef_2_6 matroxfb.txt 
                                vesafb.txt 
        linux/Documentation/filesystems: Tag: MaltaRef_2_6 00-INDEX 
                                         Locking ext2.txt ext3.txt 
                                         jfs.txt ntfs.txt proc.txt 
                                         tmpfs.txt ufs.txt vfs.txt 
        linux/Documentation/filesystems/devfs: Tag: MaltaRef_2_6 
                                               ChangeLog README 
        linux/Documentation/firmware_class: Tag: MaltaRef_2_6 
                                            firmware_sample_firmware_class.c 
                                            hotplug-script 
        linux/Documentation/i2c: Tag: MaltaRef_2_6 dev-interface 
                                 porting-clients sysfs-interface 
                                 writing-clients 
        linux/Documentation/i386: Tag: MaltaRef_2_6 boot.txt 
                                  zero-page.txt 
        linux/Documentation/input: Tag: MaltaRef_2_6 
                                   joystick-parport.txt 
        linux/Documentation/kbuild: Tag: MaltaRef_2_6 
                                    kconfig-language.txt makefiles.txt 
                                    modules.txt 
        linux/Documentation/networking: Tag: MaltaRef_2_6 DLINK.txt 
                                        bonding.txt e100.txt e1000.txt 
                                        ip-sysctl.txt ixgb.txt 
                                        netdevices.txt pktgen.txt 
        linux/Documentation/parisc: Tag: MaltaRef_2_6 00-INDEX registers 
        linux/Documentation/power: Tag: MaltaRef_2_6 devices.txt pci.txt 
                                   swsusp.txt video.txt 
        linux/Documentation/powerpc: Tag: MaltaRef_2_6 00-INDEX hvcs.txt 
                                     mpc52xx.txt 
        linux/Documentation/s390: Tag: MaltaRef_2_6 cds.txt s390dbf.txt 
        linux/Documentation/scsi: Tag: MaltaRef_2_6 ChangeLog.megaraid 
                                  scsi_mid_low_api.txt st.txt 
                                  sym53c8xx_2.txt 
        linux/Documentation/serial: Tag: MaltaRef_2_6 driver 
        linux/Documentation/sound/alsa: Tag: MaltaRef_2_6 
                                        ALSA-Configuration.txt 
                                        Joystick.txt MIXART.txt 
                                        OSS-Emulation.txt 
                                        serial-u16550.txt 
        linux/Documentation/sound/alsa/DocBook: Tag: MaltaRef_2_6 
                                                alsa-driver-api.tmpl 
                                                writing-an-alsa-driver.tmpl 
        linux/Documentation/sound/oss: Tag: MaltaRef_2_6 README.modules 
        linux/Documentation/sysctl: Tag: MaltaRef_2_6 kernel.txt vm.txt 
        linux/Documentation/usb: Tag: MaltaRef_2_6 error-codes.txt 
                                 sn9c102.txt usb-serial.txt w9968cf.txt 
        linux/Documentation/video4linux: Tag: MaltaRef_2_6 
                                         CARDLIST.saa7134 README.cx88 
                                         meye.txt 
        linux/Documentation/video4linux/bttv: Tag: MaltaRef_2_6 Cards 
                                              README 
        linux/Documentation/vm: Tag: MaltaRef_2_6 hugetlbpage.txt numa 
                                overcommit-accounting 
        linux/Documentation/x86_64: Tag: MaltaRef_2_6 boot-options.txt 
                                    mm.txt 
        linux/arch/alpha: Tag: MaltaRef_2_6 Kconfig Makefile defconfig 
        linux/arch/alpha/boot: Tag: MaltaRef_2_6 bootloader.lds bootp.c 
                               bootpz.c head.S misc.c 
        linux/arch/alpha/kernel: Tag: MaltaRef_2_6 Makefile 
                                 alpha_ksyms.c console.c core_cia.c 
                                 core_irongate.c core_marvel.c 
                                 core_titan.c err_titan.c irq.c 
                                 irq_i8259.c irq_impl.h irq_srm.c 
                                 machvec_impl.h osf_sys.c pci-noop.c 
                                 pci.c pci_impl.h pci_iommu.c process.c 
                                 proto.h ptrace.c setup.c signal.c 
                                 smc37c669.c smp.c srmcons.c sys_alcor.c 
                                 sys_cabriolet.c sys_dp264.c sys_eb64p.c 
                                 sys_eiger.c sys_jensen.c sys_marvel.c 
                                 sys_miata.c sys_mikasa.c sys_nautilus.c 
                                 sys_noritake.c sys_rawhide.c 
                                 sys_ruffian.c sys_rx164.c sys_sable.c 
                                 sys_sio.c sys_sx164.c sys_takara.c 
                                 sys_titan.c sys_wildfire.c systbls.S 
                                 time.c traps.c vmlinux.lds.S 
        linux/arch/alpha/lib: Tag: MaltaRef_2_6 Makefile 
                              csum_partial_copy.c dec_and_lock.c 
                              memmove.S 
        linux/arch/alpha/mm: Tag: MaltaRef_2_6 fault.c init.c numa.c 
        linux/arch/alpha/oprofile: Tag: MaltaRef_2_6 common.c 
                                   op_model_ev4.c op_model_ev5.c 
                                   op_model_ev6.c op_model_ev67.c 
        linux/arch/arm : Tag: MaltaRef_2_6 Kconfig Kconfig.debug 
                         Makefile 
        linux/arch/arm/boot: Tag: MaltaRef_2_6 Makefile 
        linux/arch/arm/boot/compressed: Tag: MaltaRef_2_6 Makefile 
                                        head-sa1100.S head-xscale.S 
                                        head.S misc.c ofw-shark.c 
        linux/arch/arm/common: Tag: MaltaRef_2_6 Makefile amba.c 
                               dmabounce.c locomo.c sa1111.c 
                               time-acorn.c via82c505.c 
        linux/arch/arm/configs: Tag: MaltaRef_2_6 assabet_defconfig 
                                badge4_defconfig bast_defconfig 
                                cerfcube_defconfig clps7500_defconfig 
                                ebsa110_defconfig edb7211_defconfig 
                                epxa10db_defconfig footbridge_defconfig 
                                fortunet_defconfig h3600_defconfig 
                                hackkit_defconfig integrator_defconfig 
                                iq80321_defconfig ixp4xx_defconfig 
                                jornada720_defconfig lart_defconfig 
                                lpd7a400_defconfig lpd7a404_defconfig 
                                lubbock_defconfig lusl7200_defconfig 
                                mainstone_defconfig mx1ads_defconfig 
                                neponset_defconfig netwinder_defconfig 
                                omnimeter_defconfig pleb_defconfig 
                                rpc_defconfig s3c2410_defconfig 
                                shannon_defconfig shark_defconfig 
                                smdk2410_defconfig versatile_defconfig 
        linux/arch/arm/kernel: Tag: MaltaRef_2_6 Makefile apm.c 
                               armksyms.c asm-offsets.c bios32.c calls.S 
                               debug.S dma.c ecard.c entry-armv.S 
                               entry-common.S entry-header.S fiq.c 
                               head.S io.c irq.c module.c process.c 
                               ptrace.c semaphore.c setup.c signal.c 
                               sys_arm.c time.c traps.c vmlinux.lds.S 
        linux/arch/arm/lib: Tag: MaltaRef_2_6 Makefile changebit.S 
                            clearbit.S csumpartial.S 
                            csumpartialcopygeneric.S delay.S getuser.S 
                            io-readsw-armv4.S io-writesl.S 
                            io-writesw-armv4.S longlong.h putuser.S 
                            setbit.S testchangebit.S testclearbit.S 
                            testsetbit.S 
        linux/arch/arm/mach-clps711x: Tag: MaltaRef_2_6 Kconfig 
                                      autcpu12.c cdb89712.c ceiva.c 
                                      clep7312.c edb7211-arch.c 
                                      fortunet.c p720t.c time.c 
        linux/arch/arm/mach-clps7500: Tag: MaltaRef_2_6 core.c 
        linux/arch/arm/mach-ebsa110: Tag: MaltaRef_2_6 core.c io.c 
        linux/arch/arm/mach-epxa10db: Tag: MaltaRef_2_6 arch.c time.c 
        linux/arch/arm/mach-footbridge: Tag: MaltaRef_2_6 Kconfig 
                                        Makefile cats-hw.c 
                                        ebsa285-leds.c netwinder-hw.c 
                                        netwinder-leds.c time.c 
        linux/arch/arm/mach-imx: Tag: MaltaRef_2_6 Kconfig dma.c 
                                 generic.c generic.h mx1ads.c time.c 
        linux/arch/arm/mach-integrator: Tag: MaltaRef_2_6 clock.c core.c 
                                        impd1.c integrator_ap.c 
                                        integrator_cp.c leds.c pci_v3.c 
                                        time.c 
        linux/arch/arm/mach-iop3xx: Tag: MaltaRef_2_6 Kconfig Makefile 
                                    iop321-irq.c iop321-pci.c 
                                    iop321-time.c iq80321-pci.c 
        linux/arch/arm/mach-ixp4xx: Tag: MaltaRef_2_6 Kconfig Makefile 
                                    common-pci.c common.c coyote-pci.c 
                                    coyote-setup.c ixdp425-pci.c 
                                    ixdp425-setup.c 
        linux/arch/arm/mach-lh7a40x: Tag: MaltaRef_2_6 arch-kev7a400.c 
                                     arch-lpd7a40x.c irq-lpd7a40x.c 
                                     time.c 
        linux/arch/arm/mach-omap: Tag: MaltaRef_2_6 Kconfig Makefile 
                                  board-generic.c board-h2.c board-h3.c 
                                  board-innovator.c board-osk.c 
                                  board-perseus2.c common.c common.h 
                                  dma.c fpga.c gpio.c irq.c 
                                  leds-h2p2-debug.c leds.c leds.h 
                                  mcbsp.c mux.c ocpi.c time.c usb.c 
        linux/arch/arm/mach-pxa: Tag: MaltaRef_2_6 Kconfig Makefile 
                                 dma.c generic.c generic.h idp.c irq.c 
                                 leds-idp.c leds-lubbock.c 
                                 leds-mainstone.c lubbock.c mainstone.c 
                                 pm.c pxa25x.c pxa27x.c sleep.S time.c 
        linux/arch/arm/mach-rpc: Tag: MaltaRef_2_6 dma.c riscpc.c 
        linux/arch/arm/mach-s3c2410: Tag: MaltaRef_2_6 Kconfig Makefile 
                                     clock.c clock.h devs.c devs.h dma.c 
                                     gpio.c irq.c mach-bast.c 
                                     mach-h1940.c mach-smdk2410.c 
                                     mach-vr1000.c s3c2410.c s3c2410.h 
                                     time.c 
        linux/arch/arm/mach-sa1100: Tag: MaltaRef_2_6 Kconfig Makefile 
                                    assabet.c badge4.c cerf.c collie.c 
                                    cpu-sa1100.c cpu-sa1110.c generic.c 
                                    generic.h h3600.c hackkit.c irq.c 
                                    jornada720.c lart.c leds-simpad.c 
                                    neponset.c pleb.c pm.c shannon.c 
                                    simpad.c sleep.S time.c 
        linux/arch/arm/mach-shark: Tag: MaltaRef_2_6 core.c irq.c leds.c 
                                   pci.c 
        linux/arch/arm/mach-versatile: Tag: MaltaRef_2_6 Makefile 
                                       clock.c clock.h core.c 
        linux/arch/arm/mm: Tag: MaltaRef_2_6 Kconfig Makefile 
                           abort-ev4t.S abort-ev5t.S abort-ev5tj.S 
                           abort-ev6.S alignment.c cache-v3.S cache-v4.S 
                           cache-v4wb.S cache-v4wt.S cache-v6.S 
                           consistent.c copypage-v6.c fault-armv.c 
                           fault.c init.c ioremap.c mm-armv.c 
                           proc-arm1020.S proc-arm1020e.S proc-arm1022.S 
                           proc-arm1026.S proc-arm6_7.S proc-arm720.S 
                           proc-arm920.S proc-arm922.S proc-arm925.S 
                           proc-arm926.S proc-sa110.S proc-sa1100.S 
                           proc-syms.c proc-v6.S proc-xscale.S tlb-v4.S 
                           tlb-v4wb.S 
        linux/arch/arm/nwfpe: Tag: MaltaRef_2_6 double_cpdo.c 
                              fpa11_cpdt.c 
        linux/arch/arm/oprofile: Tag: MaltaRef_2_6 common.c init.c 
                                 op_arm_model.h op_model_xscale.c 
        linux/arch/arm/tools: Tag: MaltaRef_2_6 mach-types 
        linux/arch/arm/vfp: Tag: MaltaRef_2_6 entry.S vfp.h vfpdouble.c 
                            vfphw.S vfpsingle.c 
        linux/arch/arm26: Tag: MaltaRef_2_6 ACKNOWLEDGEMENTS Kconfig 
                          Kconfig.debug Makefile 
        linux/arch/arm26/boot: Tag: MaltaRef_2_6 Makefile install.sh 
        linux/arch/arm26/boot/compressed: Tag: MaltaRef_2_6 head.S 
                                          ll_char_wr.S uncompress.h 
                                          vmlinux.lds.in 
        linux/arch/arm26/kernel: Tag: MaltaRef_2_6 Makefile armksyms.c 
                                 asm-offsets.c compat.c dma.c ecard.c 
                                 entry.S init_task.c irq.c process.c 
                                 ptrace.c semaphore.c setup.c signal.c 
                                 sys_arm.c time.c traps.c 
                                 vmlinux-arm26-xip.lds.in 
                                 vmlinux-arm26.lds.in 
        linux/arch/arm26/lib: Tag: MaltaRef_2_6 Makefile backtrace.S 
                              changebit.S clearbit.S copy_page.S 
                              csumipv6.S csumpartial.S csumpartialcopy.S 
                              csumpartialcopygeneric.S delay.S ecard.S 
                              floppydma.S getuser.S io-acorn.S 
                              io-readsb.S io-writesb.S io-writesl.S 
                              memchr.S memcpy.S memset.S memzero.S 
                              putuser.S setbit.S strchr.S strrchr.S 
                              testchangebit.S testclearbit.S 
                              testsetbit.S 
        linux/arch/arm26/machine: Tag: MaltaRef_2_6 Makefile dma.c irq.c 
        linux/arch/arm26/mm: Tag: MaltaRef_2_6 Makefile extable.c 
                             fault.c init.c proc-funcs.S 
        linux/arch/cris: Tag: MaltaRef_2_6 Kconfig Kconfig.debug 
                         Makefile 
        linux/arch/cris/arch-v10: Tag: MaltaRef_2_6 vmlinux.lds.S 
        linux/arch/cris/arch-v10/drivers: Tag: MaltaRef_2_6 Kconfig 
                                          Makefile axisflashmap.c 
                                          ds1302.c eeprom.c gpio.c i2c.c 
                                          pcf8563.c 
        linux/arch/cris/arch-v10/kernel: Tag: MaltaRef_2_6 Makefile 
                                         debugport.c entry.S fasttimer.c 
                                         irq.c kgdb.c process.c ptrace.c 
                                         signal.c time.c 
        linux/arch/cris/arch-v10/mm: Tag: MaltaRef_2_6 fault.c init.c 
                                     tlb.c 
        linux/arch/cris/kernel: Tag: MaltaRef_2_6 crisksyms.c irq.c 
                                setup.c 
        linux/arch/h8300: Tag: MaltaRef_2_6 Kconfig Makefile defconfig 
        linux/arch/h8300/kernel: Tag: MaltaRef_2_6 asm-offsets.c 
                                 h8300_ksyms.c ints.c process.c ptrace.c 
                                 setup.c signal.c syscalls.S time.c 
                                 vmlinux.lds.S 
        linux/arch/h8300/lib: Tag: MaltaRef_2_6 checksum.c 
        linux/arch/h8300/platform/h8300h: Tag: MaltaRef_2_6 entry.S 
        linux/arch/h8300/platform/h8300h/generic: Tag: MaltaRef_2_6 
                                                  timer.c 
        linux/arch/h8300/platform/h8s: Tag: MaltaRef_2_6 entry.S ints.c 
        linux/arch/h8300/platform/h8s/edosk2674: Tag: MaltaRef_2_6 
                                                 crt0_rom.S 
        linux/arch/i386: Tag: MaltaRef_2_6 Kconfig Kconfig.debug 
                         Makefile defconfig 
        linux/arch/i386/boot: Tag: MaltaRef_2_6 bootsect.S edd.S setup.S 
                              video.S 
        linux/arch/i386/boot/compressed: Tag: MaltaRef_2_6 misc.c 
        linux/arch/i386/crypto: Tag: MaltaRef_2_6 aes-i586-asm.S aes.c 
        linux/arch/i386/kernel: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                apic.c apm.c asm-offsets.c cpuid.c 
                                dmi_scan.c doublefault.c efi.c entry.S 
                                head.S i386_ksyms.c i387.c i8259.c 
                                io_apic.c ioport.c irq.c ldt.c mca.c 
                                microcode.c mpparse.c msr.c nmi.c 
                                numaq.c pci-dma.c process.c ptrace.c 
                                reboot.c scx200.c semaphore.c setup.c 
                                signal.c smp.c smpboot.c srat.c 
                                sysenter.c time.c time_hpet.c 
                                trampoline.S traps.c vm86.c 
                                vmlinux.lds.S vsyscall-sysenter.S 
                                vsyscall.lds 
        linux/arch/i386/kernel/acpi: Tag: MaltaRef_2_6 Makefile boot.c 
                                     sleep.c wakeup.S 
        linux/arch/i386/kernel/cpu: Tag: MaltaRef_2_6 Makefile amd.c 
                                    centaur.c common.c cpu.h cyrix.c 
                                    intel.c nexgen.c proc.c transmeta.c 
        linux/arch/i386/kernel/cpu/cpufreq: Tag: MaltaRef_2_6 Kconfig 
                                            Makefile gx-suspmod.c 
                                            longhaul.c longrun.c 
                                            p4-clockmod.c powernow-k7.c 
                                            powernow-k8.c powernow-k8.h 
                                            speedstep-centrino.c 
                                            speedstep-ich.c 
                                            speedstep-lib.c 
                                            speedstep-smi.c 
        linux/arch/i386/kernel/cpu/mcheck: Tag: MaltaRef_2_6 k7.c mce.c 
                                           mce.h non-fatal.c p4.c p5.c 
                                           p6.c winchip.c 
        linux/arch/i386/kernel/cpu/mtrr: Tag: MaltaRef_2_6 centaur.c 
                                         cyrix.c generic.c if.c main.c 
                                         mtrr.h state.c 
        linux/arch/i386/kernel/timers: Tag: MaltaRef_2_6 common.c 
                                       timer.c timer_cyclone.c 
                                       timer_hpet.c timer_none.c 
                                       timer_pit.c timer_pm.c 
                                       timer_tsc.c 
        linux/arch/i386/lib: Tag: MaltaRef_2_6 .cvsignore Makefile 
                             dec_and_lock.c delay.c memcpy.c mmx.c 
                             usercopy.c 
        linux/arch/i386/mach-default: Tag: MaltaRef_2_6 topology.c 
        linux/arch/i386/mach-es7000: Tag: MaltaRef_2_6 es7000.h 
                                     es7000plat.c 
        linux/arch/i386/mach-generic: Tag: MaltaRef_2_6 bigsmp.c 
        linux/arch/i386/mach-visws: Tag: MaltaRef_2_6 mpparse.c reboot.c 
                                    visws_apic.c 
        linux/arch/i386/mach-voyager: Tag: MaltaRef_2_6 voyager_basic.c 
                                      voyager_smp.c voyager_thread.c 
        linux/arch/i386/math-emu: Tag: MaltaRef_2_6 errors.c fpu_aux.c 
                                  fpu_entry.c fpu_proto.h fpu_system.h 
                                  get_address.c load_store.c 
                                  reg_constant.c reg_constant.h 
                                  reg_ld_str.c 
        linux/arch/i386/mm: Tag: MaltaRef_2_6 .cvsignore Makefile 
                            boot_ioremap.c discontig.c fault.c highmem.c 
                            hugetlbpage.c init.c ioremap.c pageattr.c 
                            pgtable.c 
        linux/arch/i386/oprofile: Tag: MaltaRef_2_6 Makefile init.c 
                                  nmi_int.c nmi_timer_int.c 
                                  op_model_athlon.c op_model_p4.c 
                                  op_model_ppro.c op_x86_model.h 
        linux/arch/i386/pci: Tag: MaltaRef_2_6 acpi.c common.c direct.c 
                             fixup.c i386.c irq.c mmconfig.c numa.c 
                             pcbios.c pci.h 
        linux/arch/i386/power: Tag: MaltaRef_2_6 Makefile cpu.c swsusp.S 
        linux/arch/ia64: Tag: MaltaRef_2_6 Kconfig Kconfig.debug 
                         Makefile defconfig 
        linux/arch/ia64/configs: Tag: MaltaRef_2_6 sn2_defconfig 
                                 zx1_defconfig 
        linux/arch/ia64/dig: Tag: MaltaRef_2_6 Makefile 
        linux/arch/ia64/hp/common: Tag: MaltaRef_2_6 Makefile 
                                   sba_iommu.c 
        linux/arch/ia64/hp/sim: Tag: MaltaRef_2_6 simeth.c simserial.c 
        linux/arch/ia64/hp/zx1: Tag: MaltaRef_2_6 Makefile 
        linux/arch/ia64/ia32: Tag: MaltaRef_2_6 binfmt_elf32.c 
                              elfcore32.h ia32_entry.S ia32_ioctl.c 
                              ia32_ldt.c ia32_signal.c ia32_support.c 
                              ia32priv.h sys_ia32.c 
        linux/arch/ia64/kernel: Tag: MaltaRef_2_6 Makefile acpi-ext.c 
                                acpi.c asm-offsets.c cyclone.c efi.c 
                                entry.S entry.h fsys.S gate.S head.S 
                                ia64_ksyms.c iosapic.c irq.c irq_ia64.c 
                                ivt.S mca.c mca_asm.S minstate.h 
                                module.c palinfo.c patch.c perfmon.c 
                                perfmon_default_smpl.c process.c 
                                ptrace.c sal.c salinfo.c setup.c 
                                sigframe.h signal.c smp.c smpboot.c 
                                sys_ia64.c time.c traps.c unaligned.c 
                                unwind.c vmlinux.lds.S 
        linux/arch/ia64/lib: Tag: MaltaRef_2_6 bitop.c 
                             csum_partial_copy.c dec_and_lock.c flush.S 
                             io.c memcpy.S memcpy_mck.S memset.S 
                             swiotlb.c 
        linux/arch/ia64/mm: Tag: MaltaRef_2_6 contig.c discontig.c 
                            extable.c fault.c hugetlbpage.c init.c 
                            numa.c tlb.c 
        linux/arch/ia64/oprofile: Tag: MaltaRef_2_6 Kconfig Makefile 
                                  init.c 
        linux/arch/ia64/pci: Tag: MaltaRef_2_6 pci.c 
        linux/arch/ia64/sn: Tag: MaltaRef_2_6 Makefile 
        linux/arch/ia64/sn/kernel: Tag: MaltaRef_2_6 Makefile bte.c 
                                   idle.c irq.c mca.c setup.c 
        linux/arch/ia64/sn/kernel/sn2: Tag: MaltaRef_2_6 Makefile io.c 
                                       prominfo_proc.c ptc_deadlock.S 
                                       sn2_smp.c sn_proc_fs.c timer.c 
                                       timer_interrupt.c 
        linux/arch/m68k: Tag: MaltaRef_2_6 Kconfig Makefile defconfig 
        linux/arch/m68k/atari: Tag: MaltaRef_2_6 hades-pci.c stdma.c 
                               stram.c 
        linux/arch/m68k/hp300: Tag: MaltaRef_2_6 config.c ints.c 
                               reboot.S time.c 
        linux/arch/m68k/kernel: Tag: MaltaRef_2_6 bios32.c entry.S 
                                head.S m68k_ksyms.c process.c ptrace.c 
                                setup.c signal.c time.c vmlinux-std.lds 
                                vmlinux-sun3.lds vmlinux.lds.S 
        linux/arch/m68k/lib: Tag: MaltaRef_2_6 checksum.c 
        linux/arch/m68k/mm: Tag: MaltaRef_2_6 memory.c motorola.c 
                            sun3mmu.c 
        linux/arch/m68k/q40: Tag: MaltaRef_2_6 config.c q40ints.c 
        linux/arch/m68k/sun3: Tag: MaltaRef_2_6 Makefile mmu_emu.c 
                              sun3dvma.c sun3ints.c 
        linux/arch/m68k/sun3x: Tag: MaltaRef_2_6 config.c 
        linux/arch/m68knommu: Tag: MaltaRef_2_6 Kconfig Makefile 
                              defconfig 
        linux/arch/m68knommu/kernel: Tag: MaltaRef_2_6 asm-offsets.c 
                                     entry.S m68k_ksyms.c module.c 
                                     process.c ptrace.c setup.c signal.c 
                                     syscalltable.S time.c vmlinux.lds.S 
        linux/arch/m68knommu/lib: Tag: MaltaRef_2_6 Makefile checksum.c 
        linux/arch/m68knommu/mm: Tag: MaltaRef_2_6 init.c memory.c 
        linux/arch/m68knommu/platform/5206: Tag: MaltaRef_2_6 Makefile 
        linux/arch/m68knommu/platform/5206e: Tag: MaltaRef_2_6 Makefile 
                                             config.c 
        linux/arch/m68knommu/platform/5249: Tag: MaltaRef_2_6 Makefile 
                                            config.c 
        linux/arch/m68knommu/platform/5272: Tag: MaltaRef_2_6 Makefile 
                                            config.c 
        linux/arch/m68knommu/platform/5307: Tag: MaltaRef_2_6 Makefile 
                                            config.c entry.S timers.c 
                                            vectors.c 
        linux/arch/m68knommu/platform/5407: Tag: MaltaRef_2_6 Makefile 
                                            config.c 
        linux/arch/m68knommu/platform/68328: Tag: MaltaRef_2_6 Makefile 
        linux/arch/m68knommu/platform/68360: Tag: MaltaRef_2_6 Makefile 
        linux/arch/m68knommu/platform/68EZ328: Tag: MaltaRef_2_6 
                                               Makefile 
        linux/arch/m68knommu/platform/68VZ328: Tag: MaltaRef_2_6 
                                               Makefile 
        linux/arch/mips: Tag: MaltaRef_2_6 Kconfig Makefile defconfig 
        linux/arch/mips/arc: Tag: MaltaRef_2_6 .cvsignore Makefile 
                             misc.c 
        linux/arch/mips/au1000/common: Tag: MaltaRef_2_6 .cvsignore 
                                       Makefile au1xxx_irqmap.c 
                                       cputable.c dbdma.c dma.c irq.c 
                                       pci.c power.c puts.c reset.c 
                                       setup.c sleeper.S time.c usbdev.c 
        linux/arch/mips/au1000/csb250: Tag: MaltaRef_2_6 board_setup.c 
                                       init.c irqmap.c 
        linux/arch/mips/au1000/db1x00: Tag: MaltaRef_2_6 board_setup.c 
                                       irqmap.c mirage_ts.c 
        linux/arch/mips/au1000/hydrogen3: Tag: MaltaRef_2_6 
                                          board_setup.c init.c irqmap.c 
        linux/arch/mips/au1000/mtx-1: Tag: MaltaRef_2_6 board_setup.c 
                                      init.c irqmap.c 
        linux/arch/mips/au1000/pb1000: Tag: MaltaRef_2_6 .cvsignore 
                                       board_setup.c irqmap.c 
        linux/arch/mips/au1000/pb1100: Tag: MaltaRef_2_6 board_setup.c 
                                       irqmap.c 
        linux/arch/mips/au1000/pb1500: Tag: MaltaRef_2_6 board_setup.c 
                                       irqmap.c 
        linux/arch/mips/au1000/pb1550: Tag: MaltaRef_2_6 board_setup.c 
                                       irqmap.c 
        linux/arch/mips/au1000/xxs1500: Tag: MaltaRef_2_6 board_setup.c 
                                        irqmap.c 
        linux/arch/mips/boot: Tag: MaltaRef_2_6 .cvsignore Makefile 
        linux/arch/mips/cobalt: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                int-handler.S irq.c reset.c setup.c 
        linux/arch/mips/configs: Tag: MaltaRef_2_6 atlas_defconfig 
                                 capcella_defconfig cobalt_defconfig 
                                 db1000_defconfig db1100_defconfig 
                                 db1500_defconfig ddb5476_defconfig 
                                 ddb5477_defconfig decstation_defconfig 
                                 e55_defconfig ev64120_defconfig 
                                 ev96100_defconfig ip22_defconfig 
                                 ip27_defconfig ip32_defconfig 
                                 it8172_defconfig ivr_defconfig 
                                 jaguar-atx_defconfig jmr3927_defconfig 
                                 lasat200_defconfig malta_defconfig 
                                 mpc30x_defconfig ocelot_c_defconfig 
                                 ocelot_defconfig ocelot_g_defconfig 
                                 pb1100_defconfig pb1500_defconfig 
                                 pb1550_defconfig rm200_defconfig 
                                 sb1250-swarm_defconfig sead_defconfig 
                                 tb0226_defconfig tb0229_defconfig 
                                 workpad_defconfig yosemite_defconfig 
        linux/arch/mips/ddb5xxx/common: Tag: MaltaRef_2_6 .cvsignore 
        linux/arch/mips/ddb5xxx/ddb5074: Tag: MaltaRef_2_6 irq.c 
                                         nile4_pic.c setup.c 
        linux/arch/mips/ddb5xxx/ddb5476: Tag: MaltaRef_2_6 .cvsignore 
                                         setup.c vrc5476_irq.c 
        linux/arch/mips/ddb5xxx/ddb5477: Tag: MaltaRef_2_6 .cvsignore 
                                         irq_5477.c setup.c 
        linux/arch/mips/dec: Tag: MaltaRef_2_6 .cvsignore ioasic-irq.c 
                             kn02-irq.c setup.c 
        linux/arch/mips/dec/boot: Tag: MaltaRef_2_6 .cvsignore 
                                  decstation.c 
        linux/arch/mips/dec/prom: Tag: MaltaRef_2_6 .cvsignore 
        linux/arch/mips/galileo-boards/ev96100: Tag: MaltaRef_2_6 time.c 
        linux/arch/mips/gt64120/common: Tag: MaltaRef_2_6 .cvsignore 
                                        time.c 
        linux/arch/mips/gt64120/ev64120: Tag: MaltaRef_2_6 .cvsignore 
                                         irq.c 
        linux/arch/mips/gt64120/momenco_ocelot: Tag: MaltaRef_2_6 
                                                .cvsignore irq.c setup.c 
        linux/arch/mips/ite-boards/generic: Tag: MaltaRef_2_6 .cvsignore 
                                            irq.c 
        linux/arch/mips/ite-boards/qed-4n-s01b: Tag: MaltaRef_2_6 
                                                .cvsignore 
        linux/arch/mips/jazz: Tag: MaltaRef_2_6 .cvsignore irq.c 
                              jazzdma.c 
        linux/arch/mips/jmr3927/rbhma3100: Tag: MaltaRef_2_6 irq.c 
                                           setup.c 
        linux/arch/mips/kernel: Tag: MaltaRef_2_6 Makefile 
                                binfmt_elfn32.c binfmt_elfo32.c branch.c 
                                cpu-bugs64.c cpu-probe.c entry.S 
                                gdb-stub.c genex.S genrtc.c head.S 
                                i8259.c ioctl32.c irixelf.c irixinv.c 
                                irixioctl.c irixsig.c irq-msc01.c 
                                irq-mv6434x.c irq-rm7000.c irq.c 
                                irq_cpu.c linux32.c mips_ksyms.c 
                                module.c offset.c proc.c process.c 
                                ptrace.c ptrace32.c r4k_fpu.S 
                                r4k_switch.S rtlx.c scall32-o32.S 
                                scall64-64.S scall64-n32.S scall64-o32.S 
                                semaphore.c setup.c signal.c signal32.c 
                                signal_n32.c smp.c syscall.c sysirix.c 
                                time.c traps.c unaligned.c vmlinux.lds.S 
                                vpe.c 
        linux/arch/mips/lasat: Tag: MaltaRef_2_6 .cvsignore interrupt.c 
        linux/arch/mips/lib: Tag: MaltaRef_2_6 .cvsignore Makefile 
                             csum_partial_copy.c dec_and_lock.c 
                             strlen_user.S strnlen_user.S 
        linux/arch/mips/lib-32: Tag: MaltaRef_2_6 .cvsignore dump_tlb.c 
                                r3k_dump_tlb.c 
        linux/arch/mips/lib-64: Tag: MaltaRef_2_6 .cvsignore dump_tlb.c 
        linux/arch/mips/math-emu: Tag: MaltaRef_2_6 .cvsignore cp1emu.c 
                                  dp_add.c dp_cmp.c dp_div.c dp_fint.c 
                                  dp_flong.c dp_frexp.c dp_fsp.c 
                                  dp_logb.c dp_modf.c dp_mul.c 
                                  dp_scalb.c dp_simple.c dp_sqrt.c 
                                  dp_sub.c dp_tint.c dp_tlong.c dsemul.c 
                                  dsemul.h ieee754.c ieee754.h 
                                  ieee754d.c ieee754dp.c ieee754dp.h 
                                  ieee754int.h ieee754m.c ieee754sp.c 
                                  ieee754sp.h ieee754xcpt.c 
                                  kernel_linkage.c sp_add.c sp_cmp.c 
                                  sp_div.c sp_fdp.c sp_fint.c sp_flong.c 
                                  sp_frexp.c sp_logb.c sp_modf.c 
                                  sp_mul.c sp_scalb.c sp_simple.c 
                                  sp_sqrt.c sp_sub.c sp_tint.c 
                                  sp_tlong.c 
        linux/arch/mips/mips-boards/atlas: Tag: MaltaRef_2_6 .cvsignore 
                                           atlas_int.c 
        linux/arch/mips/mips-boards/generic: Tag: MaltaRef_2_6 
                                             .cvsignore gdb_hook.c 
                                             init.c memory.c pci.c 
                                             time.c 
        linux/arch/mips/mips-boards/malta: Tag: MaltaRef_2_6 .cvsignore 
                                           malta_int.c malta_setup.c 
        linux/arch/mips/mips-boards/sead: Tag: MaltaRef_2_6 .cvsignore 
                                          sead_int.c 
        linux/arch/mips/mm: Tag: MaltaRef_2_6 .cvsignore Makefile 
                            c-r3k.c c-r4k.c c-sb1.c c-tx39.c cache.c 
                            cerr-sb1.c cex-sb1.S dma-coherent.c 
                            dma-ip27.c dma-noncoherent.c fault.c 
                            highmem.c init.c ioremap.c pg-r4k.c pg-sb1.c 
                            pgtable-32.c pgtable-64.c pgtable.c 
                            sc-rm7k.c tlb-andes.c tlb-r3k.c tlb-r4k.c 
                            tlb-r8k.c tlb-sb1.c 
        linux/arch/mips/momentum/jaguar_atx: Tag: MaltaRef_2_6 
                                             .cvsignore 
        linux/arch/mips/momentum/ocelot_c: Tag: MaltaRef_2_6 .cvsignore 
                                           cpci-irq.c irq.c uart-irq.c 
        linux/arch/mips/momentum/ocelot_g: Tag: MaltaRef_2_6 gt-irq.c 
                                           irq.c 
        linux/arch/mips/pci: Tag: MaltaRef_2_6 Makefile fixup-atlas.c 
                             fixup-au1000.c fixup-capcella.c 
                             fixup-cobalt.c fixup-ev96100.c fixup-ip32.c 
                             fixup-ite8172g.c fixup-ivr.c fixup-jaguar.c 
                             fixup-jmr3927.c fixup-malta.c 
                             fixup-mpc30x.c fixup-ocelot-c.c 
                             fixup-ocelot-g.c fixup-rbtx4927.c 
                             fixup-sni.c fixup-tb0219.c fixup-tb0226.c 
                             fixup-yosemite.c ops-au1000.c 
                             ops-bonito64.c ops-gt64111.c ops-gt64120.c 
                             ops-msc.c ops-sni.c ops-titan.c 
                             ops-tx4927.c ops-vr41xx.c pci-ddb5074.c 
                             pci-ddb5476.c pci-ddb5477.c pci-ip27.c 
                             pci-ip32.c pci-lasat.c pci-sb1250.c 
                             pci-vr41xx.c pci-vr41xx.h pci-yosemite.c 
                             pci.c 
        linux/arch/mips/pmc-sierra/yosemite: Tag: MaltaRef_2_6 
                                             .cvsignore Makefile 
                                             atmel_read_eeprom.h 
                                             dbg_io.c ht-irq.c ht.c 
                                             irq-handler.S irq.c prom.c 
                                             py-console.c setup.c 
                                             setup.h smp.c 
        linux/arch/mips/sgi-ip22: Tag: MaltaRef_2_6 .cvsignore 
                                  ip22-berr.c ip22-nvram.c ip22-setup.c 
        linux/arch/mips/sgi-ip27: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                  ip27-hubio.c ip27-init.c 
                                  ip27-irq-glue.S ip27-irq.c 
                                  ip27-klnuma.c ip27-memory.c ip27-nmi.c 
                                  ip27-reset.c ip27-smp.c ip27-timer.c 
        linux/arch/mips/sgi-ip32: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                  crime.c ip32-irq.c ip32-reset.c 
                                  ip32-setup.c 
        linux/arch/mips/sibyte: Tag: MaltaRef_2_6 .cvsignore 
        linux/arch/mips/sibyte/cfe: Tag: MaltaRef_2_6 .cvsignore setup.c 
                                    smp.c 
        linux/arch/mips/sibyte/sb1250: Tag: MaltaRef_2_6 .cvsignore 
                                       bcm1250_tbprof.c bus_watcher.c 
                                       irq.c irq_handler.S prom.c smp.c 
                                       time.c 
        linux/arch/mips/sibyte/swarm: Tag: MaltaRef_2_6 .cvsignore 
                                      rtc_m41t81.c rtc_xicor1241.c 
                                      setup.c time.c 
        linux/arch/mips/sni: Tag: MaltaRef_2_6 .cvsignore irq.c 
        linux/arch/mips/tx4927/common: Tag: MaltaRef_2_6 Makefile 
                                       tx4927_irq.c tx4927_setup.c 
        linux/arch/mips/tx4927/toshiba_rbtx4927: Tag: MaltaRef_2_6 
                                                 toshiba_rbtx4927_irq.c 
                                                 toshiba_rbtx4927_prom.c 
                                                 toshiba_rbtx4927_setup.c 
        linux/arch/mips/vr41xx/casio-e55: Tag: MaltaRef_2_6 .cvsignore 
                                          setup.c 
        linux/arch/mips/vr41xx/common: Tag: MaltaRef_2_6 .cvsignore 
                                       Makefile bcu.c cmu.c giu.c icu.c 
                                       init.c int-handler.S ksyms.c 
                                       pmu.c vrc4173.c 
        linux/arch/mips/vr41xx/ibm-workpad: Tag: MaltaRef_2_6 .cvsignore 
                                            setup.c 
        linux/arch/mips/vr41xx/nec-eagle: Tag: MaltaRef_2_6 .cvsignore 
        linux/arch/mips/vr41xx/tanbac-tb0226: Tag: MaltaRef_2_6 setup.c 
        linux/arch/mips/vr41xx/tanbac-tb0229: Tag: MaltaRef_2_6 
                                              .cvsignore Makefile 
                                              setup.c 
        linux/arch/mips/vr41xx/victor-mpc30x: Tag: MaltaRef_2_6 
                                              .cvsignore setup.c 
        linux/arch/mips/vr41xx/zao-capcella: Tag: MaltaRef_2_6 
                                             .cvsignore setup.c 
        linux/arch/parisc: Tag: MaltaRef_2_6 Kconfig Makefile 
        linux/arch/parisc/configs: Tag: MaltaRef_2_6 712_defconfig 
                                   a500_defconfig b180_defconfig 
                                   c3000_defconfig 
        linux/arch/parisc/hpux: Tag: MaltaRef_2_6 entry_hpux.S fs.c 
                                sys_hpux.c 
        linux/arch/parisc/kernel: Tag: MaltaRef_2_6 Makefile 
                                  asm-offsets.c binfmt_elf32.c cache.c 
                                  drivers.c entry.S firmware.c 
                                  hardware.c head.S hpmc.S init_task.c 
                                  inventory.c ioctl32.c irq.c module.c 
                                  pacache.S parisc_ksyms.c pci-dma.c 
                                  pdc_chassis.c pdc_cons.c perf.c 
                                  perf_asm.S perf_images.h process.c 
                                  processor.c ptrace.c real2.S setup.c 
                                  signal.c signal32.c signal32.h smp.c 
                                  sys_parisc.c sys_parisc32.c syscall.S 
                                  syscall_table.S time.c traps.c 
                                  unaligned.c unwind.c vmlinux.lds.S 
        linux/arch/parisc/lib: Tag: MaltaRef_2_6 Makefile bitops.c 
                               checksum.c debuglocks.c io.c lusercopy.S 
        linux/arch/parisc/math-emu: Tag: MaltaRef_2_6 driver.c 
        linux/arch/parisc/mm: Tag: MaltaRef_2_6 fault.c init.c ioremap.c 
                              kmap.c 
        linux/arch/parisc/oprofile: Tag: MaltaRef_2_6 init.c 
        linux/arch/ppc : Tag: MaltaRef_2_6 Kconfig Kconfig.debug 
                         Makefile 
        linux/arch/ppc/4xx_io: Tag: MaltaRef_2_6 serial_sicc.c 
        linux/arch/ppc/8260_io: Tag: MaltaRef_2_6 Kconfig enet.c 
                                fcc_enet.c 
        linux/arch/ppc/8xx_io: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                               Makefile commproc.c cs4218_tdm.c enet.c 
                               fec.c micropatch.c 
        linux/arch/ppc/amiga: Tag: MaltaRef_2_6 config.c 
        linux/arch/ppc/boot/common: Tag: MaltaRef_2_6 misc-common.c 
                                    ns16550.c serial_stub.c util.S 
        linux/arch/ppc/boot/images: Tag: MaltaRef_2_6 Makefile 
        linux/arch/ppc/boot/include: Tag: MaltaRef_2_6 nonstdio.h 
        linux/arch/ppc/boot/lib: Tag: MaltaRef_2_6 Makefile 
        linux/arch/ppc/boot/openfirmware: Tag: MaltaRef_2_6 coffmain.c 
                                          common.c misc.S 
        linux/arch/ppc/boot/simple: Tag: MaltaRef_2_6 Makefile clear.S 
                                    embed_config.c head.S m8260_tty.c 
                                    misc-embedded.c misc-prep.c 
                                    misc-spruce.c misc.c mpc52xx_tty.c 
                                    relocate.S 
        linux/arch/ppc/boot/utils: Tag: MaltaRef_2_6 mkbugboot.c 
                                   mktree.c 
        linux/arch/ppc/configs: Tag: MaltaRef_2_6 FADS_defconfig 
                                IVMS8_defconfig SM850_defconfig 
                                SPD823TS_defconfig TQM823L_defconfig 
                                TQM850L_defconfig TQM860L_defconfig 
                                adir_defconfig apus_defconfig 
                                bseip_defconfig common_defconfig 
                                ev64260_defconfig ibmchrp_defconfig 
                                k2_defconfig mbx_defconfig 
                                menf1_defconfig mvme5100_defconfig 
                                pcore_defconfig pmac_defconfig 
                                pplus_defconfig rpxcllf_defconfig 
                                rpxlite_defconfig 
        linux/arch/ppc/kernel: Tag: MaltaRef_2_6 Makefile align.c 
                               asm-offsets.c bitops.c cpu_setup_6xx.S 
                               cpu_setup_power4.S cputable.c 
                               dma-mapping.c entry.S head.S head_44x.S 
                               head_4xx.S head_8xx.S idle.c idle_6xx.S 
                               idle_power4.S irq.c l2cr.S misc.S pci.c 
                               ppc-stub.c ppc_htab.c ppc_ksyms.c 
                               process.c ptrace.c setup.c signal.c smp.c 
                               softemu8xx.c syscalls.c temp.c time.c 
                               traps.c vmlinux.lds.S 
        linux/arch/ppc/lib: Tag: MaltaRef_2_6 checksum.S dec_and_lock.c 
                            locks.c rheap.c string.S 
        linux/arch/ppc/math-emu: Tag: MaltaRef_2_6 op-common.h 
        linux/arch/ppc/mm: Tag: MaltaRef_2_6 44x_mmu.c fsl_booke_mmu.c 
                           hashtable.S init.c mmu_decl.h pgtable.c 
                           ppc_mmu.c tlb.c 
        linux/arch/ppc/oprofile: Tag: MaltaRef_2_6 Makefile 
        linux/arch/ppc/platforms: Tag: MaltaRef_2_6 Makefile adir_pic.c 
                                  adir_setup.c apus_setup.c chrp_pci.c 
                                  chrp_setup.c chrp_smp.c chrp_time.c 
                                  est8260.h ev64260.h gemini_pci.c 
                                  gemini_prom.S gemini_setup.c k2.c 
                                  lite5200.c lite5200.h mcpn765.c 
                                  mcpn765.h mpc5200.c mvme5100.h 
                                  pal4_setup.c pcore.c pmac_backlight.c 
                                  pmac_cpufreq.c pmac_feature.c 
                                  pmac_low_i2c.c pmac_nvram.c pmac_pci.c 
                                  pmac_pic.c pmac_setup.c pmac_sleep.S 
                                  pmac_smp.c pmac_time.c powerpmc250.h 
                                  pplus.c pq2ads.h prep_pci.c 
                                  prep_setup.c prpmc750.c prpmc750.h 
                                  prpmc800.c prpmc800.h residual.c 
                                  rpx8260.h rpxclassic.h rpxlite.h 
                                  sandpoint.c sbc82xx.c sbc82xx.h 
                                  spruce.c tqm8260.h tqm8260_setup.c 
                                  tqm8xx.h 
        linux/arch/ppc/platforms/4xx: Tag: MaltaRef_2_6 Kconfig Makefile 
                                      ebony.c ebony.h ibm405ep.c 
                                      ibm405gp.c ibm405gpr.c ibm440gp.c 
                                      ibm440gx.c ibmnp405h.h ibmstbx25.c 
                                      oak.c ocotea.c ocotea.h redwood6.c 
                                      sycamore.c 
        linux/arch/ppc/platforms/85xx: Tag: MaltaRef_2_6 Kconfig 
                                       Makefile mpc8540_ads.c 
                                       mpc8540_ads.h mpc8555_cds.h 
                                       mpc8560_ads.c 
                                       mpc85xx_ads_common.c 
                                       mpc85xx_cds_common.c 
                                       mpc85xx_cds_common.h sbc8560.c 
                                       sbc85xx.c 
        linux/arch/ppc/syslib: Tag: MaltaRef_2_6 Makefile btext.c 
                               cpc700.h cpm2_pic.c cpm2_pic.h 
                               gen550_dbg.c gen550_kgdb.c gt64260_pic.c 
                               hawk_common.c i8259.c ibm440gx_common.c 
                               ibm440gx_common.h ibm44x_common.c 
                               ibm44x_common.h indirect_pci.c 
                               m8260_pci_erratum9.c m8260_setup.c 
                               m8xx_setup.c mpc10x_common.c 
                               mpc52xx_pic.c mpc52xx_setup.c open_pic.c 
                               open_pic2.c open_pic_defs.h ppc405_pci.c 
                               ppc4xx_dma.c ppc4xx_pic.c ppc4xx_setup.c 
                               ppc4xx_sgdma.c ppc85xx_common.c 
                               ppc85xx_common.h ppc85xx_setup.c 
                               ppc85xx_setup.h ppc8xx_pic.c prom.c 
                               prom_init.c qspan_pci.c todc_time.c 
        linux/arch/ppc/xmon: Tag: MaltaRef_2_6 start.c xmon.c 
        linux/arch/ppc64: Tag: MaltaRef_2_6 Kconfig Kconfig.debug 
                          Makefile defconfig 
        linux/arch/ppc64/boot: Tag: MaltaRef_2_6 Makefile addnote.c 
                               install.sh main.c string.S zImage.lds 
        linux/arch/ppc64/configs: Tag: MaltaRef_2_6 g5_defconfig 
                                  iSeries_defconfig pSeries_defconfig 
        linux/arch/ppc64/kernel: Tag: MaltaRef_2_6 HvLpEvent.c 
                                 ItLpQueue.c LparData.c Makefile align.c 
                                 asm-offsets.c binfmt_elf32.c bitops.c 
                                 btext.c cpu_setup_power4.S cputable.c 
                                 dma.c eeh.c entry.S head.S hvconsole.c 
                                 i8259.c i8259.h iSeries_VpdInfo.c 
                                 iSeries_htab.c iSeries_iommu.c 
                                 iSeries_irq.c iSeries_pci.c 
                                 iSeries_pci_reset.c iSeries_proc.c 
                                 iSeries_setup.c iSeries_setup.h idle.c 
                                 idle_power4.S ioctl32.c iommu.c irq.c 
                                 lmb.c lparcfg.c mf.c misc.S module.c 
                                 nvram.c of_device.c pSeries_hvCall.S 
                                 pSeries_iommu.c pSeries_lpar.c 
                                 pSeries_nvram.c pSeries_pci.c 
                                 pacaData.c pci.c pci.h pci_dn.c 
                                 pci_iommu.c pmac.h pmac_feature.c 
                                 pmac_low_i2c.c pmac_nvram.c pmac_pci.c 
                                 pmac_setup.c pmac_smp.c pmac_time.c 
                                 ppc_ksyms.c proc_ppc64.c process.c 
                                 prom.c ptrace.c ptrace32.c ras.c 
                                 rtas-proc.c rtas.c rtas_flash.c rtasd.c 
                                 rtc.c scanlog.c semaphore.c setup.c 
                                 signal.c signal32.c smp.c sys_ppc32.c 
                                 syscalls.c sysfs.c time.c traps.c 
                                 udbg.c vecemu.c vio.c viopath.c 
                                 vmlinux.lds.S xics.c 
        linux/arch/ppc64/lib: Tag: MaltaRef_2_6 Makefile checksum.S 
                              dec_and_lock.c locks.c 
        linux/arch/ppc64/mm: Tag: MaltaRef_2_6 Makefile fault.c 
                             hash_low.S hash_utils.c hugetlbpage.c 
                             imalloc.c init.c numa.c slb.c slb_low.S 
                             stab.c tlb.c 
        linux/arch/ppc64/oprofile: Tag: MaltaRef_2_6 common.c op_impl.h 
                                   op_model_power4.c op_model_rs64.c 
        linux/arch/ppc64/xmon: Tag: MaltaRef_2_6 ppc-opc.c start.c 
                               xmon.c 
        linux/arch/s390: Tag: MaltaRef_2_6 Kconfig Makefile defconfig 
        linux/arch/s390/appldata: Tag: MaltaRef_2_6 appldata_base.c 
                                  appldata_mem.c appldata_net_sum.c 
                                  appldata_os.c 
        linux/arch/s390/boot: Tag: MaltaRef_2_6 Makefile 
        linux/arch/s390/kernel: Tag: MaltaRef_2_6 Makefile asm-offsets.c 
                                binfmt_elf32.c compat_ioctl.c 
                                compat_linux.c compat_linux.h 
                                compat_signal.c compat_wrapper.S cpcmd.c 
                                debug.c ebcdic.c entry.S entry64.S 
                                head.S head64.S module.c process.c 
                                profile.c ptrace.c s390_ext.c 
                                s390_ksyms.c setup.c signal.c smp.c 
                                sys_s390.c syscalls.S time.c traps.c 
                                vmlinux.lds.S vtime.c 
        linux/arch/s390/lib: Tag: MaltaRef_2_6 string.c 
        linux/arch/s390/mm: Tag: MaltaRef_2_6 Makefile cmm.c extmem.c 
                            fault.c init.c 
        linux/arch/s390/oprofile: Tag: MaltaRef_2_6 Kconfig init.c 
        linux/arch/sh  : Tag: MaltaRef_2_6 Kconfig Makefile 
        linux/arch/sh/boards/bigsur: Tag: MaltaRef_2_6 irq.c setup.c 
        linux/arch/sh/boards/dreamcast: Tag: MaltaRef_2_6 setup.c 
        linux/arch/sh/boards/harp: Tag: MaltaRef_2_6 setup.c 
        linux/arch/sh/boards/hp6xx/hp620: Tag: MaltaRef_2_6 Makefile 
        linux/arch/sh/boards/overdrive: Tag: MaltaRef_2_6 pcidma.c 
        linux/arch/sh/boards/renesas/hs7751rvoip: Tag: MaltaRef_2_6 io.c 
        linux/arch/sh/boards/renesas/rts7751r2d: Tag: MaltaRef_2_6 
                                                 mach.c 
        linux/arch/sh/boards/se/7300: Tag: MaltaRef_2_6 io.c 
        linux/arch/sh/boards/se/770x: Tag: MaltaRef_2_6 irq.c mach.c 
        linux/arch/sh/boards/se/7751: Tag: MaltaRef_2_6 io.c pci.c 
        linux/arch/sh/boards/snapgear: Tag: MaltaRef_2_6 setup.c 
        linux/arch/sh/cchips/voyagergx: Tag: MaltaRef_2_6 consistent.c 
        linux/arch/sh/configs: Tag: MaltaRef_2_6 adx_defconfig 
                               cqreek_defconfig dreamcast_defconfig 
                               hp680_defconfig rts7751r2d_defconfig 
                               se7300_defconfig se7751_defconfig 
                               snapgear_defconfig systemh_defconfig 
        linux/arch/sh/drivers/dma: Tag: MaltaRef_2_6 dma-api.c dma-g2.c 
                                   dma-pvr2.c 
        linux/arch/sh/drivers/pci: Tag: MaltaRef_2_6 Kconfig Makefile 
                                   dma-dreamcast.c fixups-dreamcast.c 
                                   fixups-rts7751r2d.c ops-rts7751r2d.c 
                                   pci-auto.c pci-sh7751.c pci-st40.c 
                                   pci-st40.h pci.c 
        linux/arch/sh/kernel: Tag: MaltaRef_2_6 cpufreq.c early_printk.c 
                              entry.S irq.c process.c ptrace.c setup.c 
                              sh_bios.c sh_ksyms.c signal.c smp.c time.c 
                              traps.c vmlinux.lds.S 
        linux/arch/sh/kernel/cpu: Tag: MaltaRef_2_6 bus.c init.c 
                                  irq_imask.c irq_ipr.c 
        linux/arch/sh/kernel/cpu/sh2: Tag: MaltaRef_2_6 Makefile 
        linux/arch/sh/kernel/cpu/sh3: Tag: MaltaRef_2_6 Makefile 
        linux/arch/sh/kernel/cpu/sh4: Tag: MaltaRef_2_6 Makefile ex.S 
                                      fpu.c irq_intc2.c sq.c 
        linux/arch/sh/lib: Tag: MaltaRef_2_6 Makefile delay.c 
        linux/arch/sh/mm: Tag: MaltaRef_2_6 Makefile cache-sh2.c 
                          cache-sh3.c cache-sh4.c consistent.c extable.c 
                          fault-nommu.c fault.c hugetlbpage.c init.c 
                          ioremap.c pg-sh4.c tlb-sh3.c tlb-sh4.c 
        linux/arch/sh/oprofile: Tag: MaltaRef_2_6 Makefile 
                                op_model_null.c 
        linux/arch/sh/ramdisk: Tag: MaltaRef_2_6 Makefile 
        linux/arch/sh/tools: Tag: MaltaRef_2_6 Makefile mach-types 
        linux/arch/sh64: Tag: MaltaRef_2_6 Kconfig Kconfig.debug 
                         Makefile 
        linux/arch/sh64/configs: Tag: MaltaRef_2_6 cayman_defconfig 
        linux/arch/sh64/kernel: Tag: MaltaRef_2_6 Makefile dma.c 
                                early_printk.c entry.S fpu.c head.S 
                                irq.c irq_intc.c pci_sh5.c pcibios.c 
                                process.c ptrace.c setup.c sh_ksyms.c 
                                signal.c switchto.S sys_sh64.c 
                                syscalls.S time.c traps.c vmlinux.lds.S 
        linux/arch/sh64/lib: Tag: MaltaRef_2_6 Makefile c-checksum.c 
                             copy_user_memcpy.S dbg.c io.c page_clear.S 
                             page_copy.S 
        linux/arch/sh64/mach-cayman: Tag: MaltaRef_2_6 Makefile irq.c 
                                     setup.c 
        linux/arch/sh64/mm: Tag: MaltaRef_2_6 cache.c extable.c fault.c 
                            hugetlbpage.c init.c ioremap.c tlbmiss.c 
        linux/arch/sh64/oprofile: Tag: MaltaRef_2_6 op_model_null.c 
        linux/arch/sparc: Tag: MaltaRef_2_6 Kconfig Makefile 
        linux/arch/sparc/kernel: Tag: MaltaRef_2_6 apc.c auxio.c ebus.c 
                                 entry.S idprom.c init_task.c ioport.c 
                                 irq.c muldiv.c pcic.c pmc.c process.c 
                                 ptrace.c semaphore.c setup.c signal.c 
                                 smp.c sparc_ksyms.c sun4c_irq.c 
                                 sun4d_irq.c sun4d_smp.c sun4m_smp.c 
                                 sys_sparc.c sys_sunos.c systbls.S 
                                 time.c traps.c unaligned.c 
                                 vmlinux.lds.S 
        linux/arch/sparc/lib: Tag: MaltaRef_2_6 atomic32.c bitext.c 
                              memcpy.S 
        linux/arch/sparc/mm: Tag: MaltaRef_2_6 fault.c generic.c 
                             highmem.c init.c io-unit.c iommu.c srmmu.c 
                             sun4c.c 
        linux/arch/sparc/prom: Tag: MaltaRef_2_6 console.c memory.c 
                               misc.c ranges.c sun4prom.c tree.c 
        linux/arch/sparc64: Tag: MaltaRef_2_6 Kconfig Kconfig.debug 
                            Makefile defconfig 
        linux/arch/sparc64/kernel: Tag: MaltaRef_2_6 Makefile auxio.c 
                                   binfmt_aout32.c binfmt_elf32.c 
                                   central.c chmc.c cpu.c devices.c 
                                   dtlb_backend.S dtlb_base.S entry.S 
                                   etrap.S head.S ioctl32.c irq.c isa.c 
                                   module.c pci.c pci_common.c 
                                   pci_impl.h pci_iommu.c pci_psycho.c 
                                   pci_sabre.c pci_schizo.c power.c 
                                   process.c ptrace.c rtrap.S sbus.c 
                                   semaphore.c setup.c signal.c 
                                   signal32.c smp.c sparc64_ksyms.c 
                                   sys32.S sys_sparc.c sys_sparc32.c 
                                   sys_sunos32.c systbls.S time.c 
                                   trampoline.S traps.c ttable.S 
                                   unaligned.c vmlinux.lds.S winfixup.S 
        linux/arch/sparc64/lib: Tag: MaltaRef_2_6 Makefile PeeCeeI.c 
                                U1memcpy.S U3memcpy.S U3patch.S atomic.S 
                                bitops.S checksum.S copy_in_user.S 
                                copy_page.S debuglocks.c dec_and_lock.S 
                                find_bit.c ipcsum.S mcount.S memcmp.S 
                                memmove.S memscan.S strlen.S 
                                strlen_user.S strncmp.S 
                                strncpy_from_user.S user_fixup.c xor.S 
        linux/arch/sparc64/mm: Tag: MaltaRef_2_6 fault.c generic.c 
                               hugetlbpage.c init.c tlb.c ultra.S 
        linux/arch/sparc64/oprofile: Tag: MaltaRef_2_6 init.c 
        linux/arch/sparc64/prom: Tag: MaltaRef_2_6 Makefile map.S 
                                 memory.c p1275.c 
        linux/arch/sparc64/solaris: Tag: MaltaRef_2_6 entry64.S fs.c 
                                    ioctl.c misc.c socksys.c systbl.S 
                                    timod.c 
        linux/arch/um  : Tag: MaltaRef_2_6 Kconfig Kconfig.debug 
                         Kconfig_char Kconfig_net Makefile Makefile-i386 
                         Makefile-os-Linux Makefile-skas Makefile-tt 
                         config.release defconfig 
        linux/arch/um/drivers: Tag: MaltaRef_2_6 Makefile chan_kern.c 
                               chan_user.c daemon_user.c fd.c 
                               harddog_user.c hostaudio_kern.c line.c 
                               mcast_kern.c mcast_user.c mconsole_kern.c 
                               mconsole_user.c mmapper_kern.c net_kern.c 
                               net_user.c null.c port_kern.c port_user.c 
                               pty.c slip_user.c slirp_kern.c 
                               slirp_user.c ssl.c stdio_console.c tty.c 
                               ubd_kern.c ubd_user.c xterm.c 
                               xterm_kern.c 
        linux/arch/um/include: Tag: MaltaRef_2_6 chan_kern.h chan_user.h 
                               choose-mode.h frame_kern.h init.h 
                               irq_user.h kern.h kern_util.h line.h 
                               mconsole.h mem.h mem_user.h mode.h 
                               mode_kern.h net_kern.h os.h process.h 
                               ptrace_user.h signal_user.h skas_ptrace.h 
                               syscall_user.h sysrq.h time_user.h tlb.h 
                               ubd_user.h um_mmu.h um_uaccess.h 
                               uml_uaccess.h user.h user_util.h 
        linux/arch/um/include/sysdep-i386: Tag: MaltaRef_2_6 checksum.h 
                                           ptrace.h ptrace_user.h 
                                           sigcontext.h syscalls.h 
        linux/arch/um/include/sysdep-ppc: Tag: MaltaRef_2_6 syscalls.h 
        linux/arch/um/kernel: Tag: MaltaRef_2_6 Makefile checksum.c 
                              config.c.in exec_kern.c exitcode.c 
                              gmon_syms.c helper.c init_task.c irq.c 
                              irq_user.c ksyms.c mem.c mem_user.c 
                              process.c process_kern.c ptrace.c reboot.c 
                              sigio_kern.c sigio_user.c signal_kern.c 
                              signal_user.c smp.c syscall_kern.c 
                              syscall_user.c sysrq.c tempfile.c time.c 
                              time_kern.c tlb.c trap_kern.c trap_user.c 
                              tty_log.c uaccess_user.c um_arch.c umid.c 
                              user_util.c vmlinux.lds.S 
        linux/arch/um/kernel/skas: Tag: MaltaRef_2_6 Makefile 
                                   exec_kern.c mem.c mem_user.c mmu.c 
                                   process.c process_kern.c 
                                   syscall_kern.c syscall_user.c tlb.c 
                                   trap_user.c 
        linux/arch/um/kernel/skas/include: Tag: MaltaRef_2_6 skas.h 
        linux/arch/um/kernel/skas/util: Tag: MaltaRef_2_6 Makefile 
        linux/arch/um/kernel/tt: Tag: MaltaRef_2_6 Makefile exec_kern.c 
                                 exec_user.c gdb.c ksyms.c mem.c 
                                 mem_user.c process_kern.c 
                                 syscall_kern.c syscall_user.c tlb.c 
                                 tracer.c trap_user.c uaccess_user.c 
                                 unmap.c 
        linux/arch/um/kernel/tt/include: Tag: MaltaRef_2_6 tt.h 
        linux/arch/um/kernel/tt/ptproxy: Tag: MaltaRef_2_6 Makefile 
                                         proxy.c ptrace.c sysdep.c 
                                         wait.c 
        linux/arch/um/os-Linux: Tag: MaltaRef_2_6 Makefile file.c 
                                process.c tty.c 
        linux/arch/um/os-Linux/drivers: Tag: MaltaRef_2_6 Makefile 
                                        ethertap_kern.c ethertap_user.c 
                                        tuntap_user.c 
        linux/arch/um/sys-i386: Tag: MaltaRef_2_6 Makefile bugs.c 
                                checksum.S fault.c ksyms.c ldt.c 
                                ptrace.c ptrace_user.c sigcontext.c 
                                syscalls.c sysrq.c 
        linux/arch/um/sys-i386/util: Tag: MaltaRef_2_6 Makefile mk_sc.c 
        linux/arch/um/sys-ia64: Tag: MaltaRef_2_6 Makefile 
        linux/arch/um/sys-ppc: Tag: MaltaRef_2_6 Makefile ptrace.c 
                               ptrace_user.c sysrq.c 
        linux/arch/um/util: Tag: MaltaRef_2_6 Makefile 
        linux/arch/v850: Tag: MaltaRef_2_6 Kconfig 
        linux/arch/v850/kernel: Tag: MaltaRef_2_6 asm-consts.c 
                                fpga85e2c.c irq.c memcons.c ptrace.c 
                                rte_cb_leds.c rte_mb_a_pci.c semaphore.c 
                                setup.c signal.c sim85e2.c simcons.c 
                                syscalls.c time.c v850_ksyms.c 
                                vmlinux.lds.S 
        linux/arch/v850/lib: Tag: MaltaRef_2_6 checksum.c memcpy.c 
        linux/arch/x86_64: Tag: MaltaRef_2_6 Kconfig Kconfig.debug 
                           Makefile defconfig 
        linux/arch/x86_64/boot: Tag: MaltaRef_2_6 Makefile bootsect.S 
                                setup.S video.S 
        linux/arch/x86_64/boot/compressed: Tag: MaltaRef_2_6 Makefile 
        linux/arch/x86_64/ia32: Tag: MaltaRef_2_6 fpu32.c ia32_aout.c 
                                ia32_binfmt.c ia32_ioctl.c ia32_signal.c 
                                ia32entry.S ipc32.c ptrace32.c 
                                sys_ia32.c syscall32.c 
                                vsyscall-sigreturn.S vsyscall.lds 
        linux/arch/x86_64/kernel: Tag: MaltaRef_2_6 Makefile aperture.c 
                                  apic.c asm-offsets.c e820.c 
                                  early_printk.c entry.S head.S head64.c 
                                  i387.c i8259.c init_task.c io_apic.c 
                                  ioport.c irq.c ldt.c mce.c module.c 
                                  mpparse.c msr.c nmi.c pci-dma.c 
                                  pci-gart.c pci-nommu.c process.c 
                                  ptrace.c reboot.c semaphore.c setup.c 
                                  setup64.c signal.c smp.c smpboot.c 
                                  suspend.c suspend_asm.S sys_x86_64.c 
                                  time.c trampoline.S traps.c 
                                  vmlinux.lds.S vsyscall.c x8664_ksyms.c 
        linux/arch/x86_64/kernel/acpi: Tag: MaltaRef_2_6 sleep.c 
                                       wakeup.S 
        linux/arch/x86_64/kernel/cpufreq: Tag: MaltaRef_2_6 Kconfig 
                                          Makefile 
        linux/arch/x86_64/lib: Tag: MaltaRef_2_6 Makefile bitstr.c 
                               copy_user.S csum-wrappers.c 
                               dec_and_lock.c delay.c getuser.S io.c 
                               memmove.c putuser.S usercopy.c 
        linux/arch/x86_64/mm: Tag: MaltaRef_2_6 Makefile extable.c 
                              fault.c init.c ioremap.c k8topology.c 
                              numa.c pageattr.c 
        linux/arch/x86_64/oprofile: Tag: MaltaRef_2_6 Makefile 
        linux/arch/x86_64/pci: Tag: MaltaRef_2_6 Makefile mmconfig.c 
        linux/crypto   : Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                         aes.c api.c blowfish.c cast5.c cast6.c cipher.c 
                         crypto_null.c deflate.c internal.h 
                         michael_mic.c scatterwalk.c scatterwalk.h 
                         serpent.c sha1.c sha256.c sha512.c tcrypt.c 
                         tcrypt.h tea.c 
        linux/drivers  : Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
        linux/drivers/acorn/block: Tag: MaltaRef_2_6 fd1772.c mfmhd.c 
        linux/drivers/acorn/char: Tag: MaltaRef_2_6 .cvsignore i2c.c 
                                  pcf8583.c 
        linux/drivers/acorn/net: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/acorn/scsi: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/acpi: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                            Makefile ac.c asus_acpi.c battery.c 
                            blacklist.c bus.c button.c debug.c ec.c 
                            event.c fan.c motherboard.c numa.c osl.c 
                            pci_bind.c pci_irq.c pci_link.c pci_root.c 
                            power.c scan.c system.c tables.c thermal.c 
                            toshiba_acpi.c utils.c 
        linux/drivers/acpi/dispatcher: Tag: MaltaRef_2_6 .cvsignore 
                                       dsfield.c dsinit.c dsmethod.c 
                                       dsmthdat.c dsobject.c dsopcode.c 
                                       dsutils.c dswexec.c dswload.c 
                                       dswscope.c dswstate.c 
        linux/drivers/acpi/events: Tag: MaltaRef_2_6 .cvsignore 
                                   evevent.c evgpe.c evgpeblk.c evmisc.c 
                                   evregion.c evrgnini.c evsci.c 
                                   evxface.c evxfevnt.c evxfregn.c 
        linux/drivers/acpi/executer: Tag: MaltaRef_2_6 .cvsignore 
                                     exconfig.c exconvrt.c excreate.c 
                                     exdump.c exfield.c exfldio.c 
                                     exmisc.c exmutex.c exnames.c 
                                     exoparg1.c exoparg2.c exoparg3.c 
                                     exoparg6.c exprep.c exregion.c 
                                     exresnte.c exresolv.c exresop.c 
                                     exstore.c exstoren.c exstorob.c 
                                     exsystem.c exutils.c 
        linux/drivers/acpi/hardware: Tag: MaltaRef_2_6 .cvsignore 
                                     Makefile hwacpi.c hwgpe.c hwregs.c 
                                     hwsleep.c hwtimer.c 
        linux/drivers/acpi/namespace: Tag: MaltaRef_2_6 .cvsignore 
                                      Makefile nsaccess.c nsalloc.c 
                                      nsdump.c nsdumpdv.c nseval.c 
                                      nsinit.c nsload.c nsnames.c 
                                      nsobject.c nsparse.c nssearch.c 
                                      nsutils.c nswalk.c nsxfeval.c 
                                      nsxfname.c nsxfobj.c 
        linux/drivers/acpi/ospm: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/acpi/ospm/ac_adapter: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/acpi/ospm/battery: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/acpi/ospm/busmgr: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/acpi/ospm/button: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/acpi/ospm/ec: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/acpi/ospm/processor: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/acpi/ospm/system: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/acpi/ospm/thermal: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/acpi/parser: Tag: MaltaRef_2_6 .cvsignore psargs.c 
                                   psopcode.c psparse.c psscope.c 
                                   pstree.c psutils.c pswalk.c psxface.c 
        linux/drivers/acpi/resources: Tag: MaltaRef_2_6 .cvsignore 
                                      Makefile rsaddr.c rscalc.c 
                                      rscreate.c rsdump.c rsio.c rsirq.c 
                                      rslist.c rsmemory.c rsmisc.c 
                                      rsutils.c rsxface.c 
        linux/drivers/acpi/sleep: Tag: MaltaRef_2_6 Makefile main.c 
                                  poweroff.c proc.c sleep.h wakeup.c 
        linux/drivers/acpi/tables: Tag: MaltaRef_2_6 .cvsignore 
                                   tbconvrt.c tbget.c tbgetall.c 
                                   tbinstal.c tbrsdt.c tbutils.c 
                                   tbxface.c tbxfroot.c 
        linux/drivers/acpi/utilities: Tag: MaltaRef_2_6 .cvsignore 
                                      utalloc.c utcopy.c utdebug.c 
                                      utdelete.c uteval.c utglobal.c 
                                      utinit.c utmath.c utmisc.c 
                                      utobject.c utxface.c 
        linux/drivers/atm: Tag: MaltaRef_2_6 .cvsignore Makefile 
                           ambassador.c ambassador.h atmtcp.c eni.c 
                           eni.h firestream.c firestream.h fore200e.c 
                           fore200e.h he.c he.h horizon.c horizon.h 
                           idt77105.c idt77105.h idt77252.c idt77252.h 
                           iphase.c iphase.h lanai.c nicstar.c nicstar.h 
                           nicstarmac.c suni.c zatm.c 
        linux/drivers/base: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                            Makefile bus.c class.c class_simple.c core.c 
                            cpu.c dmapool.c driver.c firmware.c 
                            firmware_class.c init.c map.c node.c 
                            platform.c sys.c 
        linux/drivers/base/fs: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/base/power: Tag: MaltaRef_2_6 .cvsignore main.c 
                                  power.h resume.c runtime.c shutdown.c 
                                  suspend.c 
        linux/drivers/block: Tag: MaltaRef_2_6 .cvsignore DAC960.c 
                             DAC960.h Kconfig Kconfig.iosched Makefile 
                             acsi.c amiflop.c as-iosched.c ataflop.c 
                             cciss.c cciss.h cciss_scsi.c cciss_scsi.h 
                             cfq-iosched.c cpqarray.c cpqarray.h 
                             deadline-iosched.c elevator.c floppy.c 
                             genhd.c ida_cmd.h ida_ioctl.h ioctl.c 
                             ll_rw_blk.c loop.c nbd.c noop-iosched.c 
                             ps2esdi.c rd.c scsi_ioctl.c smart1,2.h 
                             swim3.c swim_iop.c sx8.c ub.c umem.c 
                             viodasd.c xd.c z2ram.c 
        linux/drivers/block/paride: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                    bpck6.c paride.c paride.h pcd.c pd.c 
                                    pf.c pg.c pseudo.h pt.c 
        linux/drivers/bluetooth: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                 Makefile bcm203x.c bfusb.c 
                                 bluecard_cs.c bt3c_cs.c btuart_cs.c 
                                 dtl1_cs.c hci_bcsp.c hci_ldisc.c 
                                 hci_usb.c hci_usb.h hci_vhci.c 
        linux/drivers/cdrom: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                             Makefile aztcd.c cdrom.c cdu31a.c cdu31a.h 
                             cm206.c gscd.c isp16.c isp16.h mcdx.c 
                             optcd.c sbpcd.c sjcd.c sonycd535.c viocd.c 
        linux/drivers/char: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                            Makefile amiserial.c applicom.c 
                            au1000_gpio.c au1000_ts.c au1000_usbraw.c 
                            au1000_usbtty.c consolemap.c cp437.uni 
                            cyclades.c ds1286.c ds1620.c dsp56k.c dtlk.c 
                            ec3104_keyb.c efirtc.c epca.c epca.h esp.c 
                            generic_nvram.c generic_serial.c genrtc.c 
                            hangcheck-timer.c hpet.c hvc_console.c 
                            hvcs.c hvsi.c hw_random.c i8k.c ip2.c 
                            ip2main.c isicom.c istallion.c keyboard.c 
                            lcd.c lcd.h lp.c mem.c misc.c moxa.c mxser.c 
                            n_hdlc.c n_r3964.c n_tty.c nvram.c nwflash.c 
                            pty.c qtronix.c random.c raw.c riscom8.c 
                            rocket.c rocket_int.h rtc.c sb1250_duart.c 
                            scx200_gpio.c selection.c ser_a2232.c 
                            serial167.c snsc.c snsc.h sonypi.c 
                            specialix.c specialix_io8.h stallion.c sx.c 
                            sx.h synclink.c synclinkmp.c sysrq.c tipar.c 
                            toshiba.c tty_io.c tty_ioctl.c vc_screen.c 
                            viocons.c viotape.c vme_scc.c vt.c 
                            vt_ioctl.c 
        linux/drivers/char/agp: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                Makefile agp.h ali-agp.c alpha-agp.c 
                                amd-k7-agp.c amd64-agp.c ati-agp.c 
                                backend.c efficeon-agp.c frontend.c 
                                generic.c hp-agp.c i460-agp.c 
                                intel-agp.c isoch.c nvidia-agp.c 
                                sis-agp.c sworks-agp.c uninorth-agp.c 
                                via-agp.c 
        linux/drivers/char/drm: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                Makefile drmP.h drm_memory.h 
                                drm_memory_debug.h drm_os_linux.h 
                                drm_pciids.h ffb_context.c ffb_drv.c 
                                ffb_drv.h gamma_context.h gamma_dma.c 
                                gamma_drv.c gamma_drv.h gamma_lists.h 
                                i810_dma.c i810_drm.h i810_drv.c 
                                i810_drv.h i830_dma.c i830_drm.h 
                                i830_drv.c i830_drv.h i830_irq.c 
                                mga_dma.c mga_drv.c mga_drv.h mga_irq.c 
                                mga_state.c mga_warp.c r128_cce.c 
                                r128_drv.c r128_drv.h r128_irq.c 
                                r128_state.c radeon_cp.c radeon_drm.h 
                                radeon_drv.c radeon_drv.h radeon_irq.c 
                                radeon_mem.c radeon_state.c sis_drm.h 
                                sis_drv.c sis_drv.h sis_ds.c sis_ds.h 
                                sis_mm.c tdfx_drv.c 
        linux/drivers/char/ftape: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/char/ftape/compressor: Tag: MaltaRef_2_6 
                                             .cvsignore 
                                             zftape-compress.c 
        linux/drivers/char/ftape/lowlevel: Tag: MaltaRef_2_6 .cvsignore 
                                           fc-10.c fdc-io.c fdc-io.h 
                                           ftape-bsm.c ftape-bsm.h 
                                           ftape-calibr.c ftape-ctl.c 
                                           ftape-ctl.h ftape-init.c 
                                           ftape-io.c ftape-io.h 
                                           ftape-proc.c ftape-rw.c 
                                           ftape-rw.h 
        linux/drivers/char/ftape/zftape: Tag: MaltaRef_2_6 .cvsignore 
                                         zftape-buffers.c 
                                         zftape-buffers.h zftape-init.c 
                                         zftape-init.h zftape-rw.c 
                                         zftape-rw.h zftape-vtbl.c 
                                         zftape-vtbl.h zftape_syms.c 
        linux/drivers/char/ip2: Tag: MaltaRef_2_6 .cvsignore fip_firm.h 
                                i2cmd.c i2cmd.h i2lib.c ip2types.h 
        linux/drivers/char/ipmi: Tag: MaltaRef_2_6 Kconfig ipmi_bt_sm.c 
                                 ipmi_devintf.c ipmi_msghandler.c 
                                 ipmi_poweroff.c ipmi_si_intf.c 
                                 ipmi_si_sm.h ipmi_watchdog.c 
        linux/drivers/char/mwave: Tag: MaltaRef_2_6 .cvsignore 3780i.c 
                                  mwavedd.c smapi.c 
        linux/drivers/char/pcmcia: Tag: MaltaRef_2_6 .cvsignore 
                                   synclink_cs.c 
        linux/drivers/char/rio: Tag: MaltaRef_2_6 .cvsignore func.h 
                                linux_compat.h rio_linux.c rioboot.c 
                                riocmd.c rioctrl.c rioinit.c riointr.c 
                                rioroute.c riotable.c riotty.c 
        linux/drivers/char/watchdog: Tag: MaltaRef_2_6 .cvsignore 
                                     Kconfig Makefile alim7101_wdt.c 
                                     i8xx_tco.c ixp2000_wdt.c 
                                     ixp4xx_wdt.c machzwd.c pcwd.c 
                                     pcwd_pci.c pcwd_usb.c sa1100_wdt.c 
                                     sc1200wdt.c sc520_wdt.c 
                                     scx200_wdt.c wdt_pci.c 
        linux/drivers/cpufreq: Tag: MaltaRef_2_6 Kconfig Makefile 
                               cpufreq.c cpufreq_performance.c 
                               cpufreq_powersave.c cpufreq_userspace.c 
                               freq_table.c 
        linux/drivers/dio: Tag: MaltaRef_2_6 .cvsignore Makefile dio.c 
        linux/drivers/eisa: Tag: MaltaRef_2_6 Makefile eisa-bus.c 
                            pci_eisa.c 
        linux/drivers/fc4: Tag: MaltaRef_2_6 .cvsignore soc.c soc.h 
                           socal.c socal.h 
        linux/drivers/firmware: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                edd.c efivars.c pcdp.c 
        linux/drivers/i2c: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                           i2c-core.c i2c-dev.c i2c-sensor-detect.c 
                           i2c-sensor-vid.c 
        linux/drivers/i2c/algos: Tag: MaltaRef_2_6 Kconfig 
                                 i2c-algo-bit.c i2c-algo-ite.c 
                                 i2c-algo-pca.c i2c-algo-pcf.c 
                                 i2c-algo-sgi.c i2c-algo-sibyte.c 
        linux/drivers/i2c/busses: Tag: MaltaRef_2_6 Kconfig Makefile 
                                  i2c-ali1535.c i2c-ali1563.c 
                                  i2c-ali15x3.c i2c-amd756.c 
                                  i2c-amd8111.c i2c-elektor.c 
                                  i2c-hydra.c i2c-i801.c i2c-i810.c 
                                  i2c-ibm_iic.c i2c-ibm_iic.h 
                                  i2c-iop3xx.c i2c-iop3xx.h i2c-ite.c 
                                  i2c-ixp4xx.c i2c-keywest.c 
                                  i2c-keywest.h i2c-mpc.c i2c-nforce2.c 
                                  i2c-piix4.c i2c-prosavage.c 
                                  i2c-savage4.c i2c-sibyte.c 
                                  i2c-sis5595.c i2c-sis630.c 
                                  i2c-sis96x.c i2c-via.c i2c-viapro.c 
                                  i2c-voodoo3.c scx200_acb.c 
                                  scx200_i2c.c 
        linux/drivers/i2c/chips: Tag: MaltaRef_2_6 Kconfig Makefile 
                                 adm1021.c adm1025.c adm1031.c asb100.c 
                                 ds1621.c eeprom.c fscher.c gl518sm.c 
                                 it87.c lm75.c lm77.c lm78.c lm80.c 
                                 lm83.c lm85.c lm90.c max1619.c 
                                 pcf8574.c pcf8591.c rtc8564.c 
                                 smsc47m1.c via686a.c w83627hf.c 
                                 w83781d.c w83l785ts.c 
        linux/drivers/i2o: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/ide: Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                           ide-cd.c ide-cd.h ide-disk.c ide-dma.c 
                           ide-floppy.c ide-io.c ide-iops.c ide-lib.c 
                           ide-pnp.c ide-probe.c ide-proc.c ide-tape.c 
                           ide-taskfile.c ide.c setup-pci.c 
        linux/drivers/ide/arm: Tag: MaltaRef_2_6 .cvsignore Makefile 
                               icside.c rapide.c 
        linux/drivers/ide/legacy: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                  ali14xx.c dtc2278.c hd.c ht6560b.c 
                                  ide-cs.c qd65xx.c qd65xx.h umc8672.c 
        linux/drivers/ide/mips: Tag: MaltaRef_2_6 .cvsignore swarm.c 
        linux/drivers/ide/pci: Tag: MaltaRef_2_6 .cvsignore Makefile 
                               aec62xx.c alim15x3.c amd74xx.c atiixp.c 
                               cmd640.c cmd64x.c cs5520.c cs5530.c 
                               cy82c693.c generic.c hpt34x.c hpt366.c 
                               it8172.c ns87415.c opti621.c 
                               pdc202xx_new.c pdc202xx_old.c piix.c 
                               rz1000.c sc1200.c serverworks.c sgiioc4.c 
                               siimage.c sis5513.c sl82c105.c slc90e66.c 
                               triflex.c trm290.c via82cxxx.c 
        linux/drivers/ide/ppc: Tag: MaltaRef_2_6 .cvsignore pmac.c 
        linux/drivers/ieee1394: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                amdtp.c config_roms.c csr.c csr1212.c 
                                dma.c dv1394.c eth1394.c eth1394.h 
                                highlevel.c ieee1394.h ieee1394_core.c 
                                ieee1394_core.h ieee1394_transactions.c 
                                ieee1394_transactions.h nodemgr.c 
                                nodemgr.h ohci1394.c ohci1394.h 
                                pcilynx.c pcilynx.h raw1394.c sbp2.c 
                                sbp2.h video1394.c 
        linux/drivers/input: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                             evbug.c evdev.c input.c joydev.c mousedev.c 
                             power.c tsdev.c 
        linux/drivers/input/gameport: Tag: MaltaRef_2_6 .cvsignore 
                                      Kconfig cs461x.c emu10k1-gp.c 
                                      fm801-gp.c gameport.c lightning.c 
                                      ns558.c vortex.c 
        linux/drivers/input/joystick: Tag: MaltaRef_2_6 .cvsignore 
                                      Kconfig a3d.c adi.c amijoy.c 
                                      analog.c cobra.c db9.c gamecon.c 
                                      gf2k.c grip.c grip_mp.c 
                                      guillemot.c interact.c joydump.c 
                                      magellan.c sidewinder.c 
                                      spaceball.c spaceorb.c stinger.c 
                                      tmdc.c turbografx.c twidjoy.c 
                                      warrior.c 
        linux/drivers/input/joystick/iforce: Tag: MaltaRef_2_6 Kconfig 
                                             iforce-main.c 
                                             iforce-serio.c iforce.h 
        linux/drivers/input/keyboard: Tag: MaltaRef_2_6 .cvsignore 
                                      Kconfig Makefile atkbd.c 
                                      hpps2atkbd.h lkkbd.c newtonkbd.c 
                                      sunkbd.c xtkbd.c 
        linux/drivers/input/misc: Tag: MaltaRef_2_6 Kconfig Makefile 
                                  pcspkr.c sparcspkr.c uinput.c 
        linux/drivers/input/mouse: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                   Makefile logips2pp.c logips2pp.h 
                                   pc110pad.c psmouse-base.c psmouse.h 
                                   sermouse.c synaptics.c synaptics.h 
                                   vsxxxaa.c 
        linux/drivers/input/serio: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                   Makefile ambakmi.c ct82c710.c 
                                   gscps2.c i8042-io.h i8042-sparcio.h 
                                   i8042.c i8042.h maceps2.c parkbd.c 
                                   pcips2.c q40kbd.c rpckbd.c 
                                   sa1111ps2.c serio.c serport.c 
        linux/drivers/input/touchscreen: Tag: MaltaRef_2_6 Kconfig 
                                         Makefile gunze.c 
                                         h3600_ts_input.c 
        linux/drivers/isdn: Tag: MaltaRef_2_6 .cvsignore Makefile 
        linux/drivers/isdn/act2000: Tag: MaltaRef_2_6 .cvsignore 
                                    act2000_isa.c module.c 
        linux/drivers/isdn/avmb1: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/isdn/capi: Tag: MaltaRef_2_6 .cvsignore capi.c 
                                 capidrv.c capifs.c kcapi.c kcapi_proc.c 
        linux/drivers/isdn/divert: Tag: MaltaRef_2_6 .cvsignore 
                                   divert_init.c divert_procfs.c 
                                   isdn_divert.c isdn_divert.h 
        linux/drivers/isdn/eicon: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/isdn/hardware: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/isdn/hardware/avm: Tag: MaltaRef_2_6 .cvsignore 
                                         Kconfig avm_cs.c avmcard.h b1.c 
                                         b1dma.c b1pci.c b1pcmcia.c c4.c 
                                         t1isa.c t1pci.c 
        linux/drivers/isdn/hardware/eicon: Tag: MaltaRef_2_6 capifunc.c 
                                           capifunc.h dadapter.c 
                                           dadapter.h debug.c debug_if.h 
                                           debuglib.h di.c di.h 
                                           diddfunc.c diva_didd.c 
                                           diva_pci.h divamnt.c 
                                           divasfunc.c divasi.c 
                                           divasmain.c divasproc.c 
                                           divasync.h idifunc.c io.c 
                                           io.h maintidi.c maintidi.h 
                                           message.c mntfunc.c os_4bri.c 
                                           os_bri.c os_pri.c pc.h 
                                           platform.h s_4bri.c s_bri.c 
                                           s_pri.c xdi_adapter.h 
                                           xdi_vers.h 
        linux/drivers/isdn/hisax: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                  Makefile amd7930_fn.c avm_a1p.c 
                                  avm_pci.c avma1_cs.c bkm_a4t.c 
                                  bkm_a8.c config.c diva.c elsa.c 
                                  elsa_cs.c enternow_pci.c gazel.c 
                                  hfc_pci.c hfc_sx.c hfc_usb.c 
                                  hfcscard.c hisax.h hisax_fcpcipnp.c 
                                  hisax_isac.c icc.c icc.h isdnhdlc.c 
                                  isurf.c niccy.c nj_s.c nj_u.c 
                                  sedlbauer.c sedlbauer_cs.c st5481_b.c 
                                  st5481_d.c st5481_init.c st5481_usb.c 
                                  teles0.c teles3.c teles_cs.c 
                                  telespci.c w6692.c 
        linux/drivers/isdn/hysdn: Tag: MaltaRef_2_6 .cvsignore 
                                  boardergo.c hycapi.c hysdn_sched.c 
        linux/drivers/isdn/i4l: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                isdn_bsdcomp.c isdn_common.c isdn_net.c 
                                isdn_net.h isdn_ppp.c isdn_tty.c 
                                isdn_x25iface.c 
        linux/drivers/isdn/icn: Tag: MaltaRef_2_6 .cvsignore icn.c icn.h 
        linux/drivers/isdn/isdnloop: Tag: MaltaRef_2_6 .cvsignore 
                                     isdnloop.c 
        linux/drivers/isdn/pcbit: Tag: MaltaRef_2_6 .cvsignore drv.c 
                                  module.c pcbit.h 
        linux/drivers/isdn/sc: Tag: MaltaRef_2_6 .cvsignore card.h 
                               hardware.h init.c 
        linux/drivers/isdn/tpam: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/macintosh: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                 Makefile adb.c adbhid.c ans-lcd.c 
                                 macio-adb.c macio_asic.c macserial.c 
                                 mediabay.c nvram.c therm_adt746x.c 
                                 therm_pm72.c therm_pm72.h 
                                 therm_windtunnel.c via-cuda.c via-pmu.c 
        linux/drivers/mca: Tag: MaltaRef_2_6 mca-bus.c mca-legacy.c 
                           mca-proc.c 
        linux/drivers/md: Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                          dm-crypt.c dm-io.c dm-ioctl.c dm-linear.c 
                          dm-log.c dm-log.h dm-raid1.c dm-snap.c 
                          dm-stripe.c dm-table.c dm-target.c dm-zero.c 
                          dm.c dm.h kcopyd.c linear.c md.c multipath.c 
                          raid0.c raid1.c raid5.c raid6algos.c 
                          raid6main.c 
        linux/drivers/media: Tag: MaltaRef_2_6 .cvsignore Kconfig 
        linux/drivers/media/common: Tag: MaltaRef_2_6 .cvsignore 
                                    ir-common.c saa7146_core.c 
                                    saa7146_fops.c saa7146_hlp.c 
                                    saa7146_i2c.c saa7146_vbi.c 
                                    saa7146_video.c saa7146_vv_ksyms.c 
        linux/drivers/media/dvb: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                 Makefile 
        linux/drivers/media/dvb/av7110: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/media/dvb/b2c2: Tag: MaltaRef_2_6 .cvsignore 
                                      Kconfig Makefile skystar2.c 
        linux/drivers/media/dvb/bt8xx: Tag: MaltaRef_2_6 .cvsignore 
                                       Kconfig Makefile bt878.c bt878.h 
                                       dvb-bt8xx.c dvb-bt8xx.h 
        linux/drivers/media/dvb/dvb-core: Tag: MaltaRef_2_6 .cvsignore 
                                          Makefile demux.h dmxdev.c 
                                          dmxdev.h dvb_ca_en50221.c 
                                          dvb_ca_en50221.h dvb_demux.c 
                                          dvb_demux.h dvb_filter.c 
                                          dvb_filter.h dvb_frontend.c 
                                          dvb_frontend.h dvb_net.c 
                                          dvb_net.h dvb_ringbuffer.c 
                                          dvb_ringbuffer.h dvbdev.c 
                                          dvbdev.h 
        linux/drivers/media/dvb/frontends: Tag: MaltaRef_2_6 .cvsignore 
                                           Kconfig Makefile at76c651.c 
                                           cx24110.c dvb_dummy_fe.c 
                                           mt312.c mt312.h nxt6000.c 
                                           nxt6000.h sp887x.c stv0299.c 
                                           tda1004x.c ves1820.c 
                                           ves1x93.c 
        linux/drivers/media/dvb/ttpci: Tag: MaltaRef_2_6 .cvsignore 
                                       Kconfig Makefile av7110.c 
                                       av7110.h av7110_av.c av7110_av.h 
                                       av7110_ca.c av7110_ca.h 
                                       av7110_hw.c av7110_hw.h 
                                       av7110_ipack.c av7110_ipack.h 
                                       av7110_ir.c av7110_v4l.c 
                                       budget-av.c budget-ci.c 
                                       budget-core.c budget-patch.c 
                                       budget.c budget.h ttpci-eeprom.c 
                                       ttpci-eeprom.h 
        linux/drivers/media/dvb/ttusb-budget: Tag: MaltaRef_2_6 
                                              .cvsignore Kconfig 
                                              Makefile 
                                              dvb-ttusb-budget.c 
                                              dvb-ttusb-dspbootcode.h 
        linux/drivers/media/dvb/ttusb-dec: Tag: MaltaRef_2_6 .cvsignore 
                                           Kconfig Makefile ttusb_dec.c 
        linux/drivers/media/radio: Tag: MaltaRef_2_6 .cvsignore 
                                   miropcm20-radio.c miropcm20-rds.c 
                                   radio-aimslab.c radio-aztech.c 
                                   radio-cadet.c radio-gemtek-pci.c 
                                   radio-gemtek.c radio-maestro.c 
                                   radio-maxiradio.c radio-rtrack2.c 
                                   radio-sf16fmi.c radio-sf16fmr2.c 
                                   radio-terratec.c radio-trust.c 
                                   radio-typhoon.c radio-zoltrix.c 
        linux/drivers/media/video: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                   Makefile adv7170.c adv7175.c bt819.c 
                                   bt848.h bt856.c btcx-risc.c 
                                   btcx-risc.h bttv-cards.c 
                                   bttv-driver.c bttv-gpio.c bttv-i2c.c 
                                   bttv-if.c bttv-risc.c bttv-vbi.c 
                                   bttv.h bttvp.h bw-qcam.c c-qcam.c 
                                   cpia.c cpia_pp.c cpia_usb.c dpc7146.c 
                                   hexium_gemini.c hexium_orion.c 
                                   ir-kbd-gpio.c ir-kbd-i2c.c meye.c 
                                   meye.h msp3400.c msp3400.h mxb.c 
                                   mxb.h planb.c pms.c saa5246a.c 
                                   saa5246a.h saa5249.c saa7110.c 
                                   saa7111.c saa7114.c saa7146.h 
                                   saa7185.c stradis.c swarm_saa7114h.c 
                                   tda7432.c tda9840.c tda9875.c 
                                   tda9887.c tea6415c.c tea6420.c 
                                   tuner-3036.c tvaudio.c tvaudio.h 
                                   tvmixer.c v4l1-compat.c v4l2-common.c 
                                   video-buf.c videocodec.c videocodec.h 
                                   videodev.c vpx3220.c w9966.c zoran.h 
                                   zoran_card.c zoran_device.c 
                                   zoran_device.h zoran_driver.c 
                                   zr36016.c zr36050.c zr36050.h 
                                   zr36060.c zr36060.h zr36120.c 
        linux/drivers/media/video/cx88: Tag: MaltaRef_2_6 Makefile 
                                        cx88-cards.c cx88-core.c 
                                        cx88-i2c.c cx88-reg.h 
                                        cx88-tvaudio.c cx88-vbi.c 
                                        cx88-video.c cx88.h 
        linux/drivers/media/video/ovcamchip: Tag: MaltaRef_2_6 
                                             ovcamchip_core.c 
        linux/drivers/media/video/saa7134: Tag: MaltaRef_2_6 Makefile 
                                           saa6752hs.c saa7134-cards.c 
                                           saa7134-core.c saa7134-i2c.c 
                                           saa7134-input.c saa7134-oss.c 
                                           saa7134-reg.h saa7134-ts.c 
                                           saa7134-tvaudio.c 
                                           saa7134-vbi.c saa7134-video.c 
                                           saa7134.h 
        linux/drivers/message: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/message/fusion: Tag: MaltaRef_2_6 .cvsignore 
                                      Kconfig Makefile mptbase.c 
                                      mptbase.h mptctl.c mptlan.c 
                                      mptscsih.c mptscsih.h 
        linux/drivers/message/i2o: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                   i2o_block.c i2o_config.c i2o_proc.c 
                                   i2o_scsi.c 
        linux/drivers/misc: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                            Makefile 
        linux/drivers/misc/ibmasm: Tag: MaltaRef_2_6 ibmasm.h ibmasmfs.c 
                                   lowlevel.c lowlevel.h module.c uart.c 
        linux/drivers/mmc: Tag: MaltaRef_2_6 Kconfig Makefile mmc.c 
                           mmc_block.c mmc_queue.c mmc_queue.h 
                           mmc_sysfs.c mmci.c mmci.h pxamci.c pxamci.h 
        linux/drivers/mtd: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                           cmdlinepart.c ftl.c inftlcore.c inftlmount.c 
                           mtd_blkdevs.c mtdblock.c mtdblock_ro.c 
                           mtdchar.c mtdcore.c mtdpart.c nftlcore.c 
                           nftlmount.c redboot.c 
        linux/drivers/mtd/chips: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                 amd_flash.c cfi_cmdset_0001.c 
                                 cfi_cmdset_0002.c cfi_cmdset_0020.c 
                                 cfi_probe.c cfi_util.c chipreg.c 
                                 gen_probe.c jedec.c jedec_probe.c 
                                 map_absent.c map_ram.c map_rom.c 
        linux/drivers/mtd/devices: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                   Makefile blkmtd.c doc2000.c doc2001.c 
                                   doc2001plus.c docprobe.c ms02-nv.c 
                                   mtdram.c phram.c pmc551.c slram.c 
        linux/drivers/mtd/maps: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                Makefile amd76xrom.c arctic-mtd.c 
                                autcpu12-nvram.c beech-mtd.c cdb89712.c 
                                ceiva.c cfi_flagadm.c cstm_mips_ixx.c 
                                dbox2-flash.c dc21285.c dilnetpc.c 
                                dmv182.c ebony.c edb7312.c elan-104nc.c 
                                epxa10db-flash.c fortunet.c 
                                h720x-flash.c ichxrom.c impa7.c 
                                integrator-flash.c iq80310.c ixp4xx.c 
                                l440gx.c lasat.c lubbock-flash.c 
                                mbx860.c mpc1211.c netsc520.c nettel.c 
                                ocelot.c octagon-5066.c 
                                omap-toto-flash.c pci.c pcmciamtd.c 
                                physmap.c pnc2000.c redwood.c rpxlite.c 
                                sa1100-flash.c sbc_gxx.c sc520cdp.c 
                                scb2_flash.c scx200_docflash.c 
                                solutionengine.c sun_uflash.c tqm8xxl.c 
                                uclinux.c vmax301.c wr_sbc82xx_flash.c 
        linux/drivers/mtd/nand: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                Makefile au1550nd.c autcpu12.c 
                                diskonchip.c edb7312.c nand_base.c 
                                nand_bbt.c ppchameleonevb.c spia.c 
                                toto.c tx4925ndfmc.c tx4938ndfmc.c 
        linux/drivers/net: Tag: MaltaRef_2_6 .cvsignore 3c501.c 3c503.c 
                           3c505.c 3c507.c 3c509.c 3c515.c 3c523.c 
                           3c527.c 3c59x.c 7990.c 7990.h 8139cp.c 
                           8139too.c 82596.c 8390.c 8390.h Kconfig 
                           Makefile Space.c a2065.c ac3200.c acenic.c 
                           acenic.h acenic_firmware.h amd8111e.c 
                           amd8111e.h ariadne.c at1700.c atari_bionet.c 
                           atari_pamsnet.c atarilance.c atp.c 
                           au1000_eth.c au1000_eth.h b44.c b44.h 
                           big_sur_ge.c big_sur_ge.h bmac.c bsd_comp.c 
                           cs89x0.c cs89x0.h de600.c de620.c declance.c 
                           defxx.c defxx.h depca.c dgrs.c dl2k.c dl2k.h 
                           dummy.c e100.c e2100.c eepro.c eepro100.c 
                           eexpress.c epic100.c eql.c es3210.c eth16i.c 
                           ewrk3.c fealnx.c fec.c fec.h fmv18x.c 
                           forcedeth.c gianfar.c gianfar.h 
                           gianfar_ethtool.c gt64240eth.c gt64240eth.h 
                           gt96100eth.c gt96100eth.h hamachi.c hp-plus.c 
                           hp.c hp100.c hplance.c hplance.h hydra.c 
                           ibmlana.c ibmlana.h ibmveth.c ioc3-eth.c 
                           isa-skeleton.c iseries_veth.c jazzsonic.c 
                           lance.c lasi_82596.c lne390.c loopback.c 
                           lp486e.c mac8390.c mac89x0.c mace.c 
                           macsonic.c meth.c mii.c mv643xx_eth.c 
                           mv643xx_eth.h mvme147.c myri_sbus.c 
                           myri_sbus.h natsemi.c ne.c ne2.c ne2k-pci.c 
                           ne3210.c netconsole.c ni5010.c ni52.c ni65.c 
                           ns83820.c pci-skeleton.c pcnet32.c plip.c 
                           ppp_async.c ppp_deflate.c ppp_generic.c 
                           ppp_synctty.c pppoe.c pppox.c r8169.c 
                           rrunner.c rrunner.h s2io-regs.h s2io.c s2io.h 
                           saa9730.c saa9730.h sb1000.c sb1250-mac.c 
                           seeq8005.c sgiseeq.c shaper.c sis900.c 
                           sk_g16.c sk_mca.c sk_mca.h slhc.c slip.c 
                           smc-mca.c smc-ultra.c smc-ultra32.c smc9194.c 
                           smc91x.c smc91x.h sonic.c starfire.c 
                           sun3_82586.c sun3lance.c sunbmac.c sunbmac.h 
                           sundance.c sungem.c sungem.h sungem_phy.c 
                           sungem_phy.h sunhme.c sunhme.h sunlance.c 
                           sunqe.c sunqe.h tc35815.c tg3.c tg3.h 
                           titan_ge.c titan_ge.h titan_mdio.c 
                           titan_mdio.h tlan.c tlan.h tun.c 
                           typhoon-firmware.h typhoon.c via-rhine.c 
                           via-velocity.c via-velocity.h wd.c 
                           yellowfin.c znet.c 
        linux/drivers/net/appletalk: Tag: MaltaRef_2_6 .cvsignore 
                                     Kconfig cops.c cops_ffdrv.h 
                                     cops_ltdrv.h ipddp.c ltpc.c 
        linux/drivers/net/arcnet: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                  Makefile arc-rawmode.c arc-rimi.c 
                                  arcnet.c com20020-isa.c com20020.c 
                                  com90io.c com90xx.c rfc1051.c 
                                  rfc1201.c 
        linux/drivers/net/arm: Tag: MaltaRef_2_6 am79c961a.c ether1.c 
                               ether1.h ether3.c ether3.h etherh.c 
        linux/drivers/net/bonding: Tag: MaltaRef_2_6 .cvsignore 
                                   bond_3ad.c bond_3ad.h bond_alb.c 
                                   bond_main.c bonding.h 
        linux/drivers/net/e100: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/net/e1000: Tag: MaltaRef_2_6 .cvsignore e1000.h 
                                 e1000_ethtool.c e1000_hw.c e1000_hw.h 
                                 e1000_main.c e1000_osdep.h 
                                 e1000_param.c 
        linux/drivers/net/fc: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/net/fec_8xx: Tag: MaltaRef_2_6 fec_8xx-netta.c 
                                   fec_main.c fec_mii.c 
        linux/drivers/net/hamradio: Tag: MaltaRef_2_6 .cvsignore 6pack.c 
                                    Kconfig baycom_epp.c baycom_par.c 
                                    baycom_ser_fdx.c baycom_ser_hdx.c 
                                    bpqether.c dmascc.c hdlcdrv.c 
                                    mkiss.c scc.c yam.c 
        linux/drivers/net/ibm_emac: Tag: MaltaRef_2_6 ibm_emac.h 
                                    ibm_emac_core.c ibm_emac_core.h 
                                    ibm_emac_mal.c ibm_emac_mal.h 
                                    ibm_emac_phy.c 
        linux/drivers/net/irda: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                act200l-sir.c act200l.c actisys.c 
                                ali-ircc.c au1k_ir.c donauboe.c 
                                girbil-sir.c girbil.c irda-usb.c 
                                irport.c irport.h irtty-sir.c 
                                ma600-sir.c ma600.c mcp2120-sir.c 
                                mcp2120.c nsc-ircc.c sa1100_ir.c 
                                sir_dev.c sir_kthread.c smsc-ircc2.c 
                                stir4200.c tekram-sir.c tekram.c 
                                via-ircc.c via-ircc.h vlsi_ir.c 
                                vlsi_ir.h w83977af_ir.c 
        linux/drivers/net/ixgb: Tag: MaltaRef_2_6 ixgb.h ixgb_ee.c 
                                ixgb_ee.h ixgb_ethtool.c ixgb_hw.c 
                                ixgb_hw.h ixgb_ids.h ixgb_main.c 
                                ixgb_osdep.h ixgb_param.c 
        linux/drivers/net/pcmcia: Tag: MaltaRef_2_6 .cvsignore 
                                  3c574_cs.c 3c589_cs.c Kconfig 
                                  axnet_cs.c com20020_cs.c fmvj18x_cs.c 
                                  ibmtr_cs.c nmclan_cs.c pcnet_cs.c 
                                  smc91c92_cs.c xirc2ps_cs.c 
        linux/drivers/net/sk98lin: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                   skaddr.c skge.c skproc.c 
        linux/drivers/net/sk98lin/h: Tag: MaltaRef_2_6 .cvsignore 
                                     skdrv1st.h skdrv2nd.h 
        linux/drivers/net/skfp: Tag: MaltaRef_2_6 .cvsignore hwmtm.c 
                                skfddi.c smt.c 
        linux/drivers/net/skfp/h: Tag: MaltaRef_2_6 fplustm.h targethw.h 
                                  targetos.h types.h 
        linux/drivers/net/tokenring: Tag: MaltaRef_2_6 .cvsignore 
                                     3c359.c 3c359.h Kconfig abyss.c 
                                     ibmtr.c lanstreamer.c lanstreamer.h 
                                     olympic.c olympic.h proteon.c 
                                     skisa.c smctr.c tms380tr.c tmspci.c 
        linux/drivers/net/tulip: Tag: MaltaRef_2_6 .cvsignore 21142.c 
                                 Kconfig de2104x.c de4x5.c dmfe.c 
                                 eeprom.c interrupt.c media.c pnic.c 
                                 pnic2.c timer.c tulip.h tulip_core.c 
                                 winbond-840.c xircom_cb.c 
                                 xircom_tulip_cb.c 
        linux/drivers/net/wan: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                               c101.c cosa.c cosa.h cycx_drv.c 
                               cycx_main.c cycx_x25.c dlci.c dscc4.c 
                               farsync.c hd6457x.c hdlc_x25.c 
                               hostess_sv11.c lapbether.c n2.c pc300.h 
                               pc300_drv.c pc300_tty.c pci200syn.c 
                               sbni.c sdla.c sdla_chdlc.c sdla_fr.c 
                               sdladrv.c sdlamain.c sealevel.c syncppp.c 
                               wanxl.c x25_asy.c z85230.c 
        linux/drivers/net/wan/lmc: Tag: MaltaRef_2_6 .cvsignore 
                                   lmc_debug.c lmc_main.c lmc_media.c 
                                   lmc_proto.c 
        linux/drivers/net/wireless: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                    airo.c airo_cs.c airport.c 
                                    arlan-main.c arlan-proc.c arlan.h 
                                    atmel.c atmel_cs.c atmel_pci.c 
                                    hermes.c hermes.h netwave_cs.c 
                                    orinoco.c orinoco.h orinoco_cs.c 
                                    orinoco_pci.c orinoco_plx.c 
                                    orinoco_tmd.c ray_cs.c ray_cs.h 
                                    strip.c wavelan.c wavelan.p.h 
                                    wavelan_cs.c wavelan_cs.p.h 
                                    wl3501_cs.c 
        linux/drivers/net/wireless/prism54: Tag: MaltaRef_2_6 Makefile 
                                            isl_38xx.c isl_38xx.h 
                                            isl_ioctl.c isl_ioctl.h 
                                            isl_oid.h islpci_dev.c 
                                            islpci_dev.h islpci_eth.c 
                                            islpci_hotplug.c 
                                            islpci_mgt.c islpci_mgt.h 
                                            oid_mgt.c oid_mgt.h 
                                            prismcompat.h 
        linux/drivers/nubus: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/oprofile: Tag: MaltaRef_2_6 buffer_sync.c 
                                buffer_sync.h cpu_buffer.c cpu_buffer.h 
                                event_buffer.c event_buffer.h oprof.c 
                                oprof.h oprofile_files.c 
                                oprofile_stats.c oprofile_stats.h 
                                oprofilefs.c timer_int.c 
        linux/drivers/parisc: Tag: MaltaRef_2_6 Kconfig Makefile asp.c 
                              ccio-dma.c dino.c eisa.c eisa_eeprom.c 
                              gsc.c gsc.h hppb.c iosapic.c 
                              iosapic_private.h lasi.c lba_pci.c led.c 
                              power.c sba_iommu.c superio.c wax.c 
        linux/drivers/parport: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                               daisy.c ieee1284.c parport_arc.c 
                               parport_cs.c parport_gsc.c parport_pc.c 
                               parport_serial.c parport_sunbpp.c probe.c 
                               procfs.c share.c 
        linux/drivers/pci: Tag: MaltaRef_2_6 Kconfig Makefile access.c 
                           bus.c gen-devlist.c hotplug.c msi.c msi.h 
                           pci-driver.c pci-sysfs.c pci.c pci.h pci.ids 
                           probe.c proc.c quirks.c remove.c search.c 
                           setup-bus.c setup-irq.c setup-res.c syscall.c 
        linux/drivers/pci/hotplug: Tag: MaltaRef_2_6 Kconfig Makefile 
                                   acpiphp_core.c acpiphp_glue.c 
                                   acpiphp_ibm.c cpci_hotplug.h 
                                   cpci_hotplug_core.c 
                                   cpci_hotplug_pci.c cpcihp_generic.c 
                                   cpcihp_zt5550.c cpqphp.h 
                                   cpqphp_core.c cpqphp_ctrl.c 
                                   cpqphp_nvram.c cpqphp_nvram.h 
                                   cpqphp_pci.c fakephp.c ibmphp.h 
                                   ibmphp_core.c ibmphp_ebda.c 
                                   ibmphp_hpc.c ibmphp_pci.c 
                                   pci_hotplug.h pci_hotplug_core.c 
                                   pciehp.h pciehp_core.c pciehp_ctrl.c 
                                   pciehp_hpc.c pciehp_pci.c 
                                   pciehprm_acpi.c pcihp_skeleton.c 
                                   rpadlpar_core.c rpaphp.h 
                                   rpaphp_core.c rpaphp_pci.c 
                                   rpaphp_slot.c rpaphp_vio.c shpchp.h 
                                   shpchp_core.c shpchp_ctrl.c 
                                   shpchp_hpc.c shpchprm_acpi.c 
                                   shpchprm_legacy.c 
        linux/drivers/pcmcia: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                              Makefile au1000_db1x00.c au1000_generic.c 
                              au1000_generic.h au1000_pb1x00.c 
                              au1000_xxs1500.c cardbus.c cistpl.c cs.c 
                              cs_internal.h ds.c hd64465_ss.c i82092.c 
                              i82092aa.h i82365.c o2micro.h pd6729.c 
                              pd6729.h pxa2xx_base.c pxa2xx_lubbock.c 
                              pxa2xx_mainstone.c rsrc_mgr.c 
                              sa1100_generic.c sa1100_h3600.c 
                              sa1100_simpad.c sa1111_generic.c 
                              soc_common.c soc_common.h socket_sysfs.c 
                              tcic.c ti113x.h vrc4171_card.c 
                              vrc4173_cardu.c yenta_socket.c 
                              yenta_socket.h 
        linux/drivers/pnp: Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                           core.c interface.c manager.c quirks.c 
                           resource.c system.c 
        linux/drivers/pnp/isapnp: Tag: MaltaRef_2_6 Kconfig core.c 
        linux/drivers/pnp/pnpbios: Tag: MaltaRef_2_6 Kconfig bioscalls.c 
                                   core.c proc.c rsparser.c 
        linux/drivers/s390: Tag: MaltaRef_2_6 Kconfig s390mach.h 
        linux/drivers/s390/block: Tag: MaltaRef_2_6 dasd.c 
                                  dasd_3990_erp.c dasd_cmb.c 
                                  dasd_devmap.c dasd_diag.c dasd_eckd.c 
                                  dasd_eckd.h dasd_erp.c dasd_fba.c 
                                  dasd_genhd.c dasd_int.h dasd_ioctl.c 
                                  dasd_proc.c dcssblk.c xpram.c 
        linux/drivers/s390/char: Tag: MaltaRef_2_6 Makefile con3215.c 
                                 con3270.c keyboard.c raw3270.c sclp.c 
                                 sclp.h sclp_con.c sclp_cpi.c sclp_rw.c 
                                 sclp_rw.h sclp_tty.c sclp_vt220.c 
                                 tape_block.c tape_core.c tty3270.c 
        linux/drivers/s390/cio: Tag: MaltaRef_2_6 airq.c blacklist.c 
                                ccwgroup.c chsc.c chsc.h cio.c cio.h 
                                cmf.c css.c css.h device.c device_fsm.c 
                                device_id.c device_ops.c device_pgid.c 
                                qdio.c qdio.h 
        linux/drivers/s390/crypto: Tag: MaltaRef_2_6 Makefile 
                                   z90common.h z90crypt.h z90hardware.c 
                                   z90main.c 
        linux/drivers/s390/net: Tag: MaltaRef_2_6 Kconfig Makefile 
                                ctcdbug.h ctcmain.c ctctty.c cu3088.c 
                                cu3088.h iucv.c iucv.h lcs.c lcs.h 
                                netiucv.c qeth.h qeth_main.c qeth_mpc.h 
                                qeth_proc.c qeth_sys.c smsgiucv.c 
                                smsgiucv.h 
        linux/drivers/s390/scsi: Tag: MaltaRef_2_6 zfcp_aux.c zfcp_ccw.c 
                                 zfcp_def.h zfcp_erp.c zfcp_ext.h 
                                 zfcp_fsf.c zfcp_fsf.h zfcp_qdio.c 
                                 zfcp_scsi.c zfcp_sysfs_adapter.c 
                                 zfcp_sysfs_driver.c zfcp_sysfs_port.c 
                                 zfcp_sysfs_unit.c 
        linux/drivers/sbus: Tag: MaltaRef_2_6 .cvsignore dvma.c sbus.c 
        linux/drivers/sbus/audio: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/sbus/char: Tag: MaltaRef_2_6 .cvsignore aurora.c 
                                 bbc_envctrl.c bbc_i2c.c bpp.c 
                                 cpwatchdog.c display7seg.c envctrl.c 
                                 flash.c jsflash.c openprom.c 
                                 riowatchdog.c rtc.c vfc_dev.c 
        linux/drivers/scsi: Tag: MaltaRef_2_6 .cvsignore 3w-9xxx.c 
                            3w-9xxx.h 3w-xxxx.c 3w-xxxx.h 53c700.c 
                            53c700.h 53c7xx.c BusLogic.c BusLogic.h 
                            Kconfig Makefile NCR5380.c NCR5380.h 
                            NCR53C9x.c NCR53C9x.h NCR53c406a.c 
                            NCR_D700.c NCR_Q720.c advansys.c advansys.h 
                            aha152x.c aha1542.c aha1542.h aic7xxx_old.c 
                            ata_piix.c atari_NCR5380.c atari_scsi.c 
                            atp870u.c atp870u.h constants.c 
                            cpqfcTScontrol.c cpqfcTSinit.c 
                            cpqfcTSworker.c dc395x.c dec_esp.c 
                            dmx3191d.c dpt_i2o.c dpti.h dtc.c dtc.h 
                            eata.c eata_pio.c esp.c esp.h fd_mcs.c 
                            fdomain.c g_NCR5380.c gdth.c gdth.h 
                            gdth_proc.c gdth_proc.h hosts.c ibmmca.c 
                            ide-scsi.c imm.c in2000.c ipr.c ipr.h ips.c 
                            ips.h jazz_esp.c lasi700.c libata-core.c 
                            libata-scsi.c libata.h mac53c94.c mac_esp.c 
                            mac_scsi.c mca_53c9x.c megaraid.c mesh.c 
                            ncr53c8xx.c ncr53c8xx.h nsp32.c nsp32.h 
                            oktagon_esp.c osst.c osst.h pas16.c 
                            pci2000.c pluto.c ppa.c psi240i.c psi240i.h 
                            ql12160_fw.h ql1280_fw.h qla1280.c qla1280.h 
                            qlogicfas.c qlogicfc.c qlogicfc_asm.c 
                            qlogicisp.c qlogicpti.c qlogicpti.h 
                            sata_nv.c sata_promise.c sata_sil.c 
                            sata_sis.c sata_svw.c sata_sx4.c sata_via.c 
                            sata_vsc.c scsi.c scsi.h scsi_debug.c 
                            scsi_devinfo.c scsi_error.c scsi_ioctl.c 
                            scsi_lib.c scsi_module.c scsi_priv.h 
                            scsi_scan.c scsi_sysfs.c scsi_transport_fc.c 
                            scsi_transport_spi.c scsicam.c sd.c 
                            seagate.c sg.c sgiwd93.c sim710.c sr.c 
                            sr_ioctl.c st.c st.h sun3_NCR5380.c 
                            sun3_scsi.c sun3_scsi_vme.c sun3x_esp.c 
                            sym53c416.c sym53c8xx_comm.h 
                            sym53c8xx_defs.h t128.c t128.h tmscsim.c 
                            tmscsim.h u14-34f.c ultrastor.c wd33c93.c 
                            wd33c93.h wd7000.c zalon.c 
        linux/drivers/scsi/aacraid: Tag: MaltaRef_2_6 README aachba.c 
                                    aacraid.h commctrl.c comminit.c 
                                    commsup.c linit.c rkt.c rx.c sa.c 
        linux/drivers/scsi/aic7xxx: Tag: MaltaRef_2_6 .cvsignore 
                                    Kconfig.aic79xx Kconfig.aic7xxx 
                                    aic7770_osm.c aic79xx.h aic79xx.reg 
                                    aic79xx_core.c aic79xx_inline.h 
                                    aic79xx_osm.c aic79xx_osm.h 
                                    aic79xx_osm_pci.c aic79xx_pci.c 
                                    aic7xxx.h aic7xxx_core.c 
                                    aic7xxx_osm.c aic7xxx_osm.h 
                                    aic7xxx_osm_pci.c aic7xxx_pci.c 
                                    aic7xxx_proc.c aiclib.c aiclib.h 
                                    cam.h 
        linux/drivers/scsi/aic7xxx/aicasm: Tag: MaltaRef_2_6 Makefile 
        linux/drivers/scsi/aic7xxx_old: Tag: MaltaRef_2_6 aic7xxx_proc.c 
        linux/drivers/scsi/arm: Tag: MaltaRef_2_6 acornscsi.c arxescsi.c 
                                cumana_1.c cumana_2.c ecoscsi.c eesox.c 
                                fas216.c fas216.h oak.c powertec.c 
                                scsi.h 
        linux/drivers/scsi/dpt: Tag: MaltaRef_2_6 dpti_ioctl.h 
        linux/drivers/scsi/pcmcia: Tag: MaltaRef_2_6 .cvsignore 
                                   aha152x_stub.c fdomain_stub.c 
                                   nsp_cs.c qlogic_stub.c sym53c500_cs.c 
        linux/drivers/scsi/qla2xxx: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                    Makefile ql2100.c ql2200.c ql2300.c 
                                    ql2300_fw.c ql2322.c ql2322_fw.c 
                                    ql6312.c ql6312_fw.c qla_dbg.c 
                                    qla_def.h qla_devtbl.h qla_gbl.h 
                                    qla_init.c qla_inline.h qla_iocb.c 
                                    qla_isr.c qla_mbx.c qla_os.c 
                                    qla_rscn.c qla_sup.c qla_version.h 
        linux/drivers/scsi/sym53c8xx_2: Tag: MaltaRef_2_6 .cvsignore 
                                        Makefile sym53c8xx.h sym_defs.h 
                                        sym_fw.c sym_fw.h sym_fw1.h 
                                        sym_fw2.h sym_glue.c sym_glue.h 
                                        sym_hipd.c sym_hipd.h 
                                        sym_malloc.c sym_misc.h 
                                        sym_nvram.c sym_nvram.h 
        linux/drivers/serial: Tag: MaltaRef_2_6 .cvsignore 21285.c 
                              68328serial.c 68360serial.c 8250.c 8250.h 
                              8250_acorn.c 8250_acpi.c 8250_gsc.c 
                              8250_pci.c 8250_pnp.c Kconfig Makefile 
                              amba-pl010.c amba-pl011.c au1x00_uart.c 
                              bast_sio.c clps711x.c dz.c icom.c icom.h 
                              ip22zilog.c mcfserial.c mpc52xx_uart.c 
                              mux.c pmac_zilog.c pmac_zilog.h pxa.c 
                              s3c2410.c sa1100.c serial_core.c 
                              serial_cs.c serial_lh7a40x.c sh-sci.c 
                              sh-sci.h sn_console.c sunsab.c sunsab.h 
                              sunsu.c sunzilog.c uart00.c 
        linux/drivers/serial/cpm_uart: Tag: MaltaRef_2_6 cpm_uart.h 
                                       cpm_uart_core.c cpm_uart_cpm1.c 
                                       cpm_uart_cpm2.c 
        linux/drivers/tc: Tag: MaltaRef_2_6 .cvsignore zs.c 
        linux/drivers/telephony: Tag: MaltaRef_2_6 .cvsignore ixj.c 
                                 ixj.h ixj_pcmcia.c 
        linux/drivers/usb: Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                           README usb-skeleton.c 
        linux/drivers/usb/class: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                 audio.c bluetty.c cdc-acm.c cdc-acm.h 
                                 usb-midi.c usb-midi.h usblp.c 
        linux/drivers/usb/core: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                buffer.c config.c devices.c devio.c 
                                file.c hcd-pci.c hcd.c hcd.h hub.c hub.h 
                                inode.c message.c sysfs.c urb.c usb.c 
                                usb.h 
        linux/drivers/usb/gadget: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                  Makefile config.c dummy_hcd.c 
                                  epautoconf.c ether.c file_storage.c 
                                  gadget_chips.h goku_udc.c goku_udc.h 
                                  inode.c net2280.c net2280.h 
                                  pxa2xx_udc.c pxa2xx_udc.h rndis.c 
                                  rndis.h serial.c usbstring.c zero.c 
        linux/drivers/usb/host: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                Makefile ehci-dbg.c ehci-hcd.c 
                                ehci-hub.c ehci-mem.c ehci-q.c 
                                ehci-sched.c ehci.h ohci-dbg.c 
                                ohci-hcd.c ohci-hub.c ohci-lh7a404.c 
                                ohci-mem.c ohci-omap.c ohci-pci.c 
                                ohci-q.c ohci-sa1111.c ohci.h 
                                uhci-debug.c uhci-hcd.c uhci-hcd.h 
                                uhci-hub.c 
        linux/drivers/usb/image: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                 Makefile mdc800.c microtek.c microtek.h 
        linux/drivers/usb/input: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                 aiptek.c ati_remote.c hid-core.c 
                                 hid-debug.h hid-ff.c hid-input.c 
                                 hid-lgff.c hid.h hiddev.c kbtab.c 
                                 mtouchusb.c pid.c pid.h powermate.c 
                                 touchkitusb.c usbkbd.c usbmouse.c 
                                 wacom.c xpad.c 
        linux/drivers/usb/media: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                 Makefile dabusb.c ibmcam.c konicawc.c 
                                 ov511.c se401.c sn9c102.h 
                                 sn9c102_core.c sn9c102_pas106b.c 
                                 sn9c102_pas202bcb.c sn9c102_sensor.h 
                                 sn9c102_tas5110c1b.c 
                                 sn9c102_tas5130d1b.c stv680.c 
                                 ultracam.c usbvideo.c vicam.c w9968cf.c 
                                 w9968cf.h 
        linux/drivers/usb/misc: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                Makefile auerswald.c cytherm.c emi26.c 
                                emi62.c legousbtower.c phidgetservo.c 
                                rio500.c usblcd.c usbled.c usbtest.c 
                                uss720.c 
        linux/drivers/usb/net: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                               Makefile catc.c kaweth.c kawethfw.h 
                               pegasus.c pegasus.h rtl8150.c usbnet.c 
        linux/drivers/usb/serial: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                  Makefile belkin_sa.c bus.c console.c 
                                  cyberjack.c digi_acceleport.c empeg.c 
                                  ezusb.c ftdi_sio.c ftdi_sio.h 
                                  generic.c io_edgeport.c io_edgeport.h 
                                  io_fw_boot.h io_fw_boot2.h 
                                  io_fw_down.h io_fw_down2.h 
                                  io_fw_down3.h io_tables.h io_ti.c 
                                  io_usbvend.h ipaq.c ipaq.h ir-usb.c 
                                  keyspan.c keyspan.h keyspan_pda.c 
                                  keyspan_usa90msg.h kl5kusb105.c 
                                  kobil_sct.c mct_u232.c omninet.c 
                                  pl2303.c pl2303.h safe_serial.c 
                                  usb-serial.c usb-serial.h visor.c 
                                  visor.h whiteheat.c 
        linux/drivers/usb/storage: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                   Makefile datafab.c debug.c debug.h 
                                   dpcm.c freecom.c initializers.c 
                                   isd200.c jumpshot.c protocol.c 
                                   protocol.h scsiglue.c scsiglue.h 
                                   sddr09.c sddr55.c shuttle_usbat.c 
                                   shuttle_usbat.h transport.c 
                                   transport.h unusual_devs.h usb.c 
                                   usb.h 
        linux/drivers/video: Tag: MaltaRef_2_6 .cvsignore 68328fb.c 
                             Kconfig Makefile acornfb.c amba-clcd.c 
                             amifb.c asiliantfb.c au1100fb.c au1100fb.h 
                             bw2.c cfbcopyarea.c cfbfillrect.c 
                             cfbimgblt.c cg14.c cg3.c cg6.c chipsfb.c 
                             cirrusfb.c clps711xfb.c controlfb.c 
                             cyber2000fb.c cyber2000fb.h dnfb.c 
                             epson1355fb.c epson1356fb.c fbcmap.c 
                             fbmem.c fbmon.c fbsysfs.c ffb.c fm2fb.c 
                             g364fb.c gbefb.c hgafb.c hitfb.c hpfb.c 
                             igafb.c imsttfb.c leo.c macfb.c macmodes.c 
                             maxinefb.c modedb.c neofb.c offb.c p9100.c 
                             platinumfb.c pm2fb.c pm3fb.c pmag-ba-fb.c 
                             pmagb-b-fb.c pvr2fb.c pxafb.c q40fb.c 
                             radeonfb.c sa1100fb.c sbuslib.c sgivwfb.c 
                             skeletonfb.c softcursor.c sstfb.c stifb.c 
                             sun3fb.c tcx.c tdfxfb.c tgafb.c tridentfb.c 
                             tx3912fb.c valkyriefb.c vesafb.c vfb.c 
                             vga16fb.c vgastate.c 
        linux/drivers/video/aty: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                 ati_ids.h aty128fb.c atyfb.h 
                                 atyfb_base.c mach64_accel.c mach64_ct.c 
                                 mach64_cursor.c mach64_gx.c 
                                 radeon_accel.c radeon_base.c 
                                 radeon_i2c.c radeon_monitor.c 
                                 radeon_pm.c radeonfb.h xlinit.c 
        linux/drivers/video/console: Tag: MaltaRef_2_6 .cvsignore 
                                     Kconfig Makefile dummycon.c fbcon.c 
                                     fbcon.h font_6x11.c mdacon.c 
                                     newport_con.c promcon.c sticon.c 
                                     sticore.c vgacon.c 
        linux/drivers/video/i810: Tag: MaltaRef_2_6 i810.h i810_accel.c 
                                  i810_gtf.c i810_main.c i810_main.h 
        linux/drivers/video/kyro: Tag: MaltaRef_2_6 STG4000InitDevice.c 
                                  STG4000Interface.h 
                                  STG4000OverlayDevice.c STG4000Ramdac.c 
                                  STG4000Reg.h STG4000VTG.c fbdev.c 
        linux/drivers/video/logo: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                  Makefile logo.c 
        linux/drivers/video/matrox: Tag: MaltaRef_2_6 .cvsignore 
                                    Makefile matroxfb_DAC1064.c 
                                    matroxfb_DAC1064.h matroxfb_accel.c 
                                    matroxfb_base.c matroxfb_base.h 
                                    matroxfb_crtc2.c matroxfb_crtc2.h 
                                    matroxfb_g450.h matroxfb_misc.c 
        linux/drivers/video/riva: Tag: MaltaRef_2_6 .cvsignore fbdev.c 
                                  nv_driver.c riva_hw.c riva_hw.h 
                                  rivafb-i2c.c rivafb.h 
        linux/drivers/video/sis: Tag: MaltaRef_2_6 .cvsignore 300vtbl.h 
                                 310vtbl.h init.c init.h init301.c 
                                 init301.h initdef.h oem300.h oem310.h 
                                 osdef.h sis.h sis_main.c sis_main.h 
                                 vgatypes.h vstruct.h 
        linux/drivers/w1: Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                          dscore.c dscore.h matrox_w1.c w1.c w1.h 
                          w1_family.c w1_int.c w1_int.h w1_io.c w1_io.h 
                          w1_netlink.c w1_smem.c w1_therm.c 
        linux/drivers/zorro: Tag: MaltaRef_2_6 .cvsignore zorro.c 
        linux/fs       : Tag: MaltaRef_2_6 .cvsignore Kconfig 
                         Kconfig.binfmt Makefile aio.c attr.c 
                         bad_inode.c binfmt_aout.c binfmt_elf.c 
                         binfmt_em86.c binfmt_flat.c binfmt_misc.c 
                         binfmt_script.c binfmt_som.c bio.c block_dev.c 
                         buffer.c char_dev.c compat.c compat_ioctl.c 
                         dcache.c dcookies.c direct-io.c dquot.c 
                         eventpoll.c exec.c fcntl.c fifo.c file.c 
                         file_table.c filesystems.c fs-writeback.c 
                         inode.c ioctl.c libfs.c locks.c mbcache.c 
                         mpage.c namei.c namespace.c nfsctl.c open.c 
                         pipe.c posix_acl.c quota.c quota_v1.c 
                         quota_v2.c read_write.c readdir.c select.c 
                         seq_file.c stat.c super.c xattr.c 
        linux/fs/adfs  : Tag: MaltaRef_2_6 .cvsignore adfs.h dir.c 
                         dir_f.c dir_fplus.h inode.c map.c super.c 
        linux/fs/affs  : Tag: MaltaRef_2_6 .cvsignore amigaffs.c 
                         bitmap.c dir.c file.c inode.c namei.c super.c 
                         symlink.c 
        linux/fs/afs   : Tag: MaltaRef_2_6 .cvsignore cell.c cmservice.c 
                         dir.c file.c fsclient.c inode.c kafsasyncd.c 
                         kafstimod.c main.c mntpt.c server.c types.h 
                         vlclient.c vlclient.h vlocation.c vnode.c 
                         volume.c volume.h 
        linux/fs/autofs: Tag: MaltaRef_2_6 .cvsignore inode.c root.c 
        linux/fs/autofs4: Tag: MaltaRef_2_6 .cvsignore autofs_i.h 
                          expire.c inode.c root.c waitq.c 
        linux/fs/befs  : Tag: MaltaRef_2_6 .cvsignore debug.c linuxvfs.c 
        linux/fs/bfs   : Tag: MaltaRef_2_6 .cvsignore dir.c inode.c 
        linux/fs/cifs  : Tag: MaltaRef_2_6 .cvsignore AUTHORS CHANGES 
                         Makefile README TODO asn1.c cifs_debug.c 
                         cifs_fs_sb.h cifs_unicode.c cifsencrypt.c 
                         cifsfs.c cifsfs.h cifsglob.h cifspdu.h 
                         cifsproto.h cifssmb.c connect.c dir.c fcntl.c 
                         file.c inode.c link.c md4.c misc.c netmisc.c 
                         ntlmssp.h smbdes.c smbencrypt.c smberr.h 
                         transport.c xattr.c 
        linux/fs/coda  : Tag: MaltaRef_2_6 .cvsignore cnode.c 
                         coda_linux.c dir.c file.c inode.c psdev.c 
                         sysctl.c upcall.c 
        linux/fs/cramfs: Tag: MaltaRef_2_6 .cvsignore inode.c 
        linux/fs/cramfs/inflate: Tag: MaltaRef_2_6 .cvsignore 
        linux/fs/devfs : Tag: MaltaRef_2_6 .cvsignore base.c util.c 
        linux/fs/devpts: Tag: MaltaRef_2_6 .cvsignore Makefile inode.c 
                         xattr_security.c 
        linux/fs/driverfs: Tag: MaltaRef_2_6 .cvsignore 
        linux/fs/efs   : Tag: MaltaRef_2_6 .cvsignore inode.c namei.c 
                         super.c 
        linux/fs/exportfs: Tag: MaltaRef_2_6 .cvsignore expfs.c 
        linux/fs/ext2  : Tag: MaltaRef_2_6 .cvsignore acl.c acl.h 
                         balloc.c dir.c ext2.h file.c ialloc.c inode.c 
                         ioctl.c namei.c super.c symlink.c xattr.c 
                         xattr.h xattr_security.c xattr_trusted.c 
                         xattr_user.c 
        linux/fs/ext3  : Tag: MaltaRef_2_6 .cvsignore Makefile acl.c 
                         acl.h balloc.c dir.c file.c fsync.c hash.c 
                         ialloc.c inode.c ioctl.c namei.c super.c 
                         symlink.c xattr.c xattr.h xattr_security.c 
                         xattr_trusted.c xattr_user.c 
        linux/fs/fat   : Tag: MaltaRef_2_6 .cvsignore Makefile cache.c 
                         dir.c file.c inode.c misc.c 
        linux/fs/freevxfs: Tag: MaltaRef_2_6 .cvsignore vxfs_extern.h 
                           vxfs_inode.c vxfs_super.c 
        linux/fs/hfs   : Tag: MaltaRef_2_6 .cvsignore Makefile bfind.c 
                         bitmap.c bnode.c brec.c btree.c btree.h 
                         catalog.c dir.c extent.c hfs.h hfs_fs.h inode.c 
                         mdb.c part_tbl.c super.c 
        linux/fs/hfsplus: Tag: MaltaRef_2_6 bfind.c bitmap.c bnode.c 
                          brec.c btree.c catalog.c dir.c extents.c 
                          hfsplus_fs.h hfsplus_raw.h inode.c ioctl.c 
                          options.c part_tbl.c super.c tables.c 
                          unicode.c wrapper.c 
        linux/fs/hpfs  : Tag: MaltaRef_2_6 .cvsignore alloc.c dentry.c 
                         dnode.c file.c hpfs.h hpfs_fn.h inode.c name.c 
                         super.c 
        linux/fs/hugetlbfs: Tag: MaltaRef_2_6 inode.c 
        linux/fs/intermezzo: Tag: MaltaRef_2_6 .cvsignore 
        linux/fs/isofs : Tag: MaltaRef_2_6 .cvsignore compress.c dir.c 
                         export.c inode.c joliet.c namei.c rock.c util.c 
        linux/fs/jbd   : Tag: MaltaRef_2_6 .cvsignore checkpoint.c 
                         commit.c journal.c recovery.c revoke.c 
                         transaction.c 
        linux/fs/jffs  : Tag: MaltaRef_2_6 .cvsignore inode-v23.c 
                         intrep.c intrep.h jffs_fm.c jffs_fm.h 
        linux/fs/jffs2 : Tag: MaltaRef_2_6 .cvsignore Makefile 
                         README.Locking background.c build.c compr.c 
                         compr.h compr_rtime.c compr_rubin.c 
                         compr_zlib.c dir.c erase.c file.c fs.c gc.c 
                         ioctl.c malloc.c nodelist.c nodelist.h 
                         nodemgmt.c os-linux.h pushpull.h read.c 
                         readinode.c scan.c super.c symlink.c wbuf.c 
                         write.c writev.c 
        linux/fs/jfs   : Tag: MaltaRef_2_6 .cvsignore acl.c inode.c 
                         jfs_dinode.h jfs_dmap.c jfs_dmap.h jfs_dtree.c 
                         jfs_dtree.h jfs_extent.c jfs_imap.c jfs_imap.h 
                         jfs_incore.h jfs_inode.c jfs_logmgr.c 
                         jfs_logmgr.h jfs_metapage.c jfs_metapage.h 
                         jfs_mount.c jfs_superblock.h jfs_txnmgr.c 
                         jfs_types.h jfs_umount.c jfs_unicode.c 
                         jfs_unicode.h jfs_xattr.h jfs_xtree.c 
                         jfs_xtree.h namei.c resize.c super.c xattr.c 
        linux/fs/lockd : Tag: MaltaRef_2_6 .cvsignore Makefile 
                         clntproc.c host.c mon.c svc.c svc4proc.c 
                         svclock.c svcproc.c xdr.c xdr4.c 
        linux/fs/minix : Tag: MaltaRef_2_6 .cvsignore bitmap.c dir.c 
                         inode.c itree_common.c namei.c 
        linux/fs/msdos : Tag: MaltaRef_2_6 .cvsignore namei.c 
        linux/fs/ncpfs : Tag: MaltaRef_2_6 .cvsignore dir.c file.c 
                         inode.c ioctl.c mmap.c ncplib_kernel.c 
                         ncplib_kernel.h ncpsign_kernel.c sock.c 
                         symlink.c 
        linux/fs/nfs   : Tag: MaltaRef_2_6 .cvsignore callback.c dir.c 
                         direct.c file.c idmap.c inode.c mount_clnt.c 
                         nfs2xdr.c nfs3proc.c nfs3xdr.c nfs4proc.c 
                         nfs4state.c nfs4xdr.c nfsroot.c proc.c read.c 
                         symlink.c unlink.c write.c 
        linux/fs/nfsd  : Tag: MaltaRef_2_6 .cvsignore Makefile export.c 
                         lockd.c nfs3proc.c nfs3xdr.c nfs4acl.c 
                         nfs4proc.c nfs4state.c nfs4xdr.c nfscache.c 
                         nfsctl.c nfsfh.c nfsproc.c nfssvc.c vfs.c 
        linux/fs/nls   : Tag: MaltaRef_2_6 .cvsignore nls_ascii.c 
                         nls_base.c nls_cp932.c nls_cp936.c nls_cp949.c 
                         nls_cp950.c 
        linux/fs/ntfs  : Tag: MaltaRef_2_6 .cvsignore ChangeLog Makefile 
                         aops.c attrib.c attrib.h bitmap.c collate.c 
                         collate.h compress.c debug.c debug.h dir.c 
                         dir.h endian.h file.c index.c index.h inode.c 
                         inode.h layout.h lcnalloc.c lcnalloc.h 
                         logfile.c logfile.h malloc.h mft.c mft.h mst.c 
                         namei.c ntfs.h quota.c super.c time.h types.h 
                         unistr.c upcase.c volume.h 
        linux/fs/openpromfs: Tag: MaltaRef_2_6 .cvsignore inode.c 
        linux/fs/partitions: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                             acorn.c amiga.c atari.h check.c devfs.c 
                             efi.c efi.h ibm.c ldm.c ldm.h mac.h msdos.c 
                             osf.c sgi.c sun.c 
        linux/fs/proc  : Tag: MaltaRef_2_6 .cvsignore Makefile array.c 
                         base.c generic.c inode.c kcore.c proc_devtree.c 
                         proc_misc.c proc_tty.c root.c task_mmu.c 
                         task_nommu.c 
        linux/fs/qnx4  : Tag: MaltaRef_2_6 .cvsignore bitmap.c inode.c 
                         namei.c truncate.c 
        linux/fs/ramfs : Tag: MaltaRef_2_6 .cvsignore inode.c 
        linux/fs/reiserfs: Tag: MaltaRef_2_6 .cvsignore bitmap.c dir.c 
                           do_balan.c file.c fix_node.c ibalance.c 
                           inode.c ioctl.c item_ops.c journal.c namei.c 
                           objectid.c prints.c procfs.c resize.c stree.c 
                           super.c tail_conversion.c xattr.c xattr_acl.c 
                           xattr_security.c xattr_trusted.c xattr_user.c 
        linux/fs/romfs : Tag: MaltaRef_2_6 .cvsignore inode.c 
        linux/fs/smbfs : Tag: MaltaRef_2_6 .cvsignore file.c inode.c 
                         proc.c proto.h request.c smbiod.c 
        linux/fs/sysfs : Tag: MaltaRef_2_6 .cvsignore bin.c dir.c file.c 
                         group.c inode.c mount.c symlink.c sysfs.h 
        linux/fs/sysv  : Tag: MaltaRef_2_6 .cvsignore CHANGES ChangeLog 
                         balloc.c dir.c ialloc.c inode.c itree.c namei.c 
                         super.c sysv.h 
        linux/fs/udf   : Tag: MaltaRef_2_6 .cvsignore balloc.c dir.c 
                         directory.c ecma_167.h file.c fsync.c ialloc.c 
                         inode.c lowlevel.c misc.c namei.c osta_udf.h 
                         partition.c super.c truncate.c udfdecl.h 
                         udfend.h udftime.c 
        linux/fs/ufs   : Tag: MaltaRef_2_6 .cvsignore balloc.c 
                         cylinder.c dir.c ialloc.c inode.c namei.c 
                         super.c swab.h truncate.c util.c util.h 
        linux/fs/umsdos: Tag: MaltaRef_2_6 .cvsignore 
        linux/fs/vfat  : Tag: MaltaRef_2_6 .cvsignore namei.c 
        linux/fs/xfs   : Tag: MaltaRef_2_6 .cvsignore Makefile xfs_acl.c 
                         xfs_alloc.c xfs_alloc_btree.c xfs_arch.h 
                         xfs_attr.c xfs_attr_leaf.c xfs_bmap.c 
                         xfs_bmap_btree.c xfs_bmap_btree.h xfs_btree.c 
                         xfs_clnt.h xfs_da_btree.c xfs_dfrag.c 
                         xfs_dinode.h xfs_dir.c xfs_dir2.c 
                         xfs_dir2_block.c xfs_dir2_block.h 
                         xfs_dir2_data.c xfs_dir2_data.h xfs_dir2_leaf.c 
                         xfs_dir2_leaf.h xfs_dir2_node.c xfs_dir2_sf.c 
                         xfs_dir2_sf.h xfs_dir_leaf.c xfs_dir_leaf.h 
                         xfs_dir_sf.h xfs_fs.h xfs_fsops.c xfs_ialloc.c 
                         xfs_ialloc_btree.c xfs_ialloc_btree.h 
                         xfs_iget.c xfs_inode.c xfs_inode.h 
                         xfs_inode_item.c xfs_iomap.c xfs_iomap.h 
                         xfs_itable.c xfs_log.c xfs_log.h xfs_log_priv.h 
                         xfs_log_recover.c xfs_macros.c xfs_mount.c 
                         xfs_mount.h xfs_rename.c xfs_rtalloc.c 
                         xfs_trans.c xfs_trans.h xfs_trans_inode.c 
                         xfs_types.h xfs_utils.c xfs_utils.h 
                         xfs_vfsops.c xfs_vnodeops.c 
        linux/fs/xfs/linux: Tag: MaltaRef_2_6 .cvsignore 
        linux/fs/xfs/linux-2.6: Tag: MaltaRef_2_6 .cvsignore kmem.c 
                                kmem.h xfs_aops.c xfs_buf.c xfs_buf.h 
                                xfs_file.c xfs_globals.c xfs_ioctl.c 
                                xfs_ioctl32.c xfs_ioctl32.h xfs_iops.c 
                                xfs_linux.h xfs_lrw.c xfs_lrw.h 
                                xfs_stats.h xfs_super.c xfs_super.h 
                                xfs_sysctl.c xfs_sysctl.h xfs_vfs.c 
                                xfs_vfs.h xfs_vnode.c xfs_vnode.h 
        linux/fs/xfs/pagebuf: Tag: MaltaRef_2_6 .cvsignore 
        linux/fs/xfs/quota: Tag: MaltaRef_2_6 .cvsignore xfs_dquot.c 
                            xfs_dquot.h xfs_qm.c xfs_qm.h xfs_qm_bhv.c 
                            xfs_qm_syscalls.c xfs_quota_priv.h 
                            xfs_trans_dquot.c 
        linux/fs/xfs/support: Tag: MaltaRef_2_6 .cvsignore debug.c 
        linux/include/acpi: Tag: MaltaRef_2_6 acconfig.h acdebug.h 
                            acdisasm.h acdispat.h acevents.h acexcep.h 
                            acglobal.h achware.h acinterp.h aclocal.h 
                            acmacros.h acnamesp.h acobject.h acoutput.h 
                            acparser.h acpi.h acpi_bus.h acpi_drivers.h 
                            acpiosxf.h acpixf.h acresrc.h acstruct.h 
                            actables.h actbl.h actbl1.h actbl2.h 
                            actypes.h acutils.h amlcode.h amlresrc.h 
                            processor.h 
        linux/include/acpi/platform: Tag: MaltaRef_2_6 acenv.h acgcc.h 
                                     aclinux.h 
        linux/include/asm-alpha: Tag: MaltaRef_2_6 a.out.h bitops.h 
                                 bug.h cache.h cacheflush.h compiler.h 
                                 core_apecs.h core_cia.h core_irongate.h 
                                 core_lca.h core_marvel.h core_mcpcia.h 
                                 core_polaris.h core_t2.h core_titan.h 
                                 core_tsunami.h core_wildfire.h 
                                 dma-mapping.h errno.h hardirq.h io.h 
                                 jensen.h machvec.h mmu_context.h 
                                 mmzone.h page.h pci.h pgalloc.h 
                                 pgtable.h processor.h ptrace.h 
                                 resource.h semaphore.h siginfo.h 
                                 signal.h socket.h spinlock.h string.h 
                                 sysinfo.h system.h thread_info.h 
                                 timex.h tlbflush.h topology.h uaccess.h 
                                 unaligned.h unistd.h vga.h 
        linux/include/asm-arm: Tag: MaltaRef_2_6 apm.h atomic.h bitops.h 
                               bug.h cacheflush.h checksum.h delay.h 
                               dma-mapping.h domain.h ecard.h elf.h 
                               hardirq.h ide.h io.h ipc.h irq.h memory.h 
                               mmu_context.h numnodes.h page.h param.h 
                               pgalloc.h pgtable.h posix_types.h 
                               processor.h procinfo.h ptrace.h 
                               resource.h semaphore.h serial.h setup.h 
                               signal.h smp.h socket.h spinlock.h 
                               string.h system.h thread_info.h timex.h 
                               tlb.h tlbflush.h uaccess.h unistd.h 
        linux/include/asm-arm/arch-cl7500: Tag: MaltaRef_2_6 hardware.h 
                                           uncompress.h vmalloc.h 
        linux/include/asm-arm/arch-clps711x: Tag: MaltaRef_2_6 io.h 
                                             time.h uncompress.h 
                                             vmalloc.h 
        linux/include/asm-arm/arch-ebsa110: Tag: MaltaRef_2_6 io.h 
                                            param.h uncompress.h 
                                            vmalloc.h 
        linux/include/asm-arm/arch-ebsa285: Tag: MaltaRef_2_6 io.h 
                                            uncompress.h vmalloc.h 
        linux/include/asm-arm/arch-epxa10db: Tag: MaltaRef_2_6 io.h 
                                             uncompress.h vmalloc.h 
        linux/include/asm-arm/arch-imx: Tag: MaltaRef_2_6 hardware.h 
                                        imx-regs.h io.h uncompress.h 
                                        vmalloc.h 
        linux/include/asm-arm/arch-integrator: Tag: MaltaRef_2_6 cm.h 
                                               io.h lm.h platform.h 
                                               uncompress.h vmalloc.h 
        linux/include/asm-arm/arch-iop3xx: Tag: MaltaRef_2_6 dma.h 
                                           hardware.h io.h iop321-irqs.h 
                                           iop321.h iq80321.h irqs.h 
                                           memory.h system.h timex.h 
                                           uncompress.h vmalloc.h 
        linux/include/asm-arm/arch-ixp4xx: Tag: MaltaRef_2_6 hardware.h 
                                           io.h irqs.h ixp4xx-regs.h 
                                           platform.h system.h 
                                           uncompress.h vmalloc.h 
        linux/include/asm-arm/arch-l7200: Tag: MaltaRef_2_6 io.h param.h 
                                          time.h uncompress.h vmalloc.h 
        linux/include/asm-arm/arch-lh7a40x: Tag: MaltaRef_2_6 io.h 
                                            memory.h timex.h 
                                            uncompress.h vmalloc.h 
        linux/include/asm-arm/arch-omap: Tag: MaltaRef_2_6 board-h2.h 
                                         board-h3.h board-h4.h 
                                         board-innovator.h board-osk.h 
                                         board.h dma.h fpga.h gpio.h 
                                         hardware.h io.h irqs.h mcbsp.h 
                                         memory.h mux.h param.h pm.h 
                                         timex.h uncompress.h vmalloc.h 
        linux/include/asm-arm/arch-pxa: Tag: MaltaRef_2_6 hardware.h 
                                        idp.h io.h irqs.h memory.h 
                                        pxa-regs.h system.h uncompress.h 
                                        vmalloc.h 
        linux/include/asm-arm/arch-rpc: Tag: MaltaRef_2_6 hardware.h 
                                        io.h uncompress.h vmalloc.h 
        linux/include/asm-arm/arch-s3c2410: Tag: MaltaRef_2_6 
                                            bast-cpld.h bast-irq.h dma.h 
                                            hardware.h io.h irqs.h map.h 
                                            memory.h param.h 
                                            regs-clock.h regs-gpio.h 
                                            regs-iis.h regs-irq.h 
                                            regs-lcd.h regs-rtc.h 
                                            regs-serial.h regs-timer.h 
                                            regs-watchdog.h system.h 
                                            timex.h uncompress.h 
                                            vmalloc.h vr1000-map.h 
        linux/include/asm-arm/arch-sa1100: Tag: MaltaRef_2_6 collie.h 
                                           ide.h io.h irqs.h system.h 
                                           timex.h uncompress.h 
                                           vmalloc.h 
        linux/include/asm-arm/arch-shark: Tag: MaltaRef_2_6 io.h 
                                          uncompress.h vmalloc.h 
        linux/include/asm-arm/arch-versatile: Tag: MaltaRef_2_6 
                                              hardware.h io.h platform.h 
                                              timex.h uncompress.h 
                                              vmalloc.h 
        linux/include/asm-arm/hardware: Tag: MaltaRef_2_6 amba.h 
                                        amba_clcd.h clock.h locomo.h 
                                        sa1111.h 
        linux/include/asm-arm/mach: Tag: MaltaRef_2_6 arch.h flash.h 
                                    irq.h map.h mmc.h pci.h time.h 
        linux/include/asm-arm26: Tag: MaltaRef_2_6 atomic.h bitops.h 
                                 bug.h cacheflush.h checksum.h 
                                 constants.h hardirq.h hardware.h io.h 
                                 ipc.h irqchip.h pgtable.h posix_types.h 
                                 processor.h ptrace.h resource.h 
                                 semaphore.h setup.h signal.h socket.h 
                                 system.h thread_info.h timex.h tlb.h 
                                 uaccess.h unistd.h 
        linux/include/asm-cris: Tag: MaltaRef_2_6 cacheflush.h hardirq.h 
                                io.h ipc.h page.h pgalloc.h pgtable.h 
                                resource.h semaphore.h signal.h socket.h 
                                system.h thread_info.h uaccess.h 
                                unistd.h 
        linux/include/asm-cris/arch-v10: Tag: MaltaRef_2_6 ptrace.h 
        linux/include/asm-generic: Tag: MaltaRef_2_6 bug.h 
                                   dma-mapping-broken.h dma-mapping.h 
                                   errno.h ide_iops.h local.h pci.h 
                                   pgtable.h sections.h siginfo.h tlb.h 
                                   topology.h unaligned.h vmlinux.lds.h 
        linux/include/asm-h8300: Tag: MaltaRef_2_6 bitops.h cacheflush.h 
                                 delay.h hardirq.h io.h ipc.h mmu.h 
                                 page.h pgtable.h processor.h ptrace.h 
                                 resource.h semaphore.h sigcontext.h 
                                 signal.h socket.h system.h 
                                 thread_info.h timex.h uaccess.h 
                                 ucontext.h unistd.h 
        linux/include/asm-i386: Tag: MaltaRef_2_6 acpi.h agp.h apic.h 
                                atomic.h bitops.h bug.h cacheflush.h 
                                checksum.h cpu.h cpufeature.h desc.h 
                                dma-mapping.h e820.h elf.h fixmap.h 
                                floppy.h hardirq.h highmem.h hpet.h 
                                hw_irq.h i387.h io.h io_apic.h ipc.h 
                                irq.h linkage.h mc146818rtc.h mca.h 
                                mmzone.h module.h mpspec.h msr.h node.h 
                                page.h pgalloc.h pgtable-2level-defs.h 
                                pgtable-2level.h pgtable-3level.h 
                                pgtable.h processor.h ptrace.h 
                                resource.h rwlock.h segment.h 
                                semaphore.h setup.h signal.h smp.h 
                                socket.h spinlock.h string.h suspend.h 
                                system.h thread_info.h timer.h timex.h 
                                topology.h uaccess.h unistd.h 
        linux/include/asm-i386/mach-bigsmp: Tag: MaltaRef_2_6 mach_ipi.h 
        linux/include/asm-i386/mach-default: Tag: MaltaRef_2_6 
                                             do_timer.h mach_traps.h 
        linux/include/asm-i386/mach-es7000: Tag: MaltaRef_2_6 mach_ipi.h 
                                            mach_mpparse.h mach_mpspec.h 
        linux/include/asm-i386/mach-numaq: Tag: MaltaRef_2_6 mach_apic.h 
        linux/include/asm-i386/mach-summit: Tag: MaltaRef_2_6 
                                            mach_apic.h mach_ipi.h 
                                            mach_mpparse.h 
        linux/include/asm-i386/mach-visws: Tag: MaltaRef_2_6 do_timer.h 
        linux/include/asm-i386/mach-voyager: Tag: MaltaRef_2_6 
                                             do_timer.h 
        linux/include/asm-ia64: Tag: MaltaRef_2_6 acpi.h bitops.h bug.h 
                                cacheflush.h compat.h cpu.h delay.h 
                                dma-mapping.h elf.h gcc_intrin.h 
                                hardirq.h hw_irq.h ia32.h io.h iosapic.h 
                                kregs.h machvec.h machvec_init.h 
                                machvec_sn2.h mca.h mca_asm.h 
                                mmu_context.h mmzone.h msi.h nodedata.h 
                                numa.h numnodes.h page.h pal.h pci.h 
                                perfmon.h pgalloc.h pgtable.h 
                                processor.h ptrace.h resource.h sal.h 
                                sections.h semaphore.h siginfo.h 
                                signal.h smp.h socket.h spinlock.h 
                                string.h system.h thread_info.h tlb.h 
                                tlbflush.h topology.h uaccess.h 
                                unaligned.h unistd.h 
        linux/include/asm-ia64/sn: Tag: MaltaRef_2_6 addrs.h arch.h 
                                   bte.h clksupport.h geo.h intr.h io.h 
                                   klconfig.h leds.h module.h nodepda.h 
                                   pda.h rw_mmr.h simulator.h sn_cpuid.h 
                                   sn_sal.h types.h 
        linux/include/asm-m68k: Tag: MaltaRef_2_6 atomic.h blinken.h 
                                bootinfo.h bug.h cacheflush.h checksum.h 
                                hardirq.h io.h ipc.h mc146818rtc.h 
                                motorola_pgalloc.h motorola_pgtable.h 
                                pgtable.h processor.h ptrace.h 
                                resource.h semaphore.h setup.h signal.h 
                                socket.h sun3_pgtable.h system.h 
                                thread_info.h timex.h tlbflush.h 
                                uaccess.h unistd.h 
        linux/include/asm-m68knommu: Tag: MaltaRef_2_6 MC68328.h 
                                     MC68EZ328.h MC68VZ328.h atomic.h 
                                     bitops.h cacheflush.h checksum.h 
                                     coldfire.h delay.h elf.h entry.h 
                                     hardirq.h io.h ipc.h kmap_types.h 
                                     m5206sim.h m5249sim.h mcfdma.h 
                                     mcfpit.h mcfsim.h mcfuart.h mmu.h 
                                     page.h page_offset.h param.h 
                                     pgtable.h processor.h ptrace.h 
                                     semaphore.h signal.h system.h 
                                     thread_info.h uaccess.h unaligned.h 
                                     unistd.h 
        linux/include/asm-mips: Tag: MaltaRef_2_6 .cvsignore addrspace.h 
                                asm.h asmmacro-32.h asmmacro-64.h 
                                bitops.h bootinfo.h break.h bug.h bugs.h 
                                cacheflush.h checksum.h compat.h 
                                cpu-features.h cpu-info.h cpu.h debug.h 
                                delay.h div64.h dma-mapping.h elf.h 
                                errno.h fixmap.h fpu.h fpu_emulator.h 
                                gt64120.h hardirq.h hazards.h hw_irq.h 
                                ide.h inst.h inventory.h io.h ipc.h 
                                irq.h irq_cpu.h mipsregs.h mmu_context.h 
                                mmzone.h module.h numnodes.h paccess.h 
                                page.h pci.h pgalloc.h pgtable-32.h 
                                pgtable-64.h pgtable-bits.h pgtable.h 
                                pmon.h prefetch.h processor.h ptrace.h 
                                r4kcache.h resource.h sections.h 
                                semaphore.h serial.h sgiarcs.h 
                                sigcontext.h siginfo.h signal.h sim.h 
                                smp.h socket.h spinlock.h stackframe.h 
                                statfs.h string.h system.h thread_info.h 
                                timex.h uaccess.h ucontext.h unaligned.h 
                                unistd.h 
        linux/include/asm-mips/cobalt: Tag: MaltaRef_2_6 cobalt.h 
        linux/include/asm-mips/ip32: Tag: MaltaRef_2_6 crime.h 
        linux/include/asm-mips/jmr3927: Tag: MaltaRef_2_6 jmr3927.h 
        linux/include/asm-mips/mach-atlas: Tag: MaltaRef_2_6 
                                           mc146818rtc.h 
        linux/include/asm-mips/mach-au1x00: Tag: MaltaRef_2_6 au1000.h 
                                            au1xxx_dbdma.h au1xxx_psc.h 
        linux/include/asm-mips/mach-db1x00: Tag: MaltaRef_2_6 db1x00.h 
        linux/include/asm-mips/mach-ev64120: Tag: MaltaRef_2_6 
                                             mach-gt64120.h 
        linux/include/asm-mips/mach-ev96100: Tag: MaltaRef_2_6 
                                             mach-gt64120.h 
        linux/include/asm-mips/mach-generic: Tag: MaltaRef_2_6 floppy.h 
                                             ide.h spaces.h 
        linux/include/asm-mips/mach-ip22: Tag: MaltaRef_2_6 
                                          cpu-feature-overrides.h 
        linux/include/asm-mips/mach-ip27: Tag: MaltaRef_2_6 
                                          cpu-feature-overrides.h 
                                          mmzone.h spaces.h topology.h 
        linux/include/asm-mips/mach-ip32: Tag: MaltaRef_2_6 
                                          mc146818rtc.h 
        linux/include/asm-mips/mach-ja: Tag: MaltaRef_2_6 
                                        cpu-feature-overrides.h 
        linux/include/asm-mips/mach-lasat: Tag: MaltaRef_2_6 
                                           mach-gt64120.h 
        linux/include/asm-mips/mach-mips: Tag: MaltaRef_2_6 
                                          cpu-feature-overrides.h 
                                          mach-gt64120.h 
        linux/include/asm-mips/mach-ocelot: Tag: MaltaRef_2_6 
                                            mach-gt64120.h 
        linux/include/asm-mips/mach-pb1x00: Tag: MaltaRef_2_6 pb1550.h 
        linux/include/asm-mips/mach-rm200: Tag: MaltaRef_2_6 
                                           cpu-feature-overrides.h 
        linux/include/asm-mips/mach-yosemite: Tag: MaltaRef_2_6 
                                              cpu-feature-overrides.h 
        linux/include/asm-mips/mips-boards: Tag: MaltaRef_2_6 
                                            msc01_pci.h 
        linux/include/asm-mips/sgi: Tag: MaltaRef_2_6 ioc.h sgi.h 
        linux/include/asm-mips/sibyte: Tag: MaltaRef_2_6 board.h 
                                       sb1250.h 
        linux/include/asm-mips/sn: Tag: MaltaRef_2_6 hub.h 
                                   mapped_kernel.h sn_private.h 
        linux/include/asm-mips/sn/sn0: Tag: MaltaRef_2_6 hubio.h 
        linux/include/asm-mips/tx4927: Tag: MaltaRef_2_6 tx4927.h 
        linux/include/asm-mips/vr41xx: Tag: MaltaRef_2_6 vr41xx.h 
                                       vrc4173.h 
        linux/include/asm-parisc: Tag: MaltaRef_2_6 assembly.h atomic.h 
                                  bitops.h bug.h cache.h cacheflush.h 
                                  checksum.h compat.h dma-mapping.h 
                                  dma.h eisa_eeprom.h errno.h floppy.h 
                                  hardirq.h hardware.h hw_irq.h ide.h 
                                  io.h irq.h led.h module.h numnodes.h 
                                  parisc-device.h pci.h pdc.h 
                                  pdc_chassis.h pdcpat.h pgalloc.h 
                                  pgtable.h posix_types.h processor.h 
                                  ptrace.h resource.h semaphore.h 
                                  serial.h signal.h socket.h spinlock.h 
                                  string.h superio.h system.h 
                                  thread_info.h timex.h tlbflush.h 
                                  uaccess.h unaligned.h unistd.h 
                                  unwind.h 
        linux/include/asm-ppc: Tag: MaltaRef_2_6 8xx_immap.h bug.h 
                               cache.h cacheflush.h checksum.h 
                               commproc.h cpm2.h cputable.h dbdma.h 
                               dma-mapping.h dma.h floppy.h gg2.h 
                               hardirq.h highmem.h hw_irq.h hydra.h 
                               ibm44x.h ibm4xx.h ide.h immap_cpm2.h io.h 
                               ipc.h irq.h keylargo.h m8260_pci.h 
                               machdep.h macio.h mmu.h mpc10x.h 
                               mpc52xx.h mpc52xx_psc.h mpc8260.h 
                               mpc85xx.h mpc8xx.h ocp.h ocp_ids.h 
                               of_device.h open_pic.h page.h 
                               pci-bridge.h pci.h pgtable.h 
                               pmac_feature.h ppc4xx_dma.h ppc4xx_pic.h 
                               ppcboot.h processor.h prom.h ptrace.h 
                               reg.h reg_booke.h residual.h resource.h 
                               rwsem.h sections.h semaphore.h serial.h 
                               sigcontext.h signal.h smp.h socket.h 
                               spinlock.h string.h system.h 
                               thread_info.h time.h timex.h todc.h 
                               uaccess.h uninorth.h unistd.h 
        linux/include/asm-ppc64: Tag: MaltaRef_2_6 a.out.h btext.h bug.h 
                                 cache.h cacheflush.h cputable.h 
                                 dma-mapping.h eeh.h elf.h floppy.h 
                                 hardirq.h hvcall.h hvconsole.h ide.h 
                                 io.h iommu.h ipc.h irq.h lmb.h 
                                 machdep.h memory.h mmu.h mmu_context.h 
                                 mmzone.h naca.h paca.h page.h 
                                 pci-bridge.h pci.h pgalloc.h pgtable.h 
                                 ppc32.h ppcdebug.h processor.h prom.h 
                                 ptrace-common.h ptrace.h resource.h 
                                 rtas.h sections.h semaphore.h serial.h 
                                 signal.h smp.h socket.h spinlock.h 
                                 string.h system.h systemcfg.h 
                                 thread_info.h time.h timex.h tlb.h 
                                 tlbflush.h topology.h uaccess.h udbg.h 
                                 unistd.h vio.h xics.h 
        linux/include/asm-ppc64/iSeries: Tag: MaltaRef_2_6 HvLpEvent.h 
                                         HvReleaseData.h LparData.h 
                                         iSeries_io.h iSeries_pci.h mf.h 
        linux/include/asm-s390: Tag: MaltaRef_2_6 atomic.h bug.h 
                                cacheflush.h ccwdev.h cio.h cmb.h 
                                cpcmd.h debug.h elf.h extmem.h hardirq.h 
                                idals.h io.h ipc.h irq.h lowcore.h 
                                page.h pgalloc.h pgtable.h posix_types.h 
                                processor.h ptrace.h resource.h 
                                siginfo.h signal.h smp.h socket.h 
                                spinlock.h string.h system.h 
                                thread_info.h timer.h timex.h uaccess.h 
                                unistd.h user.h 
        linux/include/asm-sh: Tag: MaltaRef_2_6 adc.h addrspace.h 
                              bitops.h bug.h bugs.h bus-sh.h cache.h 
                              cacheflush.h checksum.h dma-mapping.h 
                              dma.h floppy.h freq.h hardirq.h io.h ipc.h 
                              irq.h machvec.h mc146818rtc.h 
                              mmu_context.h page.h pgalloc.h 
                              pgtable-2level.h pgtable.h processor.h 
                              ptrace.h resource.h rtc.h semaphore.h 
                              shmparam.h signal.h socket.h spinlock.h 
                              string.h system.h thread_info.h timex.h 
                              uaccess.h ubc.h unaligned.h unistd.h 
                              user.h watchdog.h 
        linux/include/asm-sh/cpu-sh2: Tag: MaltaRef_2_6 cacheflush.h 
        linux/include/asm-sh/cpu-sh3: Tag: MaltaRef_2_6 cache.h 
                                      cacheflush.h freq.h 
        linux/include/asm-sh/cpu-sh4: Tag: MaltaRef_2_6 cacheflush.h 
                                      freq.h 
        linux/include/asm-sh/mpc1211: Tag: MaltaRef_2_6 keyboard.h 
        linux/include/asm-sh/se: Tag: MaltaRef_2_6 se.h 
        linux/include/asm-sh64: Tag: MaltaRef_2_6 bug.h cacheflush.h 
                                checksum.h dma-mapping.h elf.h hardirq.h 
                                hardware.h ide.h io.h ioctls.h ipc.h 
                                irq.h keyboard.h module.h pgalloc.h 
                                pgtable.h processor.h ptrace.h 
                                semaphore.h signal.h system.h 
                                thread_info.h timex.h uaccess.h 
                                unaligned.h unistd.h 
        linux/include/asm-sparc: Tag: MaltaRef_2_6 asi.h atomic.h 
                                 bitext.h bitops.h bug.h cacheflush.h 
                                 checksum.h dma-mapping.h dma.h elf.h 
                                 errno.h fbio.h floppy.h hardirq.h 
                                 highmem.h io.h ipc.h mostek.h mxcc.h 
                                 oplib.h pcic.h pgtable.h pgtsrmmu.h 
                                 processor.h ptrace.h resource.h sbus.h 
                                 semaphore.h sigcontext.h signal.h 
                                 socket.h spinlock.h string.h svr4.h 
                                 system.h thread_info.h timex.h 
                                 uaccess.h unaligned.h unistd.h vaddrs.h 
                                 winmacro.h 
        linux/include/asm-sparc64: Tag: MaltaRef_2_6 atomic.h bitops.h 
                                   bug.h bugs.h cacheflush.h checksum.h 
                                   compat.h cpudata.h delay.h dma.h 
                                   ebus.h elf.h errno.h fbio.h hardirq.h 
                                   ide.h io.h iommu.h ipc.h kdebug.h 
                                   mmu.h mmu_context.h mostek.h page.h 
                                   parport.h pbm.h pci.h percpu.h 
                                   pgalloc.h pgtable.h processor.h 
                                   ptrace.h resource.h rwsem.h 
                                   sections.h sigcontext.h siginfo.h 
                                   signal.h smp.h socket.h spinlock.h 
                                   spitfire.h stat.h system.h 
                                   thread_info.h timex.h tlb.h ttable.h 
                                   uaccess.h unaligned.h unistd.h vga.h 
        linux/include/asm-um: Tag: MaltaRef_2_6 archparam-i386.h 
                              archparam-ppc.h atomic.h common.lds.S 
                              current.h delay.h dma-mapping.h elf.h 
                              fixmap.h hardirq.h io.h ipc.h irq.h 
                              linkage.h mmu_context.h page.h pgalloc.h 
                              pgtable.h processor-generic.h 
                              processor-i386.h ptrace-generic.h 
                              ptrace-i386.h setup.h signal.h smp.h 
                              spinlock.h system-generic.h system-i386.h 
                              thread_info.h timex.h uaccess.h unistd.h 
        linux/include/asm-v850: Tag: MaltaRef_2_6 bug.h cacheflush.h 
                                hardirq.h io.h ipc.h pgtable.h 
                                posix_types.h processor.h ptrace.h 
                                resource.h signal.h socket.h string.h 
                                system.h thread_info.h timex.h uaccess.h 
                                unistd.h 
        linux/include/asm-x86_64: Tag: MaltaRef_2_6 acpi.h agp.h apic.h 
                                  apicdef.h atomic.h bitops.h 
                                  bootsetup.h bug.h cacheflush.h 
                                  calling.h checksum.h compat.h 
                                  cpufeature.h desc.h dma-mapping.h 
                                  e820.h elf.h floppy.h hardirq.h hpet.h 
                                  hw_irq.h i387.h ia32.h ia32_unistd.h 
                                  io.h io_apic.h irq.h kdebug.h local.h 
                                  mce.h mmu_context.h mmzone.h mpspec.h 
                                  msi.h msr.h mtrr.h nmi.h numa.h 
                                  numnodes.h page.h pci.h pda.h 
                                  pgalloc.h pgtable.h processor.h 
                                  proto.h ptrace.h resource.h segment.h 
                                  semaphore.h siginfo.h signal.h smp.h 
                                  socket.h spinlock.h suspend.h system.h 
                                  thread_info.h timex.h topology.h 
                                  uaccess.h unistd.h vsyscall.h 
        linux/include/linux: Tag: MaltaRef_2_6 ac97_codec.h acct.h 
                             acpi.h adfs_fs.h adfs_fs_i.h adfs_fs_sb.h 
                             affs_fs.h affs_hardblocks.h agp_backend.h 
                             agpgart.h aio.h aio_abi.h amigaffs.h 
                             arcdevice.h ata.h atalk.h atm.h atmdev.h 
                             atmsvc.h audit.h auto_fs4.h awe_voice.h 
                             backing-dev.h binfmts.h bio.h bitmap.h 
                             bitops.h blkdev.h bootmem.h buffer_head.h 
                             capability.h cdev.h cdrom.h coda.h 
                             coda_proc.h coda_psdev.h com20020.h 
                             compat.h compat_ioctl.h compiler-gcc2.h 
                             compiler-gcc3.h compiler.h completion.h 
                             console.h console_struct.h consolemap.h 
                             cpu.h cpufreq.h cpumask.h crc-ccitt.h 
                             crypto.h cyclades.h cyclomx.h cycx_drv.h 
                             dcache.h delay.h device-mapper.h device.h 
                             dio.h divert.h dm-ioctl.h dma-mapping.h 
                             dnotify.h dqblk_xfs.h edd.h eeprom.h efi.h 
                             efs_dir.h efs_fs.h efs_fs_i.h efs_fs_sb.h 
                             efs_vh.h elevator.h elf.h err.h errno.h 
                             etherdevice.h ethtool.h ext2_fs.h ext3_fs.h 
                             ext3_fs_i.h ext3_fs_sb.h ext3_jbd.h fb.h 
                             fcdevice.h fddidevice.h file.h filter.h 
                             firmware.h fs.h gameport.h generic_serial.h 
                             genhd.h gfp.h hayesesp.h hdlc.h hdreg.h 
                             hiddev.h highmem.h highuid.h hippidevice.h 
                             hpet.h hugetlb.h i2c-id.h i2c-sensor.h 
                             i2c-vid.h i2c.h i2o-dev.h i2o.h ibmtr.h 
                             icmp.h ide.h idr.h if.h if_arcnet.h 
                             if_arp.h if_bridge.h if_ec.h if_ether.h 
                             if_fddi.h if_ltalk.h if_ppp.h if_pppox.h 
                             if_shaper.h if_tr.h if_tun.h if_vlan.h 
                             in6.h inet.h inetdevice.h init.h 
                             init_task.h input.h interrupt.h ioctl32.h 
                             ioport.h ip.h ip6_tunnel.h ipmi.h 
                             ipmi_msgdefs.h ipmi_smi.h ipv6.h 
                             ipv6_route.h irq.h irq_cpustat.h isapnp.h 
                             isicom.h iso_fs.h ixjuser.h jbd.h jffs.h 
                             jffs2.h jffs2_fs_i.h jffs2_fs_sb.h 
                             jiffies.h journal-head.h joystick.h 
                             kallsyms.h kernel.h kernel_stat.h 
                             keyboard.h kmod.h kobj_map.h kobject.h 
                             kref.h libata.h linkage.h list.h loop.h 
                             lp.h major.h mbcache.h mc146818rtc.h 
                             mca-legacy.h mca.h mempolicy.h mempool.h 
                             meye.h mii.h miscdevice.h mm.h mman.h 
                             mmzone.h mod_devicetable.h module.h 
                             moduleparam.h mount.h mpage.h msdos_fs.h 
                             mtio.h mv643xx.h namei.h ncp.h ncp_fs.h 
                             ncp_fs_i.h ncp_no.h net.h netdevice.h 
                             netfilter.h netfilter_ipv4.h 
                             netfilter_ipv6.h netlink.h netpoll.h nfs4.h 
                             nfs_fs.h nfs_fs_sb.h nfs_xdr.h nls.h node.h 
                             notifier.h oprofile.h page-flags.h 
                             pagemap.h pagevec.h parport.h parport_pc.h 
                             pci.h pci_ids.h percpu.h personality.h 
                             pfkeyv2.h pid.h pipe_fs_i.h pkt_cls.h 
                             pkt_sched.h pm.h pnp.h poll.h 
                             posix-timers.h posix_acl.h prctl.h 
                             preempt.h prio_tree.h proc_fs.h profile.h 
                             ptrace.h qnx4_fs.h quota.h quotaio_v2.h 
                             quotaops.h random.h rbtree.h rcupdate.h 
                             reiserfs_acl.h reiserfs_fs.h 
                             reiserfs_fs_i.h reiserfs_fs_sb.h 
                             reiserfs_xattr.h resource.h rmap.h 
                             romfs_fs.h rtnetlink.h sched.h sctp.h 
                             scx200.h scx200_gpio.h security.h 
                             selection.h sem.h seq_file.h serial.h 
                             serial_core.h serial_reg.h serio.h shm.h 
                             shmem_fs.h signal.h skbuff.h slab.h 
                             smb_fs.h smb_mount.h smp.h smp_lock.h 
                             socket.h sockios.h sonypi.h soundcard.h 
                             spinlock.h stallion.h stddef.h 
                             stop_machine.h suspend.h swap.h swapops.h 
                             syscalls.h sysctl.h sysdev.h sysfs.h 
                             sysrq.h sysv_fs.h tcp.h threads.h ticable.h 
                             time.h times.h timex.h topology.h 
                             trdevice.h tty.h tty_driver.h tty_ldisc.h 
                             types.h udf_fs_i.h udf_fs_sb.h udp.h 
                             ufs_fs.h ufs_fs_i.h uinput.h umem.h usb.h 
                             usb_ch9.h usb_gadget.h usb_otg.h 
                             usbdevice_fs.h videodev.h videodev2.h 
                             videotext.h vmalloc.h vt_kern.h wait.h 
                             wireless.h workqueue.h writeback.h xattr.h 
                             xfrm.h 
        linux/include/linux/byteorder: Tag: MaltaRef_2_6 big_endian.h 
                                       generic.h little_endian.h 
        linux/include/linux/dvb: Tag: MaltaRef_2_6 audio.h ca.h dmx.h 
                                 frontend.h net.h osd.h version.h 
                                 video.h 
        linux/include/linux/lockd: Tag: MaltaRef_2_6 debug.h lockd.h 
                                   xdr.h 
        linux/include/linux/mmc: Tag: MaltaRef_2_6 card.h host.h mmc.h 
                                 protocol.h 
        linux/include/linux/mtd: Tag: MaltaRef_2_6 cfi.h doc2000.h 
                                 flashchip.h gen_probe.h map.h nand.h 
                                 partitions.h 
        linux/include/linux/netfilter_arp: Tag: MaltaRef_2_6 
                                           arp_tables.h 
        linux/include/linux/netfilter_bridge: Tag: MaltaRef_2_6 
                                              ebt_802_3.h ebtables.h 
        linux/include/linux/netfilter_ipv4: Tag: MaltaRef_2_6 
                                            ip_conntrack.h 
                                            ip_conntrack_amanda.h 
                                            ip_conntrack_core.h 
                                            ip_conntrack_ftp.h 
                                            ip_conntrack_helper.h 
                                            ip_conntrack_irc.h 
                                            ip_conntrack_protocol.h 
                                            ip_conntrack_tcp.h 
                                            ip_conntrack_tftp.h 
                                            ip_conntrack_tuple.h 
                                            ip_nat.h ip_nat_core.h 
                                            ip_nat_helper.h 
                                            ip_nat_protocol.h 
                                            ip_tables.h ipt_LOG.h 
                                            ipt_MARK.h ipt_conntrack.h 
                                            ipt_multiport.h 
        linux/include/linux/netfilter_ipv6: Tag: MaltaRef_2_6 
                                            ip6_tables.h ip6t_LOG.h 
        linux/include/linux/nfsd: Tag: MaltaRef_2_6 cache.h nfsd.h 
                                  state.h xdr4.h 
        linux/include/linux/raid: Tag: MaltaRef_2_6 linear.h md.h md_k.h 
                                  md_p.h multipath.h raid1.h raid5.h 
        linux/include/linux/sunrpc: Tag: MaltaRef_2_6 auth.h auth_gss.h 
                                    cache.h clnt.h gss_api.h gss_asn1.h 
                                    sched.h svc.h svcauth.h xdr.h xprt.h 
        linux/include/math-emu: Tag: MaltaRef_2_6 op-common.h 
        linux/include/media: Tag: MaltaRef_2_6 audiochip.h id.h 
                             ir-common.h saa6752hs.h saa7146.h 
                             saa7146_vv.h tuner.h video-buf.h 
        linux/include/mtd: Tag: MaltaRef_2_6 mtd-abi.h 
        linux/include/net: Tag: MaltaRef_2_6 addrconf.h af_unix.h ax25.h 
                           checksum.h dn.h dn_fib.h dn_neigh.h dn_nsp.h 
                           dst.h flow.h icmp.h if_inet6.h inet_ecn.h 
                           inetpeer.h ip.h ip6_route.h ip_fib.h ip_vs.h 
                           ipcomp.h ipconfig.h ipv6.h ipx.h iw_handler.h 
                           llc_c_ac.h llc_c_ev.h llc_conn.h llc_pdu.h 
                           llc_sap.h ndisc.h neighbour.h netrom.h 
                           pkt_act.h pkt_cls.h pkt_sched.h rose.h 
                           route.h scm.h slhc_vj.h snmp.h sock.h tcp.h 
                           tcp_ecn.h udp.h x25.h xfrm.h 
        linux/include/net/bluetooth: Tag: MaltaRef_2_6 bluetooth.h hci.h 
                                     hci_core.h l2cap.h rfcomm.h sco.h 
        linux/include/net/irda: Tag: MaltaRef_2_6 af_irda.h 
                                ircomm_event.h ircomm_lmp.h 
                                ircomm_param.h ircomm_ttp.h ircomm_tty.h 
                                ircomm_tty_attach.h irda.h irda_device.h 
                                iriap.h irias_object.h irlan_client.h 
                                irlan_common.h irlap.h irlap_frame.h 
                                irlmp.h irttp.h parameters.h qos.h 
                                timer.h 
        linux/include/net/sctp: Tag: MaltaRef_2_6 command.h constants.h 
                                sctp.h sm.h structs.h tsnmap.h 
                                ulpevent.h ulpqueue.h user.h 
        linux/include/pcmcia: Tag: MaltaRef_2_6 bulkmem.h ciscode.h 
                              cisreg.h cistpl.h cs.h cs_types.h ds.h 
                              mem_op.h ss.h 
        linux/include/rxrpc: Tag: MaltaRef_2_6 call.h connection.h 
                             packet.h peer.h rxrpc.h transport.h types.h 
        linux/include/scsi: Tag: MaltaRef_2_6 scsi.h scsi_cmnd.h 
                            scsi_dbg.h scsi_device.h scsi_devinfo.h 
                            scsi_driver.h scsi_eh.h scsi_host.h 
                            scsi_ioctl.h scsi_tcq.h scsi_transport.h 
                            scsi_transport_fc.h scsi_transport_spi.h 
        linux/include/sound: Tag: MaltaRef_2_6 ac97_codec.h ad1848.h 
                             ainstr_fm.h ainstr_gf1.h ainstr_iw.h 
                             ainstr_simple.h ak4117.h ak4531_codec.h 
                             ak4xxx-adda.h asequencer.h asound.h 
                             asoundef.h control.h core.h cs4231.h 
                             cs46xx.h cs8427.h driver.h emu10k1.h 
                             es1688.h gus.h hdsp.h hwdep.h info.h 
                             initval.h memalloc.h mixer_oss.h mpu401.h 
                             opl3.h pcm.h pcm_oss.h rawmidi.h sb.h 
                             seq_kernel.h seq_midi_emul.h seq_virmidi.h 
                             snd_wavefront.h soundfont.h timer.h 
                             trident.h version.h vx_core.h ymfpci.h 
        linux/include/video: Tag: MaltaRef_2_6 edid.h kyro.h mach64.h 
                             neomagic.h newport.h permedia2.h pm3fb.h 
                             radeon.h sstfb.h tdfx.h tgafb.h trident.h 
                             vga.h 
        linux/init     : Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                         do_mounts.c do_mounts_devfs.c do_mounts_md.c 
                         do_mounts_rd.c initramfs.c main.c version.c 
        linux/ipc      : Tag: MaltaRef_2_6 .cvsignore compat_mq.c 
                         mqueue.c msg.c sem.c shm.c util.c util.h 
        linux/kernel   : Tag: MaltaRef_2_6 .cvsignore Makefile acct.c 
                         audit.c auditsc.c capability.c compat.c cpu.c 
                         dma.c exec_domain.c exit.c fork.c futex.c 
                         intermodule.c itimer.c kallsyms.c kmod.c 
                         kthread.c module.c panic.c params.c pid.c 
                         posix-timers.c printk.c profile.c ptrace.c 
                         rcupdate.c resource.c sched.c signal.c 
                         softirq.c stop_machine.c sys.c sysctl.c time.c 
                         timer.c user.c workqueue.c 
        linux/kernel/power: Tag: MaltaRef_2_6 Kconfig Makefile console.c 
                            disk.c main.c pm.c power.h poweroff.c 
                            process.c smp.c swsusp.c 
        linux/lib      : Tag: MaltaRef_2_6 .cvsignore Kconfig 
                         Kconfig.debug Makefile bitmap.c dec_and_lock.c 
                         extable.c idr.c inflate.c kobject.c kref.c 
                         parser.c radix-tree.c rwsem-spinlock.c rwsem.c 
                         string.c vsprintf.c 
        linux/lib/zlib_deflate: Tag: MaltaRef_2_6 .cvsignore 
        linux/lib/zlib_inflate: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                infblock.c inflate.c inftrees.c 
                                inftrees.h 
        linux/mm       : Tag: MaltaRef_2_6 .cvsignore Makefile bootmem.c 
                         fadvise.c filemap.c fremap.c highmem.c 
                         hugetlb.c madvise.c memory.c mempolicy.c 
                         mempool.c mincore.c mlock.c mmap.c mprotect.c 
                         mremap.c msync.c nommu.c oom_kill.c 
                         page-writeback.c page_alloc.c page_io.c 
                         pdflush.c prio_tree.c readahead.c rmap.c 
                         shmem.c slab.c swap_state.c swapfile.c thrash.c 
                         truncate.c vmalloc.c vmscan.c 
        linux/net      : Tag: MaltaRef_2_6 Kconfig Makefile compat.c 
                         socket.c 
        linux/net/802  : Tag: MaltaRef_2_6 .cvsignore fc.c fddi.c 
                         hippi.c psnap.c tr.c 
        linux/net/8021q: Tag: MaltaRef_2_6 .cvsignore vlan.c vlan.h 
                         vlan_dev.c vlanproc.c vlanproc.h 
        linux/net/appletalk: Tag: MaltaRef_2_6 .cvsignore Makefile 
                             aarp.c atalk_proc.c ddp.c 
        linux/net/atm  : Tag: MaltaRef_2_6 .cvsignore addr.c addr.h 
                         atm_misc.c br2684.c clip.c common.c ioctl.c 
                         lec.c lec.h lec_arpc.h mpc.c mpc.h mpoa_proc.c 
                         pppoatm.c proc.c protocols.h raw.c resources.c 
                         signaling.c svc.c 
        linux/net/ax25 : Tag: MaltaRef_2_6 .cvsignore af_ax25.c 
                         ax25_dev.c ax25_ds_subr.c ax25_iface.c 
                         ax25_in.c ax25_ip.c ax25_out.c ax25_route.c 
                         ax25_subr.c ax25_uid.c 
        linux/net/bluetooth: Tag: MaltaRef_2_6 .cvsignore af_bluetooth.c 
                             hci_conn.c hci_core.c hci_event.c 
                             hci_sock.c hci_sysfs.c l2cap.c lib.c sco.c 
        linux/net/bluetooth/bnep: Tag: MaltaRef_2_6 core.c sock.c 
        linux/net/bluetooth/cmtp: Tag: MaltaRef_2_6 capi.c cmtp.h core.c 
                                  sock.c 
        linux/net/bluetooth/hidp: Tag: MaltaRef_2_6 core.c hidp.h sock.c 
        linux/net/bluetooth/rfcomm: Tag: MaltaRef_2_6 core.c sock.c 
                                    tty.c 
        linux/net/bridge: Tag: MaltaRef_2_6 .cvsignore br.c br_device.c 
                          br_fdb.c br_if.c br_input.c br_ioctl.c 
                          br_netfilter.c br_notify.c br_private.h 
                          br_stp_bpdu.c br_stp_if.c br_sysfs_if.c 
        linux/net/bridge/netfilter: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                    Makefile ebt_802_3.c ebt_among.c 
                                    ebt_arp.c ebt_arpreply.c ebt_dnat.c 
                                    ebt_ip.c ebt_limit.c ebt_log.c 
                                    ebt_redirect.c ebt_snat.c ebt_vlan.c 
                                    ebtables.c 
        linux/net/core : Tag: MaltaRef_2_6 .cvsignore Makefile 
                         datagram.c dev.c dev_mcast.c dst.c dv.c 
                         ethtool.c iovec.c link_watch.c neighbour.c 
                         net-sysfs.c netfilter.c netpoll.c pktgen.c 
                         rtnetlink.c scm.c skbuff.c sock.c stream.c 
                         utils.c wireless.c 
        linux/net/decnet: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                          af_decnet.c dn_dev.c dn_fib.c dn_neigh.c 
                          dn_nsp_in.c dn_nsp_out.c dn_route.c dn_rules.c 
                          dn_table.c dn_timer.c 
        linux/net/decnet/netfilter: Tag: MaltaRef_2_6 .cvsignore 
                                    dn_rtmsg.c 
        linux/net/econet: Tag: MaltaRef_2_6 .cvsignore af_econet.c 
        linux/net/ethernet: Tag: MaltaRef_2_6 .cvsignore eth.c 
        linux/net/ipv4 : Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                         af_inet.c ah4.c arp.c datagram.c devinet.c 
                         esp4.c fib_frontend.c fib_hash.c fib_rules.c 
                         fib_semantics.c icmp.c igmp.c inetpeer.c 
                         ip_fragment.c ip_gre.c ip_input.c ip_options.c 
                         ip_output.c ip_sockglue.c ipcomp.c ipconfig.c 
                         ipip.c ipmr.c protocol.c raw.c route.c 
                         syncookies.c sysctl_net_ipv4.c tcp.c tcp_diag.c 
                         tcp_input.c tcp_ipv4.c tcp_minisocks.c 
                         tcp_output.c tcp_timer.c udp.c xfrm4_input.c 
                         xfrm4_output.c xfrm4_policy.c xfrm4_state.c 
                         xfrm4_tunnel.c 
        linux/net/ipv4/ipvs: Tag: MaltaRef_2_6 .cvsignore Makefile 
                             ip_vs_app.c ip_vs_conn.c ip_vs_core.c 
                             ip_vs_ctl.c ip_vs_est.c ip_vs_ftp.c 
                             ip_vs_lblc.c ip_vs_lblcr.c ip_vs_proto.c 
                             ip_vs_proto_tcp.c ip_vs_proto_udp.c 
                             ip_vs_sched.c ip_vs_sync.c ip_vs_wrr.c 
                             ip_vs_xmit.c 
        linux/net/ipv4/netfilter: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                  Makefile arp_tables.c 
                                  arptable_filter.c 
                                  ip_conntrack_amanda.c 
                                  ip_conntrack_core.c ip_conntrack_ftp.c 
                                  ip_conntrack_irc.c 
                                  ip_conntrack_proto_generic.c 
                                  ip_conntrack_proto_icmp.c 
                                  ip_conntrack_proto_sctp.c 
                                  ip_conntrack_proto_tcp.c 
                                  ip_conntrack_proto_udp.c 
                                  ip_conntrack_standalone.c 
                                  ip_conntrack_tftp.c ip_nat_amanda.c 
                                  ip_nat_core.c ip_nat_ftp.c 
                                  ip_nat_helper.c ip_nat_irc.c 
                                  ip_nat_proto_icmp.c ip_nat_proto_tcp.c 
                                  ip_nat_proto_udp.c 
                                  ip_nat_proto_unknown.c ip_nat_rule.c 
                                  ip_nat_snmp_basic.c 
                                  ip_nat_standalone.c ip_nat_tftp.c 
                                  ip_queue.c ip_tables.c ipt_ECN.c 
                                  ipt_LOG.c ipt_MARK.c ipt_MASQUERADE.c 
                                  ipt_NETMAP.c ipt_NOTRACK.c 
                                  ipt_REDIRECT.c ipt_REJECT.c ipt_SAME.c 
                                  ipt_TCPMSS.c ipt_ULOG.c 
                                  ipt_conntrack.c ipt_helper.c 
                                  ipt_limit.c ipt_mac.c ipt_multiport.c 
                                  ipt_recent.c ipt_sctp.c ipt_state.c 
                                  ipt_tcpmss.c iptable_filter.c 
                                  iptable_mangle.c iptable_raw.c 
        linux/net/ipv6 : Tag: MaltaRef_2_6 .cvsignore Kconfig addrconf.c 
                         af_inet6.c ah6.c anycast.c datagram.c esp6.c 
                         exthdrs.c exthdrs_core.c icmp.c ip6_fib.c 
                         ip6_flowlabel.c ip6_input.c ip6_output.c 
                         ip6_tunnel.c ipcomp6.c ipv6_sockglue.c 
                         ipv6_syms.c mcast.c ndisc.c proc.c protocol.c 
                         raw.c reassembly.c route.c sit.c 
                         sysctl_net_ipv6.c tcp_ipv6.c udp.c 
                         xfrm6_input.c xfrm6_output.c xfrm6_policy.c 
                         xfrm6_state.c xfrm6_tunnel.c 
        linux/net/ipv6/netfilter: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                  Makefile ip6_queue.c ip6_tables.c 
                                  ip6t_LOG.c ip6t_MARK.c ip6t_ah.c 
                                  ip6t_dst.c ip6t_esp.c ip6t_eui64.c 
                                  ip6t_frag.c ip6t_hbh.c ip6t_hl.c 
                                  ip6t_ipv6header.c ip6t_length.c 
                                  ip6t_limit.c ip6t_mac.c ip6t_mark.c 
                                  ip6t_multiport.c ip6t_owner.c 
                                  ip6t_rt.c ip6table_filter.c 
                                  ip6table_mangle.c ip6table_raw.c 
        linux/net/ipx  : Tag: MaltaRef_2_6 .cvsignore af_ipx.c 
                         ipx_proc.c ipx_route.c 
        linux/net/irda : Tag: MaltaRef_2_6 .cvsignore af_irda.c 
                         discovery.c irda_device.c iriap.c iriap_event.c 
                         irias_object.c irlap.c irlap_event.c 
                         irlap_frame.c irlmp.c irlmp_event.c 
                         irlmp_frame.c irmod.c irqueue.c irsysctl.c 
                         irttp.c parameters.c qos.c timer.c wrapper.c 
        linux/net/irda/compressors: Tag: MaltaRef_2_6 .cvsignore 
        linux/net/irda/ircomm: Tag: MaltaRef_2_6 .cvsignore 
                               ircomm_core.c ircomm_event.c ircomm_lmp.c 
                               ircomm_param.c ircomm_ttp.c ircomm_tty.c 
                               ircomm_tty_attach.c ircomm_tty_ioctl.c 
        linux/net/irda/irlan: Tag: MaltaRef_2_6 .cvsignore 
                              irlan_client.c irlan_client_event.c 
                              irlan_common.c irlan_eth.c irlan_event.c 
                              irlan_filter.c irlan_provider.c 
                              irlan_provider_event.c 
        linux/net/irda/irnet: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                              irnet.h irnet_irda.c irnet_ppp.c 
                              irnet_ppp.h 
        linux/net/key  : Tag: MaltaRef_2_6 .cvsignore af_key.c 
        linux/net/lapb : Tag: MaltaRef_2_6 .cvsignore lapb_iface.c 
        linux/net/llc  : Tag: MaltaRef_2_6 .cvsignore af_llc.c 
                         llc_c_ac.c llc_c_ev.c llc_conn.c llc_core.c 
                         llc_if.c llc_input.c llc_output.c llc_pdu.c 
                         llc_proc.c llc_sap.c llc_station.c 
        linux/net/netlink: Tag: MaltaRef_2_6 .cvsignore Makefile 
                           af_netlink.c 
        linux/net/netrom: Tag: MaltaRef_2_6 .cvsignore af_netrom.c 
                          nr_in.c nr_out.c nr_route.c nr_subr.c 
                          nr_timer.c 
        linux/net/packet: Tag: MaltaRef_2_6 .cvsignore af_packet.c 
        linux/net/rose : Tag: MaltaRef_2_6 .cvsignore af_rose.c 
                         rose_dev.c rose_in.c rose_link.c rose_out.c 
                         rose_route.c rose_subr.c rose_timer.c 
        linux/net/rxrpc: Tag: MaltaRef_2_6 .cvsignore call.c 
                         connection.c internal.h krxiod.c krxsecd.c 
                         krxtimod.c main.c peer.c rxrpc_syms.c 
                         transport.c 
        linux/net/sched: Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                         act_api.c cls_api.c cls_fw.c cls_route.c 
                         cls_rsvp.c cls_rsvp.h cls_rsvp6.c cls_tcindex.c 
                         cls_u32.c estimator.c police.c sch_api.c 
                         sch_atm.c sch_cbq.c sch_dsmark.c sch_fifo.c 
                         sch_generic.c sch_gred.c sch_hfsc.c sch_htb.c 
                         sch_ingress.c sch_netem.c sch_prio.c sch_red.c 
                         sch_sfq.c sch_tbf.c sch_teql.c 
        linux/net/sctp : Tag: MaltaRef_2_6 .cvsignore associola.c 
                         bind_addr.c chunk.c command.c debug.c 
                         endpointola.c input.c inqueue.c ipv6.c objcnt.c 
                         output.c outqueue.c proc.c protocol.c 
                         sm_make_chunk.c sm_sideeffect.c sm_statefuns.c 
                         sm_statetable.c socket.c ssnmap.c sysctl.c 
                         transport.c tsnmap.c ulpevent.c ulpqueue.c 
        linux/net/sunrpc: Tag: MaltaRef_2_6 .cvsignore auth.c 
                          auth_null.c auth_unix.c cache.c clnt.c 
                          pmap_clnt.c rpc_pipe.c sched.c sunrpc_syms.c 
                          svc.c svcauth.c svcauth_unix.c svcsock.c xdr.c 
                          xprt.c 
        linux/net/sunrpc/auth_gss: Tag: MaltaRef_2_6 .cvsignore 
                                   auth_gss.c gss_generic_token.c 
                                   gss_krb5_crypto.c gss_krb5_mech.c 
                                   gss_mech_switch.c gss_spkm3_mech.c 
                                   gss_spkm3_seal.c svcauth_gss.c 
        linux/net/unix : Tag: MaltaRef_2_6 .cvsignore af_unix.c 
                         garbage.c sysctl_net_unix.c 
        linux/net/wanrouter: Tag: MaltaRef_2_6 .cvsignore af_wanpipe.c 
                             wanmain.c 
        linux/net/x25  : Tag: MaltaRef_2_6 .cvsignore af_x25.c 
                         sysctl_net_x25.c x25_dev.c x25_facilities.c 
                         x25_in.c x25_link.c x25_out.c x25_proc.c 
                         x25_route.c x25_subr.c x25_timer.c 
        linux/net/xfrm : Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                         xfrm_algo.c xfrm_input.c xfrm_policy.c 
                         xfrm_state.c xfrm_user.c 
        linux/scripts  : Tag: MaltaRef_2_6 Makefile.build Makefile.clean 
                         Makefile.host Makefile.lib Makefile.modinst 
                         Makefile.modpost checkstack.pl conmakehash.c 
                         kallsyms.c kernel-doc mksysmap patch-kernel 
                         reference_discarded.pl reference_init.pl 
                         ver_linux 
        linux/scripts/basic: Tag: MaltaRef_2_6 .cvsignore docproc.c 
                             fixdep.c split-include.c 
        linux/scripts/genksyms: Tag: MaltaRef_2_6 .cvsignore genksyms.c 
                                genksyms.h 
        linux/scripts/kconfig: Tag: MaltaRef_2_6 Makefile conf.c 
                               confdata.c expr.c expr.h gconf.c lkc.h 
                               lkc_proto.h mconf.c menu.c qconf.cc 
                               symbol.c zconf.tab.c_shipped zconf.y 
        linux/scripts/lxdialog: Tag: MaltaRef_2_6 Makefile checklist.c 
                                colors.h dialog.h lxdialog.c menubox.c 
        linux/scripts/mod: Tag: MaltaRef_2_6 file2alias.c modpost.c 
                           modpost.h sumversion.c 
        linux/scripts/package: Tag: MaltaRef_2_6 builddeb mkspec 
        linux/security : Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                         capability.c commoncap.c dummy.c security.c 
        linux/security/selinux: Tag: MaltaRef_2_6 Kconfig avc.c hooks.c 
                                netif.c nlmsgtab.c selinuxfs.c 
        linux/security/selinux/include: Tag: MaltaRef_2_6 av_inherit.h 
                                        av_perm_to_string.h 
                                        av_permissions.h avc.h avc_ss.h 
                                        class_to_string.h 
                                        common_perm_to_string.h flask.h 
                                        netif.h objsec.h security.h 
        linux/security/selinux/ss: Tag: MaltaRef_2_6 Makefile avtab.c 
                                   avtab.h conditional.c constraint.h 
                                   context.h ebitmap.c ebitmap.h 
                                   hashtab.c hashtab.h mls.c mls.h 
                                   mls_types.h policydb.c policydb.h 
                                   services.c services.h sidtab.c 
        linux/sound    : Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                         sound_core.c 
        linux/sound/arm: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                         sa11xx-uda1341.c 
        linux/sound/core: Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                          control.c device.c hwdep.c info.c info_oss.c 
                          init.c memalloc.c memory.c misc.c pcm.c 
                          pcm_lib.c pcm_memory.c pcm_misc.c pcm_native.c 
                          pcm_timer.c rawmidi.c rtctimer.c sgbuf.c 
                          sound.c timer.c 
        linux/sound/core/ioctl32: Tag: MaltaRef_2_6 .cvsignore 
        linux/sound/core/oss: Tag: MaltaRef_2_6 .cvsignore mixer_oss.c 
                              mulaw.c pcm_oss.c pcm_plugin.c 
                              pcm_plugin.h rate.c route.c 
        linux/sound/core/seq: Tag: MaltaRef_2_6 .cvsignore Makefile 
                              seq.c seq_clientmgr.c seq_clientmgr.h 
                              seq_device.c seq_dummy.c seq_fifo.c 
                              seq_instr.c seq_memory.c seq_memory.h 
                              seq_midi.c seq_midi_emul.c 
                              seq_midi_event.c seq_ports.c seq_prioq.c 
                              seq_queue.c seq_queue.h seq_system.c 
                              seq_timer.c seq_virmidi.c 
        linux/sound/core/seq/instr: Tag: MaltaRef_2_6 .cvsignore 
                                    Makefile ainstr_fm.c ainstr_gf1.c 
                                    ainstr_iw.c ainstr_simple.c 
        linux/sound/core/seq/oss: Tag: MaltaRef_2_6 .cvsignore seq_oss.c 
                                  seq_oss_device.h seq_oss_init.c 
                                  seq_oss_ioctl.c seq_oss_midi.c 
                                  seq_oss_readq.c seq_oss_readq.h 
                                  seq_oss_rw.c seq_oss_synth.c 
                                  seq_oss_timer.c seq_oss_writeq.c 
        linux/sound/drivers: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                             dummy.c mtpav.c serial-u16550.c virmidi.c 
        linux/sound/drivers/mpu401: Tag: MaltaRef_2_6 .cvsignore 
                                    mpu401.c mpu401_uart.c 
        linux/sound/drivers/opl3: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                  opl3_drums.c opl3_lib.c opl3_midi.c 
                                  opl3_oss.c opl3_seq.c opl3_synth.c 
        linux/sound/drivers/opl4: Tag: MaltaRef_2_6 Makefile opl4_lib.c 
                                  opl4_local.h opl4_mixer.c opl4_proc.c 
                                  opl4_seq.c opl4_synth.c 
        linux/sound/drivers/vx: Tag: MaltaRef_2_6 vx_cmd.c vx_cmd.h 
                                vx_core.c vx_hwdep.c vx_mixer.c vx_pcm.c 
                                vx_uer.c 
        linux/sound/i2c: Tag: MaltaRef_2_6 .cvsignore cs8427.c i2c.c 
                         tea6330t.c 
        linux/sound/i2c/l3: Tag: MaltaRef_2_6 .cvsignore uda1341.c 
        linux/sound/i2c/other: Tag: MaltaRef_2_6 Makefile ak4117.c 
                               ak4xxx-adda.c tea575x-tuner.c 
        linux/sound/isa: Tag: MaltaRef_2_6 .cvsignore Kconfig als100.c 
                         azt2320.c cmi8330.c dt019x.c es18xx.c opl3sa2.c 
                         sgalaxy.c sscape.c 
        linux/sound/isa/ad1816a: Tag: MaltaRef_2_6 .cvsignore ad1816a.c 
                                 ad1816a_lib.c 
        linux/sound/isa/ad1848: Tag: MaltaRef_2_6 .cvsignore ad1848.c 
                                ad1848_lib.c 
        linux/sound/isa/cs423x: Tag: MaltaRef_2_6 .cvsignore cs4231.c 
                                cs4231_lib.c cs4236.c cs4236_lib.c 
        linux/sound/isa/es1688: Tag: MaltaRef_2_6 .cvsignore es1688.c 
                                es1688_lib.c 
        linux/sound/isa/gus: Tag: MaltaRef_2_6 .cvsignore Makefile 
                             gus_dma.c gus_dram.c gus_instr.c gus_irq.c 
                             gus_main.c gus_mem.c gus_mem_proc.c 
                             gus_mixer.c gus_pcm.c gus_reset.c 
                             gus_sample.c gus_synth.c gus_timer.c 
                             gus_uart.c gusclassic.c gusextreme.c 
                             gusmax.c interwave.c 
        linux/sound/isa/opti9xx: Tag: MaltaRef_2_6 .cvsignore 
                                 opti92x-ad1848.c 
        linux/sound/isa/sb: Tag: MaltaRef_2_6 .cvsignore emu8000.c 
                            emu8000_callback.c emu8000_local.h 
                            emu8000_patch.c emu8000_pcm.c 
                            emu8000_synth.c es968.c sb16.c sb16_csp.c 
                            sb16_main.c sb8.c sb8_main.c sb8_midi.c 
                            sb_common.c sb_mixer.c 
        linux/sound/isa/wavefront: Tag: MaltaRef_2_6 .cvsignore 
                                   wavefront.c wavefront_fx.c 
                                   wavefront_midi.c wavefront_synth.c 
        linux/sound/oss: Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                         ac97.c ac97.h ac97_codec.c aci.c aci.h ad1816.c 
                         ad1848.c ad1848.h ad1889.c ad1889.h 
                         adlib_card.c aedsp16.c ali5455.c au1000.c 
                         audio.c audio_syms.c awe_wave.c btaudio.c 
                         cmpci.c cs4232.c cs46xx.c cs46xx_wrapper-24.h 
                         cs46xxpm-24.h dev_table.c dev_table.h dmabuf.c 
                         es1370.c es1371.c esssolo1.c forte.c gus_card.c 
                         gus_wave.c harmony.c i810_audio.c ite8172.c 
                         kahlua.c mad16.c maestro.c maestro3.c 
                         maestro3.h maui.c midibuf.c mpu401.c mpu401.h 
                         msnd.c msnd.h msnd_pinnacle.c nec_vrc5477.c 
                         nm256.h nm256_audio.c opl3.c opl3sa.c opl3sa2.c 
                         pas2_card.c pss.c rme96xx.c sb.h sb_card.c 
                         sb_common.c sb_ess.c sequencer.c sgalaxy.c 
                         sonicvibes.c sound_calls.h sound_syms.c 
                         soundcard.c sscape.c swarm_cs4297a.c 
                         sys_timer.c trident.c trix.c uart401.c 
                         uart6850.c v_midi.c via82cxxx_audio.c vwsnd.c 
                         waveartist.c wavfront.c wf_midi.c ymfpci.c 
                         ymfpci.h 
        linux/sound/oss/cs4281: Tag: MaltaRef_2_6 .cvsignore 
                                cs4281_wrapper-24.c cs4281m.c 
                                cs4281pm-24.c 
        linux/sound/oss/dmasound: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                  dac3550a.c dmasound_awacs.c 
        linux/sound/oss/emu10k1: Tag: MaltaRef_2_6 .cvsignore audio.c 
                                 audio.h cardmi.c cardmi.h cardwi.c 
                                 efxmgr.c hwaccess.c hwaccess.h main.c 
                                 midi.c voicemgr.c 
        linux/sound/parisc: Tag: MaltaRef_2_6 Kconfig harmony.c 
        linux/sound/pci: Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                         als4000.c atiixp.c azt3328.c bt87x.c cmipci.c 
                         cs4281.c ens1370.c es1938.c es1968.c fm801.c 
                         intel8x0.c intel8x0m.c maestro3.c rme32.c 
                         rme96.c sonicvibes.c via82xx.c 
        linux/sound/pci/ac97: Tag: MaltaRef_2_6 .cvsignore Makefile 
                              ac97_codec.c ac97_id.h ac97_local.h 
                              ac97_patch.c ac97_patch.h ac97_pcm.c 
                              ac97_proc.c ak4531_codec.c 
        linux/sound/pci/ali5451: Tag: MaltaRef_2_6 .cvsignore ali5451.c 
        linux/sound/pci/au88x0: Tag: MaltaRef_2_6 au88x0.c au88x0.h 
                                au88x0_a3d.c au88x0_core.c au88x0_eq.c 
                                au88x0_game.c au88x0_mixer.c 
                                au88x0_mpu401.c au88x0_pcm.c 
                                au88x0_xtalk.c au88x0_xtalk.h 
        linux/sound/pci/cs46xx: Tag: MaltaRef_2_6 .cvsignore cs46xx.c 
                                cs46xx_lib.c cs46xx_lib.h dsp_spos.c 
                                dsp_spos_scb_lib.c 
        linux/sound/pci/cs46xx/imgs: Tag: MaltaRef_2_6 cwcdma.h 
        linux/sound/pci/emu10k1: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                 emu10k1.c emu10k1_callback.c 
                                 emu10k1_main.c emu10k1_patch.c 
                                 emu10k1_synth.c emufx.c emumixer.c 
                                 emumpu401.c emupcm.c emuproc.c io.c 
                                 irq.c memory.c voice.c 
        linux/sound/pci/ice1712: Tag: MaltaRef_2_6 Makefile ak4xxx.c 
                                 aureon.c aureon.h delta.c delta.h 
                                 envy24ht.h ews.c ews.h hoontech.c 
                                 ice1712.c ice1712.h ice1724.c revo.c 
        linux/sound/pci/korg1212: Tag: MaltaRef_2_6 .cvsignore 
                                  korg1212.c 
        linux/sound/pci/mixart: Tag: MaltaRef_2_6 mixart.c mixart.h 
                                mixart_core.c mixart_hwdep.c 
                                mixart_hwdep.h mixart_mixer.c 
        linux/sound/pci/nm256: Tag: MaltaRef_2_6 .cvsignore nm256.c 
        linux/sound/pci/rme9652: Tag: MaltaRef_2_6 .cvsignore hdsp.c 
                                 rme9652.c 
        linux/sound/pci/trident: Tag: MaltaRef_2_6 .cvsignore trident.c 
                                 trident_main.c trident_memory.c 
                                 trident_synth.c 
        linux/sound/pci/vx222: Tag: MaltaRef_2_6 vx222.c vx222.h 
                               vx222_ops.c 
        linux/sound/pci/ymfpci: Tag: MaltaRef_2_6 .cvsignore ymfpci.c 
                                ymfpci_main.c 
        linux/sound/pcmcia: Tag: MaltaRef_2_6 Kconfig 
        linux/sound/pcmcia/pdaudiocf: Tag: MaltaRef_2_6 pdaudiocf.c 
                                      pdaudiocf.h pdaudiocf_core.c 
                                      pdaudiocf_irq.c pdaudiocf_pcm.c 
        linux/sound/pcmcia/vx: Tag: MaltaRef_2_6 vx_entry.c vxp_mixer.c 
                               vxp_ops.c vxpocket.c vxpocket.h 
        linux/sound/ppc: Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                         awacs.c burgundy.c daca.c keywest.c pmac.c 
                         pmac.h powermac.c tumbler.c 
        linux/sound/sparc: Tag: MaltaRef_2_6 amd7930.c cs4231.c 
        linux/sound/synth: Tag: MaltaRef_2_6 .cvsignore util_mem.c 
        linux/sound/synth/emux: Tag: MaltaRef_2_6 .cvsignore emux.c 
                                emux_effect.c emux_hwdep.c emux_nrpn.c 
                                emux_oss.c emux_proc.c emux_seq.c 
                                emux_synth.c soundfont.c 
        linux/sound/usb: Tag: MaltaRef_2_6 Kconfig Makefile usbaudio.c 
                         usbaudio.h usbmidi.c usbmixer.c usbmixer_maps.c 
                         usbquirks.h 
        linux/usr      : Tag: MaltaRef_2_6 .cvsignore Makefile 
                         gen_init_cpio.c 
Added files:
        linux/Documentation: Tag: MaltaRef_2_6 ManagementStyle 
                             PCIEBUS-HOWTO.txt README.cycladesZ 
                             SecurityBugs atomic_ops.txt cpusets.txt 
                             dontdiff feature-removal-schedule.txt 
                             ibm-acpi.txt keys.txt kref.txt 
                             nommu-mmap.txt prio_tree.txt 
                             sched-stats.txt seclvl.txt sparse.txt 
                             stable_api_nonsense.txt 
                             time_interpolators.txt tty.txt 
        linux/Documentation/DocBook: Tag: MaltaRef_2_6 .cvsignore 
                                     librs.tmpl mtdnand.tmpl 
                                     stylesheet.xsl 
        linux/Documentation/RCU: Tag: MaltaRef_2_6 RTFP.txt UP.txt 
                                 arrayRCU.txt checklist.txt listRCU.txt 
                                 rcu.txt 
        linux/Documentation/aoe: Tag: MaltaRef_2_6 aoe.txt autoload.sh 
                                 mkdevs.sh mkshelf.sh status.sh todo.txt 
                                 udev-install.sh udev.txt 
        linux/Documentation/arm: Tag: MaltaRef_2_6 IXP2000 
        linux/Documentation/arm/Samsung-S3C24XX: Tag: MaltaRef_2_6 
                                                 GPIO.txt H1940.txt 
                                                 SMDK2440.txt 
                                                 Suspend.txt 
        linux/Documentation/cdrom: Tag: MaltaRef_2_6 packet-writing.txt 
        linux/Documentation/cpu-freq: Tag: MaltaRef_2_6 
                                      cpufreq-nforce2.txt 
                                      cpufreq-stats.txt 
        linux/Documentation/dvb: Tag: MaltaRef_2_6 README.dibusb 
                                 README.flexcop ci.txt get_dvb_firmware 
                                 udev.txt 
        linux/Documentation/filesystems: Tag: MaltaRef_2_6 sysfs-pci.txt 
        linux/Documentation/fujitsu/frv: Tag: MaltaRef_2_6 README.txt 
                                         atomic-ops.txt booting.txt 
                                         clock.txt configuring.txt 
                                         features.txt gdbinit 
                                         gdbstub.txt mmu-layout.txt 
        linux/Documentation/i2c: Tag: MaltaRef_2_6 i2c-stub 
        linux/Documentation/i2c/busses: Tag: MaltaRef_2_6 i2c-ali1535 
                                        i2c-ali1563 i2c-ali15x3 
                                        i2c-amd756 i2c-amd8111 i2c-i801 
                                        i2c-i810 i2c-nforce2 i2c-parport 
                                        i2c-parport-light i2c-pca-isa 
                                        i2c-piix4 i2c-prosavage 
                                        i2c-savage4 i2c-sis5595 
                                        i2c-sis630 i2c-sis69x i2c-via 
                                        i2c-viapro i2c-voodoo3 
                                        scx200_acb 
        linux/Documentation/i2c/chips: Tag: MaltaRef_2_6 smsc47b397.txt 
        linux/Documentation/i2o: Tag: MaltaRef_2_6 README ioctl 
        linux/Documentation/ia64: Tag: MaltaRef_2_6 serial.txt 
        linux/Documentation/infiniband: Tag: MaltaRef_2_6 ipoib.txt 
                                        sysfs.txt user_mad.txt 
        linux/Documentation/ioctl: Tag: MaltaRef_2_6 cdrom.txt hdio.txt 
        linux/Documentation/networking: Tag: MaltaRef_2_6 gen_stats.txt 
                                        proc_net_tcp.txt 
        linux/Documentation/power: Tag: MaltaRef_2_6 kernel_threads.txt 
                                   video_extension.txt 
        linux/Documentation/powerpc: Tag: MaltaRef_2_6 cpu_features.txt 
                                     eeh-pci-error-recovery.txt 
        linux/Documentation/s390: Tag: MaltaRef_2_6 monreader.txt 
        linux/Documentation/scsi: Tag: MaltaRef_2_6 ChangeLog.1992-1997 
                                  ChangeLog.lpfc lpfc.txt megaraid.txt 
        linux/Documentation/sound/alsa: Tag: MaltaRef_2_6 Bt87x.txt 
                                        VIA82xx-mixer.txt hda_codec.txt 
        linux/Documentation/usb: Tag: MaltaRef_2_6 gadget_serial.txt 
                                 usbmon.txt 
        linux/Documentation/w1: Tag: MaltaRef_2_6 w1.generic 
        linux/arch/alpha/kernel: Tag: MaltaRef_2_6 io.c 
        linux/arch/arm/boot/compressed: Tag: MaltaRef_2_6 big-endian.S 
                                        head-sharpsl.S 
        linux/arch/arm/common: Tag: MaltaRef_2_6 Kconfig icst307.c 
                               rtctime.c scoop.c sharpsl_param.c 
        linux/arch/arm/configs: Tag: MaltaRef_2_6 enp2611_defconfig 
                                ep80219_defconfig h7201_defconfig 
                                h7202_defconfig iq31244_defconfig 
                                iq80331_defconfig iq80332_defconfig 
                                ixdp2400_defconfig ixdp2401_defconfig 
                                ixdp2800_defconfig ixdp2801_defconfig 
                                omap_h2_1610_defconfig 
                                pxa255-idp_defconfig simpad_defconfig 
        linux/arch/arm/kernel: Tag: MaltaRef_2_6 smp.c 
        linux/arch/arm/lib: Tag: MaltaRef_2_6 bitops.h io-readsl.S 
        linux/arch/arm/mach-clps711x: Tag: MaltaRef_2_6 Makefile.boot 
                                      common.h 
        linux/arch/arm/mach-clps7500: Tag: MaltaRef_2_6 Makefile.boot 
        linux/arch/arm/mach-ebsa110: Tag: MaltaRef_2_6 Makefile.boot 
        linux/arch/arm/mach-epxa10db: Tag: MaltaRef_2_6 Makefile.boot 
        linux/arch/arm/mach-footbridge: Tag: MaltaRef_2_6 Makefile.boot 
                                        co285.c common.c common.h 
                                        dc21285-timer.c ebsa285.c 
                                        isa-timer.c isa.c personal.c 
        linux/arch/arm/mach-h720x: Tag: MaltaRef_2_6 Kconfig Makefile 
                                   Makefile.boot common.c common.h 
                                   cpu-h7201.c cpu-h7202.c h7201-eval.c 
                                   h7202-eval.c 
        linux/arch/arm/mach-imx: Tag: MaltaRef_2_6 Makefile.boot 
        linux/arch/arm/mach-integrator: Tag: MaltaRef_2_6 Makefile.boot 
                                        common.h 
        linux/arch/arm/mach-iop3xx: Tag: MaltaRef_2_6 Makefile.boot 
                                    common.c iop321-setup.c iop331-irq.c 
                                    iop331-pci.c iop331-setup.c 
                                    iop331-time.c iq31244-mm.c 
                                    iq31244-pci.c iq80321-mm.c 
                                    iq80331-mm.c iq80331-pci.c 
                                    iq80332-mm.c iq80332-pci.c 
        linux/arch/arm/mach-ixp2000: Tag: MaltaRef_2_6 Kconfig Makefile 
                                     Makefile.boot core.c enp2611.c 
                                     ixdp2400.c ixdp2800.c ixdp2x00.c 
                                     ixdp2x01.c pci.c 
        linux/arch/arm/mach-ixp4xx: Tag: MaltaRef_2_6 Makefile.boot 
                                    gtwx5715-pci.c gtwx5715-setup.c 
                                    ixdpg425-pci.c 
        linux/arch/arm/mach-l7200: Tag: MaltaRef_2_6 Makefile.boot 
        linux/arch/arm/mach-lh7a40x: Tag: MaltaRef_2_6 Makefile.boot 
                                     common.h 
        linux/arch/arm/mach-omap: Tag: MaltaRef_2_6 Makefile.boot 
                                  board-netstar.c board-voiceblue.c 
                                  clock.c clock.h leds-osk.c pm.c 
                                  sleep.S 
        linux/arch/arm/mach-pxa: Tag: MaltaRef_2_6 Makefile.boot corgi.c 
                                 corgi_ssp.c poodle.c ssp.c 
        linux/arch/arm/mach-rpc: Tag: MaltaRef_2_6 Makefile.boot 
        linux/arch/arm/mach-s3c2410: Tag: MaltaRef_2_6 Makefile.boot 
                                     cpu.c cpu.h mach-n30.c 
                                     mach-nexcoder.c mach-otom.c 
                                     mach-rx3715.c mach-smdk2440.c pm.c 
                                     pm.h s3c2440-dsc.c s3c2440.c 
                                     s3c2440.h sleep.S usb-simtec.c 
                                     usb-simtec.h 
        linux/arch/arm/mach-sa1100: Tag: MaltaRef_2_6 Makefile.boot 
        linux/arch/arm/mach-shark: Tag: MaltaRef_2_6 Makefile.boot 
        linux/arch/arm/mach-versatile: Tag: MaltaRef_2_6 Kconfig 
                                       Makefile.boot core.h 
                                       versatile_ab.c versatile_pb.c 
        linux/arch/arm/mm: Tag: MaltaRef_2_6 abort-macro.S 
                           copypage-v4mc.c flush.c 
        linux/arch/arm26/kernel: Tag: MaltaRef_2_6 calls.S head.S 
        linux/arch/arm26/lib: Tag: MaltaRef_2_6 io-readsl.S io-readsw.S 
                              io-writesw.S 
        linux/arch/arm26/machine: Tag: MaltaRef_2_6 latches.c 
        linux/arch/arm26/mm: Tag: MaltaRef_2_6 memc.c small_page.c 
        linux/arch/cris/arch-v10/kernel: Tag: MaltaRef_2_6 crisksyms.c 
        linux/arch/frv : Tag: MaltaRef_2_6 Kconfig Kconfig.debug 
                         Makefile 
        linux/arch/frv/boot: Tag: MaltaRef_2_6 Makefile 
        linux/arch/frv/kernel: Tag: MaltaRef_2_6 Makefile break.S 
                               cmode.S debug-stub.c dma.c entry-table.S 
                               entry.S frv_ksyms.c gdb-io.c gdb-io.h 
                               gdb-stub.c head-mmu-fr451.S 
                               head-uc-fr401.S head-uc-fr451.S 
                               head-uc-fr555.S head.S head.inc 
                               init_task.c irq-mb93091.c irq-mb93093.c 
                               irq-mb93493.c irq-routing.c irq.c 
                               kernel_thread.S local.h pm-mb93093.c pm.c 
                               process.c ptrace.c semaphore.c setup.c 
                               signal.c sleep.S switch_to.S sys_frv.c 
                               sysctl.c time.c traps.c uaccess.c 
                               vmlinux.lds.S 
        linux/arch/frv/lib: Tag: MaltaRef_2_6 Makefile __ashldi3.S 
                            __ashrdi3.S __lshrdi3.S __muldi3.S 
                            __negdi2.S atomic-ops.S cache.S checksum.c 
                            insl_ns.S insl_sw.S memcpy.S memset.S 
                            outsl_ns.S outsl_sw.S 
        linux/arch/frv/mb93090-mb00: Tag: MaltaRef_2_6 Makefile 
                                     pci-dma-nommu.c pci-dma.c pci-frv.c 
                                     pci-frv.h pci-irq.c pci-vdk.c 
        linux/arch/frv/mm: Tag: MaltaRef_2_6 Makefile cache-page.c 
                           dma-alloc.c elf-fdpic.c extable.c fault.c 
                           highmem.c init.c kmap.c mmu-context.c 
                           pgalloc.c tlb-flush.S tlb-miss.S unaligned.c 
        linux/arch/i386/crypto: Tag: MaltaRef_2_6 .cvsignore 
        linux/arch/i386/kernel: Tag: MaltaRef_2_6 kprobes.c quirks.c 
                                reboot_fixups.c syscall_table.S 
                                vmlinux.lds vsyscall-int80.so 
                                vsyscall-note.S vsyscall-sysenter.so 
                                vsyscall.lds.S 
        linux/arch/i386/kernel/acpi: Tag: MaltaRef_2_6 .cvsignore 
                                     earlyquirk.c 
        linux/arch/i386/kernel/cpu: Tag: MaltaRef_2_6 .cvsignore 
                                    intel_cacheinfo.c 
        linux/arch/i386/kernel/cpu/cpufreq: Tag: MaltaRef_2_6 .cvsignore 
                                            acpi-cpufreq.c 
                                            cpufreq-nforce2.c 
                                            sc520_freq.c 
                                            speedstep-est-common.h 
        linux/arch/i386/kernel/cpu/mcheck: Tag: MaltaRef_2_6 .cvsignore 
        linux/arch/i386/kernel/cpu/mtrr: Tag: MaltaRef_2_6 .cvsignore 
        linux/arch/i386/kernel/timers: Tag: MaltaRef_2_6 .cvsignore 
        linux/arch/i386/lib: Tag: MaltaRef_2_6 putuser.S 
        linux/arch/i386/mach-default: Tag: MaltaRef_2_6 .cvsignore 
        linux/arch/i386/mm: Tag: MaltaRef_2_6 mmap.c 
        linux/arch/i386/oprofile: Tag: MaltaRef_2_6 .cvsignore 
                                  backtrace.c 
        linux/arch/i386/pci: Tag: MaltaRef_2_6 .cvsignore 
        linux/arch/i386/power: Tag: MaltaRef_2_6 .cvsignore 
        linux/arch/ia64/configs: Tag: MaltaRef_2_6 bigsur_defconfig 
                                 tiger_defconfig 
        linux/arch/ia64/hp/common: Tag: MaltaRef_2_6 hwsw_iommu.c 
        linux/arch/ia64/hp/zx1: Tag: MaltaRef_2_6 
                                hpzx1_swiotlb_machvec.c 
        linux/arch/ia64/kernel: Tag: MaltaRef_2_6 domain.c mca_drv.c 
                                mca_drv.h mca_drv_asm.S topology.c 
        linux/arch/ia64/oprofile: Tag: MaltaRef_2_6 backtrace.c 
                                  perfmon.c 
        linux/arch/ia64/sn/include: Tag: MaltaRef_2_6 ioerror.h tio.h 
        linux/arch/ia64/sn/include/pci: Tag: MaltaRef_2_6 
                                        pcibr_provider.h pic.h tiocp.h 
        linux/arch/ia64/sn/include/xtalk: Tag: MaltaRef_2_6 hubdev.h 
                                          xbow.h xwidgetdev.h 
        linux/arch/ia64/sn/kernel: Tag: MaltaRef_2_6 bte_error.c 
                                   huberror.c io_init.c iomv.c 
                                   klconflib.c tiocx.c xp_main.c 
                                   xp_nofault.S xpc.h xpc_channel.c 
                                   xpc_main.c xpc_partition.c xpnet.c 
        linux/arch/ia64/sn/kernel/sn2: Tag: MaltaRef_2_6 sn_hwperf.c 
        linux/arch/ia64/sn/pci: Tag: MaltaRef_2_6 Makefile pci_dma.c 
                                tioca_provider.c 
        linux/arch/ia64/sn/pci/pcibr: Tag: MaltaRef_2_6 Makefile 
                                      pcibr_ate.c pcibr_dma.c 
                                      pcibr_provider.c pcibr_reg.c 
        linux/arch/m32r: Tag: MaltaRef_2_6 Kconfig Kconfig.debug 
                         Makefile defconfig 
        linux/arch/m32r/boot: Tag: MaltaRef_2_6 Makefile setup.S 
        linux/arch/m32r/boot/compressed: Tag: MaltaRef_2_6 Makefile 
                                         boot.h head.S install.sh 
                                         m32r_sio.c misc.c vmlinux.lds.S 
                                         vmlinux.scr 
        linux/arch/m32r/kernel: Tag: MaltaRef_2_6 Makefile align.c 
                                entry.S head.S init_task.c io_m32700ut.c 
                                io_mappi.c io_mappi2.c io_oaks32r.c 
                                io_opsput.c io_usrv.c irq.c m32r_ksyms.c 
                                module.c process.c ptrace.c semaphore.c 
                                setup.c setup_m32700ut.c setup_mappi.c 
                                setup_mappi2.c setup_oaks32r.c 
                                setup_opsput.c setup_usrv.c signal.c 
                                smp.c smpboot.c sys_m32r.c time.c 
                                traps.c vmlinux.lds.S 
        linux/arch/m32r/lib: Tag: MaltaRef_2_6 Makefile ashxdi3.S 
                             checksum.S csum_partial_copy.c delay.c 
                             getuser.S memcpy.S memset.S putuser.S 
                             strlen.S usercopy.c 
        linux/arch/m32r/m32700ut: Tag: MaltaRef_2_6 
                                  defconfig.m32700ut.smp 
                                  defconfig.m32700ut.up 
                                  dot.gdbinit_200MHz_16MB 
                                  dot.gdbinit_300MHz_32MB 
                                  dot.gdbinit_400MHz_32MB 
        linux/arch/m32r/mappi: Tag: MaltaRef_2_6 defconfig.nommu 
                               defconfig.smp defconfig.up dot.gdbinit 
                               dot.gdbinit.nommu dot.gdbinit.smp 
        linux/arch/m32r/mappi2: Tag: MaltaRef_2_6 defconfig.vdec2 
                                dot.gdbinit.vdec2 
        linux/arch/m32r/mm: Tag: MaltaRef_2_6 Makefile cache.c 
                            discontig.c extable.c fault-nommu.c fault.c 
                            init.c ioremap-nommu.c ioremap.c mmu.S 
                            page.S 
        linux/arch/m32r/oaks32r: Tag: MaltaRef_2_6 defconfig.nommu 
                                 dot.gdbinit.nommu 
        linux/arch/m32r/oprofile: Tag: MaltaRef_2_6 Kconfig Makefile 
                                  init.c 
        linux/arch/m32r/opsput: Tag: MaltaRef_2_6 defconfig.opsput 
                                dot.gdbinit 
        linux/arch/m68k/configs: Tag: MaltaRef_2_6 amiga_defconfig 
                                 apollo_defconfig atari_defconfig 
                                 bvme6000_defconfig hp300_defconfig 
                                 mac_defconfig mvme147_defconfig 
                                 mvme16x_defconfig q40_defconfig 
                                 sun3_defconfig sun3x_defconfig 
        linux/arch/m68knommu/lib: Tag: MaltaRef_2_6 delay.c 
        linux/arch/m68knommu/platform/527x: Tag: MaltaRef_2_6 Makefile 
                                            config.c 
        linux/arch/m68knommu/platform/528x: Tag: MaltaRef_2_6 Makefile 
                                            config.c 
        linux/arch/m68knommu/platform/5307: Tag: MaltaRef_2_6 head.S 
                                            pit.c 
        linux/arch/m68knommu/platform/68328: Tag: MaltaRef_2_6 
                                             head-pilot.S head-ram.S 
                                             head-rom.S 
        linux/arch/mips/au1000/common: Tag: MaltaRef_2_6 platform.c 
        linux/arch/mips/au1000/pb1200: Tag: MaltaRef_2_6 Makefile 
                                       board_setup.c init.c irqmap.c 
        linux/arch/mips/configs: Tag: MaltaRef_2_6 db1550_defconfig 
                                 ocelot_3_defconfig 
        linux/arch/mips/ddb5xxx: Tag: MaltaRef_2_6 Kconfig 
        linux/arch/mips/gt64120/ev64120: Tag: MaltaRef_2_6 Kconfig 
        linux/arch/mips/ite-boards: Tag: MaltaRef_2_6 Kconfig 
        linux/arch/mips/jazz: Tag: MaltaRef_2_6 Kconfig 
        linux/arch/mips/kernel: Tag: MaltaRef_2_6 dma-no-isa.c 
                                irix5sys.S irq-rm9000.c signal-common.h 
        linux/arch/mips/lasat: Tag: MaltaRef_2_6 Kconfig 
        linux/arch/mips/lib: Tag: MaltaRef_2_6 uncached.c 
        linux/arch/mips/mm: Tag: MaltaRef_2_6 dma-ip32.c tlbex-fault.S 
                            tlbex.c 
        linux/arch/mips/momentum: Tag: MaltaRef_2_6 Kconfig 
        linux/arch/mips/momentum/ocelot_3: Tag: MaltaRef_2_6 Makefile 
                                           int-handler.S irq.c 
                                           ocelot_3_fpga.h prom.c 
                                           reset.c setup.c 
        linux/arch/mips/oprofile: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                  Makefile common.c op_impl.h 
                                  op_model_rm9000.c 
        linux/arch/mips/pci: Tag: MaltaRef_2_6 fixup-ocelot3.c 
                             fixup-sb1250.c fixup-vr4133.c 
        linux/arch/mips/pmc-sierra: Tag: MaltaRef_2_6 Kconfig 
        linux/arch/mips/sgi-ip27: Tag: MaltaRef_2_6 Kconfig ip27-dbgio.c 
        linux/arch/mips/sgi-ip32: Tag: MaltaRef_2_6 ip32-memory.c 
        linux/arch/mips/sibyte: Tag: MaltaRef_2_6 Kconfig 
        linux/arch/mips/tx4927: Tag: MaltaRef_2_6 Kconfig 
        linux/arch/mips/vr41xx: Tag: MaltaRef_2_6 Kconfig 
        linux/arch/mips/vr41xx/common: Tag: MaltaRef_2_6 irq.c 
        linux/arch/mips/vr41xx/nec-cmbvr4133: Tag: MaltaRef_2_6 Makefile 
                                              init.c irq.c m1535plus.c 
                                              setup.c 
        linux/arch/parisc: Tag: MaltaRef_2_6 install.sh 
        linux/arch/parisc/kernel: Tag: MaltaRef_2_6 topology.c 
        linux/arch/parisc/lib: Tag: MaltaRef_2_6 fixup.S iomap.c 
                               memcpy.c 
        linux/arch/ppc/boot/include: Tag: MaltaRef_2_6 mpsc_defs.h 
                                     serial.h 
        linux/arch/ppc/boot/simple: Tag: MaltaRef_2_6 chrpmap.c 
                                    misc-chestnut.c misc-cpci690.c 
                                    misc-ev64260.c misc-katana.c 
                                    misc-mv64x60.c misc-radstone_ppc7d.c 
                                    mv64x60_tty.c openbios.c pibs.c 
                                    prepmap.c 
        linux/arch/ppc/configs: Tag: MaltaRef_2_6 chestnut_defconfig 
                                cpci690_defconfig hdpu_defconfig 
                                katana_defconfig luan_defconfig 
                                mpc834x_sys_defconfig 
                                mpc8540_ads_defconfig 
                                mpc8555_cds_defconfig 
                                mpc8560_ads_defconfig 
                                radstone_ppc7d_defconfig 
                                stx_gp3_defconfig 
        linux/arch/ppc/kernel: Tag: MaltaRef_2_6 fpu.S head_booke.h 
                               head_fsl_booke.S perfmon.c 
                               perfmon_fsl_booke.c swsusp.S 
        linux/arch/ppc/oprofile: Tag: MaltaRef_2_6 common.c op_impl.h 
                                 op_model_fsl_booke.c 
        linux/arch/ppc/platforms: Tag: MaltaRef_2_6 chestnut.c 
                                  chestnut.h chrp_pegasos_eth.c 
                                  cpci690.c cpci690.h ev64260.c hdpu.c 
                                  hdpu.h katana.c katana.h lopec.c 
                                  lopec.h mvme5100.c pmac_cache.S 
                                  pq2ads.c radstone_ppc7d.c 
                                  radstone_ppc7d.h 
        linux/arch/ppc/platforms/4xx: Tag: MaltaRef_2_6 ibm440sp.c 
                                      ibm440sp.h luan.c luan.h 
                                      virtex-ii_pro.c virtex-ii_pro.h 
                                      xilinx_ml300.c xilinx_ml300.h 
        linux/arch/ppc/platforms/4xx/xparameters: Tag: MaltaRef_2_6 
                                                  xparameters_ml300.h 
        linux/arch/ppc/platforms/83xx: Tag: MaltaRef_2_6 Makefile 
                                       mpc834x_sys.c mpc834x_sys.h 
        linux/arch/ppc/platforms/85xx: Tag: MaltaRef_2_6 stx_gp3.c 
                                       stx_gp3.h 
        linux/arch/ppc/syslib: Tag: MaltaRef_2_6 gen550.h 
                               ibm440sp_common.c ibm440sp_common.h 
                               ipic.c ipic.h m82xx_pci.c m82xx_pci.h 
                               m8xx_wdt.c m8xx_wdt.h mpc52xx_devices.c 
                               mpc52xx_pci.c mpc52xx_pci.h mpc52xx_sys.c 
                               mpc83xx_devices.c mpc83xx_sys.c 
                               mpc85xx_devices.c mpc85xx_sys.c 
                               mv64360_pic.c mv64x60.c mv64x60_dbg.c 
                               mv64x60_win.c ppc403_pic.c 
                               ppc83xx_setup.c ppc83xx_setup.h ppc_sys.c 
                               xilinx_pic.c 
        linux/arch/ppc64/configs: Tag: MaltaRef_2_6 maple_defconfig 
        linux/arch/ppc64/kernel: Tag: MaltaRef_2_6 iSeries_smp.c iomap.c 
                                 kprobes.c maple_pci.c maple_setup.c 
                                 maple_time.c mpic.c mpic.h 
                                 pSeries_reconfig.c pSeries_setup.c 
                                 pSeries_smp.c pci_direct_iommu.c pmc.c 
                                 prom_init.c u3_iommu.c vdso.c 
        linux/arch/ppc64/kernel/vdso32: Tag: MaltaRef_2_6 Makefile 
                                        cacheflush.S datapage.S 
                                        gettimeofday.S note.S sigtramp.S 
                                        vdso32.lds.S vdso32_wrapper.S 
        linux/arch/ppc64/kernel/vdso64: Tag: MaltaRef_2_6 Makefile 
                                        cacheflush.S datapage.S 
                                        gettimeofday.S note.S sigtramp.S 
                                        vdso64.lds.S vdso64_wrapper.S 
        linux/arch/ppc64/lib: Tag: MaltaRef_2_6 sstep.c 
        linux/arch/ppc64/mm: Tag: MaltaRef_2_6 hash_native.c mmap.c 
        linux/arch/ppc64/xmon: Tag: MaltaRef_2_6 setjmp.S 
        linux/arch/s390/kernel: Tag: MaltaRef_2_6 irq.c 
        linux/arch/s390/mm: Tag: MaltaRef_2_6 mmap.c 
        linux/arch/sh/boards/hp6xx/hp620: Tag: MaltaRef_2_6 setup.c 
        linux/arch/sh/boards/renesas/edosk7705: Tag: MaltaRef_2_6 
                                                Makefile io.c setup.c 
        linux/arch/sh/boards/se/73180: Tag: MaltaRef_2_6 Makefile io.c 
                                       irq.c led.c setup.c 
        linux/arch/sh/boards/sh03: Tag: MaltaRef_2_6 Makefile led.c 
                                   rtc.c setup.c 
        linux/arch/sh/boards/superh/microdev: Tag: MaltaRef_2_6 Makefile 
                                              io.c irq.c led.c setup.c 
        linux/arch/sh/configs: Tag: MaltaRef_2_6 microdev_defconfig 
                               se73180_defconfig se7705_defconfig 
                               se7750_defconfig sh03_defconfig 
        linux/arch/sh/drivers/pci: Tag: MaltaRef_2_6 fixups-sh03.c 
                                   ops-sh03.c 
        linux/arch/sh/kernel: Tag: MaltaRef_2_6 asm-offsets.c 
        linux/arch/sh/kernel/cpu/sh2: Tag: MaltaRef_2_6 probe.c 
        linux/arch/sh/kernel/cpu/sh3: Tag: MaltaRef_2_6 probe.c 
        linux/arch/sh/kernel/cpu/sh4: Tag: MaltaRef_2_6 probe.c 
        linux/arch/sh/lib: Tag: MaltaRef_2_6 memcpy-sh4.S 
        linux/arch/sh/mm: Tag: MaltaRef_2_6 cache-sh7705.c pg-sh7705.c 
        linux/arch/sh/oprofile: Tag: MaltaRef_2_6 op_model_sh7750.c 
        linux/arch/sh/tools: Tag: MaltaRef_2_6 gen-mach-types 
        linux/arch/sh64/kernel: Tag: MaltaRef_2_6 module.c 
        linux/arch/sh64/lib: Tag: MaltaRef_2_6 iomap.c 
        linux/arch/sh64/mach-cayman: Tag: MaltaRef_2_6 iomap.c 
        linux/arch/sparc64/kernel: Tag: MaltaRef_2_6 kprobes.c 
        linux/arch/sparc64/lib: Tag: MaltaRef_2_6 bzero.S csum_copy.S 
                                csum_copy_from_user.S 
                                csum_copy_to_user.S delay.c iomap.c 
                                rwsem.S 
        linux/arch/sparc64/prom: Tag: MaltaRef_2_6 cif.S 
        linux/arch/um  : Tag: MaltaRef_2_6 Kconfig_i386 Kconfig_x86_64 
                         Makefile-x86_64 
        linux/arch/um/drivers: Tag: MaltaRef_2_6 cow.h cow_sys.h 
                               cow_user.c random.c stderr_console.c 
        linux/arch/um/include: Tag: MaltaRef_2_6 common-offsets.h 
                               elf_user.h irq_kern.h mem_kern.h 
                               registers.h 
        linux/arch/um/include/sysdep-i386: Tag: MaltaRef_2_6 faultinfo.h 
                                           signal.h skas_ptrace.h 
        linux/arch/um/include/sysdep-ia64: Tag: MaltaRef_2_6 
                                           skas_ptrace.h 
        linux/arch/um/include/sysdep-ppc: Tag: MaltaRef_2_6 
                                          skas_ptrace.h 
        linux/arch/um/include/sysdep-x86_64: Tag: MaltaRef_2_6 
                                             checksum.h faultinfo.h 
                                             ptrace.h ptrace_user.h 
                                             sigcontext.h signal.h 
                                             skas_ptrace.h syscalls.h 
        linux/arch/um/kernel: Tag: MaltaRef_2_6 dyn.lds.S initrd.c 
                              main.c physmem.c uml.lds.S 
        linux/arch/um/kernel/skas: Tag: MaltaRef_2_6 uaccess.c 
        linux/arch/um/kernel/skas/include: Tag: MaltaRef_2_6 mmu-skas.h 
                                           mode-skas.h mode_kern-skas.h 
                                           uaccess-skas.h 
        linux/arch/um/kernel/skas/util: Tag: MaltaRef_2_6 
                                        mk_ptregs-i386.c 
                                        mk_ptregs-x86_64.c 
        linux/arch/um/kernel/tt: Tag: MaltaRef_2_6 uaccess.c 
        linux/arch/um/kernel/tt/include: Tag: MaltaRef_2_6 mmu-tt.h 
                                         mode-tt.h mode_kern-tt.h 
                                         uaccess-tt.h 
        linux/arch/um/os-Linux: Tag: MaltaRef_2_6 elf_aux.c signal.c 
                                time.c user_syms.c 
        linux/arch/um/os-Linux/sys-i386: Tag: MaltaRef_2_6 Makefile 
                                         registers.c 
        linux/arch/um/os-Linux/sys-x86_64: Tag: MaltaRef_2_6 Makefile 
                                           registers.c 
        linux/arch/um/os-Linux/util: Tag: MaltaRef_2_6 Makefile 
                                     mk_user_constants.c 
        linux/arch/um/scripts: Tag: MaltaRef_2_6 Makefile.rules 
        linux/arch/um/sys-i386: Tag: MaltaRef_2_6 delay.c 
                                kernel-offsets.c signal.c 
                                sys_call_table.S user-offsets.c 
        linux/arch/um/sys-i386/util: Tag: MaltaRef_2_6 mk_thread.c 
        linux/arch/um/sys-x86_64: Tag: MaltaRef_2_6 Makefile bugs.c 
                                  delay.c fault.c kernel-offsets.c 
                                  ksyms.c mem.c ptrace.c ptrace_user.c 
                                  sigcontext.c signal.c syscall_table.c 
                                  syscalls.c sysrq.c um_module.c 
                                  user-offsets.c 
        linux/arch/um/sys-x86_64/util: Tag: MaltaRef_2_6 Makefile 
                                       mk_sc.c mk_thread.c 
        linux/arch/um/util: Tag: MaltaRef_2_6 mk_constants.c mk_task.c 
        linux/arch/x86_64/kernel: Tag: MaltaRef_2_6 genapic.c 
                                  genapic_cluster.c genapic_flat.c 
                                  kprobes.c mce_intel.c pmtimer.c 
        linux/arch/x86_64/lib: Tag: MaltaRef_2_6 bitops.c 
        linux/arch/x86_64/mm: Tag: MaltaRef_2_6 srat.c 
        linux/arch/x86_64/pci: Tag: MaltaRef_2_6 Makefile-BUS k8-bus.c 
        linux/crypto   : Tag: MaltaRef_2_6 anubis.c tgr192.c wp512.c 
        linux/drivers/acpi: Tag: MaltaRef_2_6 acpi_memhotplug.c 
                            container.c ibm_acpi.c processor_core.c 
                            processor_idle.c processor_perflib.c 
                            processor_thermal.c processor_throttling.c 
                            video.c 
        linux/drivers/acpi/sleep: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/base: Tag: MaltaRef_2_6 attribute_container.c 
                            transport_class.c 
        linux/drivers/block: Tag: MaltaRef_2_6 pktcdvd.c 
        linux/drivers/block/aoe: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                 aoe.h aoeblk.c aoechr.c aoecmd.c 
                                 aoedev.c aoemain.c aoenet.c 
        linux/drivers/bluetooth: Tag: MaltaRef_2_6 bpa10x.c 
        linux/drivers/char: Tag: MaltaRef_2_6 ds1302.c mbcs.c mbcs.h 
                            mmtimer.c mxser.h s3c2410-rtc.c snsc_event.c 
        linux/drivers/char/agp: Tag: MaltaRef_2_6 sgi-agp.c 
        linux/drivers/char/drm: Tag: MaltaRef_2_6 ati_pcigart.c 
                                drm_agpsupport.c drm_auth.c drm_bufs.c 
                                drm_context.c drm_core.h drm_dma.c 
                                drm_drawable.c drm_drv.c drm_fops.c 
                                drm_init.c drm_ioctl.c drm_irq.c 
                                drm_lock.c drm_memory.c drm_pci.c 
                                drm_proc.c drm_scatter.c drm_stub.c 
                                drm_sysfs.c drm_vm.c i915_dma.c 
                                i915_drm.h i915_drv.c i915_drv.h 
                                i915_irq.c i915_mem.c tdfx_drv.h 
        linux/drivers/char/ipmi: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/char/tpm: Tag: MaltaRef_2_6 Kconfig Makefile tpm.c 
                                tpm.h tpm_atmel.c tpm_nsc.c 
        linux/drivers/char/watchdog: Tag: MaltaRef_2_6 mpc8xx_wdt.c 
                                     s3c2410_wdt.c 
        linux/drivers/cpufreq: Tag: MaltaRef_2_6 .cvsignore 
                               cpufreq_conservative.c cpufreq_ondemand.c 
                               cpufreq_stats.c 
        linux/drivers/crypto: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                              Makefile padlock-aes.c padlock-generic.c 
                              padlock.h 
        linux/drivers/dio: Tag: MaltaRef_2_6 dio-driver.c dio-sysfs.c 
        linux/drivers/i2c/algos: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/i2c/busses: Tag: MaltaRef_2_6 .cvsignore 
                                  i2c-amd756-s4882.c i2c-au1550.c 
                                  i2c-au1550.h i2c-mv64xxx.c 
                                  i2c-s3c2410.c i2c-stub.c 
        linux/drivers/i2c/chips: Tag: MaltaRef_2_6 .cvsignore adm1026.c 
                                 ds1337.c fscpos.c gl520sm.c 
                                 isp1301_omap.c lm63.c lm87.c lm92.c 
                                 m41t00.c pc87360.c sis5595.c 
                                 smsc47b397.c 
        linux/drivers/ide/arm: Tag: MaltaRef_2_6 bast-ide.c 
        linux/drivers/ide/cris: Tag: MaltaRef_2_6 Makefile ide-v10.c 
        linux/drivers/infiniband: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                  Makefile 
        linux/drivers/infiniband/core: Tag: MaltaRef_2_6 .cvsignore 
                                       Makefile agent.c agent.h 
                                       agent_priv.h cache.c core_priv.h 
                                       device.c fmr_pool.c mad.c 
                                       mad_priv.h packer.c sa_query.c 
                                       smi.c smi.h sysfs.c ud_header.c 
                                       user_mad.c verbs.c 
        linux/drivers/infiniband/hw/mthca: Tag: MaltaRef_2_6 .cvsignore 
                                           Kconfig Makefile 
                                           mthca_allocator.c mthca_av.c 
                                           mthca_cmd.c mthca_cmd.h 
                                           mthca_config_reg.h mthca_cq.c 
                                           mthca_dev.h mthca_doorbell.h 
                                           mthca_eq.c mthca_mad.c 
                                           mthca_main.c mthca_mcg.c 
                                           mthca_memfree.c 
                                           mthca_memfree.h mthca_mr.c 
                                           mthca_pd.c mthca_profile.c 
                                           mthca_profile.h 
                                           mthca_provider.c 
                                           mthca_provider.h mthca_qp.c 
                                           mthca_reset.c mthca_uar.c 
        linux/drivers/infiniband/include: Tag: MaltaRef_2_6 ib_cache.h 
                                          ib_fmr_pool.h ib_mad.h 
                                          ib_pack.h ib_sa.h ib_smi.h 
                                          ib_user_mad.h ib_verbs.h 
        linux/drivers/infiniband/ulp/ipoib: Tag: MaltaRef_2_6 .cvsignore 
                                            Kconfig Makefile ipoib.h 
                                            ipoib_fs.c ipoib_ib.c 
                                            ipoib_main.c 
                                            ipoib_multicast.c 
                                            ipoib_verbs.c ipoib_vlan.c 
        linux/drivers/input/joystick/iforce: Tag: MaltaRef_2_6 
                                             .cvsignore 
        linux/drivers/input/keyboard: Tag: MaltaRef_2_6 corgikbd.c 
                                      hil_kbd.c hilkbd.c locomokbd.c 
        linux/drivers/input/misc: Tag: MaltaRef_2_6 .cvsignore 
                                  hp_sdc_rtc.c 
        linux/drivers/input/mouse: Tag: MaltaRef_2_6 alps.c alps.h 
                                   hil_ptr.c 
        linux/drivers/input/serio: Tag: MaltaRef_2_6 hil_mlc.c hp_sdc.c 
                                   hp_sdc_mlc.c i8042-x86ia64io.h 
                                   libps2.c serio_raw.c 
        linux/drivers/input/touchscreen: Tag: MaltaRef_2_6 .cvsignore 
                                         corgi_ts.c elo.c 
                                         hp680_ts_input.c mk712.c 
                                         mtouch.c 
        linux/drivers/isdn/hardware/eicon: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/isdn/hisax: Tag: MaltaRef_2_6 hfc4s8s_l1.c 
                                  hfc4s8s_l1.h hfc_usb.h 
        linux/drivers/macintosh: Tag: MaltaRef_2_6 smu.c 
        linux/drivers/md: Tag: MaltaRef_2_6 dm-bio-record.h dm-emc.c 
                          dm-hw-handler.c dm-hw-handler.h dm-mpath.c 
                          dm-mpath.h dm-path-selector.c 
                          dm-path-selector.h dm-round-robin.c faulty.c 
                          raid10.c raid6altivec.uc 
        linux/drivers/media/dvb/b2c2: Tag: MaltaRef_2_6 flexcop-common.h 
                                      flexcop-dma.c flexcop-eeprom.c 
                                      flexcop-fe-tuner.c 
                                      flexcop-hw-filter.c flexcop-i2c.c 
                                      flexcop-misc.c flexcop-pci.c 
                                      flexcop-reg.h flexcop-sram.c 
                                      flexcop-usb.c flexcop-usb.h 
                                      flexcop.c flexcop.h 
        linux/drivers/media/dvb/bt8xx: Tag: MaltaRef_2_6 dst.c dst_ca.c 
                                       dst_ca.h dst_common.h dst_priv.h 
        linux/drivers/media/dvb/cinergyT2: Tag: MaltaRef_2_6 .cvsignore 
                                           Kconfig Makefile cinergyT2.c 
        linux/drivers/media/dvb/dibusb: Tag: MaltaRef_2_6 .cvsignore 
                                        Kconfig Makefile 
                                        dvb-dibusb-core.c 
                                        dvb-dibusb-dvb.c 
                                        dvb-dibusb-fe-i2c.c 
                                        dvb-dibusb-firmware.c 
                                        dvb-dibusb-remote.c 
                                        dvb-dibusb-usb.c dvb-dibusb.h 
                                        dvb-fe-dtt200u.c 
        linux/drivers/media/dvb/frontends: Tag: MaltaRef_2_6 at76c651.h 
                                           cx22700.c cx22700.h cx22702.c 
                                           cx22702.h cx24110.h 
                                           dib3000-common.c 
                                           dib3000-common.h dib3000.h 
                                           dib3000mb.c dib3000mb_priv.h 
                                           dib3000mc.c dib3000mc_priv.h 
                                           dvb-pll.c dvb-pll.h 
                                           dvb_dummy_fe.h l64781.c 
                                           l64781.h mt312_priv.h mt352.c 
                                           mt352.h mt352_priv.h 
                                           nxt2002.c nxt2002.h 
                                           nxt6000_priv.h or51132.c 
                                           or51132.h or51211.c or51211.h 
                                           sp8870.c sp8870.h sp887x.h 
                                           stv0297.c stv0297.h stv0299.h 
                                           tda10021.c tda10021.h 
                                           tda1004x.h tda8083.c 
                                           tda8083.h tda80xx.c tda80xx.h 
                                           ves1820.h ves1x93.h 
        linux/drivers/media/dvb/ttusb-dec: Tag: MaltaRef_2_6 
                                           ttusbdecfe.c ttusbdecfe.h 
        linux/drivers/media/video: Tag: MaltaRef_2_6 arv.c mt20xx.c 
                                   tda8290.c tuner-core.c tuner-simple.c 
                                   tveeprom.c video-buf-dvb.c 
        linux/drivers/media/video/cx88: Tag: MaltaRef_2_6 .cvsignore 
                                        cx88-blackbird.c cx88-dvb.c 
                                        cx88-input.c cx88-mpeg.c 
        linux/drivers/media/video/ovcamchip: Tag: MaltaRef_2_6 
                                             .cvsignore 
        linux/drivers/media/video/saa7134: Tag: MaltaRef_2_6 .cvsignore 
                                           saa7134-dvb.c 
                                           saa7134-empress.c 
        linux/drivers/message/i2o: Tag: MaltaRef_2_6 debug.c device.c 
                                   driver.c exec-osm.c i2o_block.h iop.c 
                                   pci.c 
        linux/drivers/misc/hdpuftrs: Tag: MaltaRef_2_6 Makefile 
                                     hdpu_cpustate.c hdpu_nexus.c 
        linux/drivers/misc/ibmasm: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/mmc: Tag: MaltaRef_2_6 .cvsignore wbsd.c wbsd.h 
        linux/drivers/mtd/chips: Tag: MaltaRef_2_6 fwh_lock.h 
        linux/drivers/mtd/devices: Tag: MaltaRef_2_6 block2mtd.c 
        linux/drivers/mtd/maps: Tag: MaltaRef_2_6 alchemy-flash.c 
                                bast-flash.c ipaq-flash.c ixp2000.c 
                                ocotea.c sharpsl-flash.c ts5500_flash.c 
                                walnut.c 
        linux/drivers/mtd/nand: Tag: MaltaRef_2_6 h1910.c nandsim.c 
                                rtc_from4.c s3c2410.c sharpsl.c 
        linux/drivers/net: Tag: MaltaRef_2_6 bnx2.c bnx2.h bnx2_fw.h 
        linux/drivers/net/arcnet: Tag: MaltaRef_2_6 capmode.c 
        linux/drivers/net/cris: Tag: MaltaRef_2_6 Makefile eth_v10.c 
        linux/drivers/net/ixgb: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/net/sk98lin: Tag: MaltaRef_2_6 skethtool.c 
        linux/drivers/net/wireless: Tag: MaltaRef_2_6 atmel.h 
        linux/drivers/net/wireless/prism54: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/oprofile: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/parisc: Tag: MaltaRef_2_6 pdc_stable.c 
        linux/drivers/parport: Tag: MaltaRef_2_6 parport_gsc.h 
        linux/drivers/pci: Tag: MaltaRef_2_6 pci-acpi.c rom.c 
        linux/drivers/pci/pcie: Tag: MaltaRef_2_6 Kconfig Makefile 
                                portdrv.h portdrv_bus.c portdrv_core.c 
                                portdrv_pci.c 
        linux/drivers/pcmcia: Tag: MaltaRef_2_6 m32r_cfc.c m32r_cfc.h 
                              m32r_pcc.c m32r_pcc.h pcmcia_compat.c 
                              pxa2xx_sharpsl.c rsrc_nonstatic.c 
        linux/drivers/pnp/isapnp: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/pnp/pnpacpi: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                                   Makefile core.c pnpacpi.h rsparser.c 
        linux/drivers/s390/char: Tag: MaltaRef_2_6 monreader.c 
                                 sclp_quiesce.c vmlogrdr.c vmwatchdog.c 
        linux/drivers/s390/net: Tag: MaltaRef_2_6 claw.c claw.h 
                                ctcmain.h qeth_eddp.c qeth_eddp.h 
                                qeth_tso.h 
        linux/drivers/scsi: Tag: MaltaRef_2_6 a100u2w.c a100u2w.h ahci.c 
                            gdth_kcompat.h initio.c initio.h ql1040_fw.h 
                            sata_qstor.c sata_uli.c 
                            scsi_transport_iscsi.c 
        linux/drivers/scsi/aacraid: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/scsi/aic7xxx: Tag: MaltaRef_2_6 aic79xx_pci.h 
                                    aic7xxx_pci.h 
        linux/drivers/scsi/ibmvscsi: Tag: MaltaRef_2_6 Makefile 
                                     ibmvscsi.c ibmvscsi.h 
                                     iseries_vscsi.c rpa_vscsi.c srp.h 
                                     viosrp.h 
        linux/drivers/scsi/lpfc: Tag: MaltaRef_2_6 Makefile lpfc.h 
                                 lpfc_attr.c lpfc_compat.h lpfc_crtn.h 
                                 lpfc_ct.c lpfc_disc.h lpfc_els.c 
                                 lpfc_hbadisc.c lpfc_hw.h lpfc_init.c 
                                 lpfc_logmsg.h lpfc_mbox.c lpfc_mem.c 
                                 lpfc_nportdisc.c lpfc_scsi.c 
                                 lpfc_scsi.h lpfc_sli.c lpfc_sli.h 
                                 lpfc_version.h 
        linux/drivers/scsi/megaraid: Tag: MaltaRef_2_6 .cvsignore 
                                     Kconfig.megaraid Makefile 
                                     mbox_defs.h mega_common.h 
                                     megaraid_ioctl.h megaraid_mbox.c 
                                     megaraid_mbox.h megaraid_mm.c 
                                     megaraid_mm.h 
        linux/drivers/scsi/qla2xxx: Tag: MaltaRef_2_6 qla_attr.c 
        linux/drivers/serial: Tag: MaltaRef_2_6 8250_early.c 
                              8250_hp300.c crisv10.c crisv10.h imx.c 
                              ioc4_serial.c m32r_sio.c m32r_sio.h 
                              m32r_sio_reg.h mpsc.c mpsc.h serial_txx9.c 
        linux/drivers/serial/jsm: Tag: MaltaRef_2_6 Makefile jsm.h 
                                  jsm_driver.c jsm_neo.c jsm_tty.c 
        linux/drivers/sh: Tag: MaltaRef_2_6 Makefile 
        linux/drivers/sh/superhyway: Tag: MaltaRef_2_6 Makefile 
                                     superhyway-sysfs.c superhyway.c 
        linux/drivers/sn: Tag: MaltaRef_2_6 Makefile ioc4.c 
        linux/drivers/usb/atm: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                               Makefile speedtch.c usb_atm.c usb_atm.h 
        linux/drivers/usb/core: Tag: MaltaRef_2_6 otg_whitelist.h 
        linux/drivers/usb/gadget: Tag: MaltaRef_2_6 lh7a40x_udc.c 
                                  lh7a40x_udc.h omap_udc.c omap_udc.h 
        linux/drivers/usb/host: Tag: MaltaRef_2_6 hc_crisv10.c 
                                hc_crisv10.h ohci-au1xxx.c 
                                ohci-ppc-soc.c ohci-pxa27x.c sl811-hcd.c 
                                sl811.h sl811_cs.c uhci-q.c 
        linux/drivers/usb/media: Tag: MaltaRef_2_6 sn9c102_hv7131d.c 
                                 sn9c102_mi0343.c 
        linux/drivers/usb/media/pwc: Tag: MaltaRef_2_6 Makefile 
                                     philips.txt pwc-ctrl.c pwc-if.c 
                                     pwc-ioctl.h pwc-kiara.c pwc-kiara.h 
                                     pwc-misc.c pwc-nala.h pwc-timon.c 
                                     pwc-timon.h pwc-uncompress.c 
                                     pwc-uncompress.h pwc.h 
        linux/drivers/usb/misc: Tag: MaltaRef_2_6 idmouse.c phidgetkit.c 
        linux/drivers/usb/misc/sisusbvga: Tag: MaltaRef_2_6 .cvsignore 
                                          Kconfig Makefile sisusb.c 
                                          sisusb.h 
        linux/drivers/usb/mon: Tag: MaltaRef_2_6 .cvsignore Kconfig 
                               Makefile mon_main.c mon_stat.c mon_text.c 
                               usb_mon.h 
        linux/drivers/usb/net: Tag: MaltaRef_2_6 zd1201.c zd1201.h 
        linux/drivers/usb/serial: Tag: MaltaRef_2_6 airprime.c cp2101.c 
                                  cypress_m8.c cypress_m8.h garmin_gps.c 
                                  hp4x.c ipw.c option.c ti_fw_3410.h 
                                  ti_fw_5052.h ti_usb_3410_5052.c 
                                  ti_usb_3410_5052.h 
        linux/drivers/video: Tag: MaltaRef_2_6 imxfb.c imxfb.h 
                             s1d13xxxfb.c smivgxfb.c smivgxfb.h w100fb.c 
                             w100fb.h 
        linux/drivers/video/backlight: Tag: MaltaRef_2_6 .cvsignore 
                                       Kconfig Makefile backlight.c 
                                       corgi_bl.c lcd.c 
        linux/drivers/video/console: Tag: MaltaRef_2_6 bitblit.c 
                                     tileblit.c 
        linux/drivers/video/geode: Tag: MaltaRef_2_6 Kconfig Makefile 
                                   display_gx1.c display_gx1.h geodefb.h 
                                   gx1fb_core.c video_cs5530.c 
                                   video_cs5530.h 
        linux/drivers/video/i810: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/video/intelfb: Tag: MaltaRef_2_6 .cvsignore 
                                     Makefile intelfb.h intelfbdrv.c 
                                     intelfbhw.c intelfbhw.h 
        linux/drivers/video/kyro: Tag: MaltaRef_2_6 .cvsignore 
        linux/drivers/video/nvidia: Tag: MaltaRef_2_6 Makefile 
                                    nv_accel.c nv_dma.h nv_hw.c nv_i2c.c 
                                    nv_local.h nv_of.c nv_proto.h 
                                    nv_setup.c nv_type.h nvidia.c 
        linux/drivers/video/savage: Tag: MaltaRef_2_6 .cvsignore 
                                    Makefile savagefb-i2c.c savagefb.h 
                                    savagefb_accel.c savagefb_driver.c 
        linux/fs       : Tag: MaltaRef_2_6 binfmt_elf_fdpic.c 
        linux/fs/affs  : Tag: MaltaRef_2_6 affs.h 
        linux/fs/cifs  : Tag: MaltaRef_2_6 cifsencrypt.h ioctl.c 
                         readdir.c 
        linux/fs/debugfs: Tag: MaltaRef_2_6 .cvsignore Makefile file.c 
                          inode.c 
        linux/fs/ext3  : Tag: MaltaRef_2_6 resize.c 
        linux/fs/fat   : Tag: MaltaRef_2_6 fatent.c 
        linux/fs/hfs   : Tag: MaltaRef_2_6 attr.c 
        linux/fs/hfsplus: Tag: MaltaRef_2_6 .cvsignore 
        linux/fs/hostfs: Tag: MaltaRef_2_6 Makefile hostfs.h 
                         hostfs_kern.c hostfs_user.c 
        linux/fs/hppfs : Tag: MaltaRef_2_6 Makefile hppfs_kern.c 
        linux/fs/hugetlbfs: Tag: MaltaRef_2_6 .cvsignore 
        linux/fs/isofs : Tag: MaltaRef_2_6 isofs.h 
        linux/fs/nfsd  : Tag: MaltaRef_2_6 nfs4callback.c 
        linux/fs/ntfs  : Tag: MaltaRef_2_6 aops.h runlist.c runlist.h 
        linux/fs/proc  : Tag: MaltaRef_2_6 internal.h mmu.c nommu.c 
        linux/fs/xfs   : Tag: MaltaRef_2_6 Kconfig 
        linux/fs/xfs/linux-2.6: Tag: MaltaRef_2_6 xfs_export.c 
                                xfs_export.h 
        linux/include/acpi: Tag: MaltaRef_2_6 container.h 
        linux/include/asm-alpha: Tag: MaltaRef_2_6 cputime.h 
                                 io_trivial.h 
        linux/include/asm-arm: Tag: MaltaRef_2_6 cpu.h cputime.h rtc.h 
        linux/include/asm-arm/arch-cl7500: Tag: MaltaRef_2_6 
                                           debug-macro.S entry-macro.S 
        linux/include/asm-arm/arch-clps711x: Tag: MaltaRef_2_6 
                                             debug-macro.S entry-macro.S 
        linux/include/asm-arm/arch-ebsa110: Tag: MaltaRef_2_6 
                                            debug-macro.S entry-macro.S 
        linux/include/asm-arm/arch-ebsa285: Tag: MaltaRef_2_6 
                                            debug-macro.S entry-macro.S 
        linux/include/asm-arm/arch-epxa10db: Tag: MaltaRef_2_6 
                                             debug-macro.S entry-macro.S 
        linux/include/asm-arm/arch-h720x: Tag: MaltaRef_2_6 boards.h 
                                          debug-macro.S dma.h 
                                          entry-macro.S h7201-regs.h 
                                          h7202-regs.h hardware.h io.h 
                                          irq.h irqs.h memory.h param.h 
                                          system.h timex.h uncompress.h 
                                          vmalloc.h 
        linux/include/asm-arm/arch-imx: Tag: MaltaRef_2_6 debug-macro.S 
                                        entry-macro.S imxfb.h 
        linux/include/asm-arm/arch-integrator: Tag: MaltaRef_2_6 
                                               debug-macro.S 
                                               entry-macro.S 
        linux/include/asm-arm/arch-iop3xx: Tag: MaltaRef_2_6 
                                           debug-macro.S entry-macro.S 
                                           iop331-irqs.h iop331.h 
                                           iq31244.h iq80331.h iq80332.h 
        linux/include/asm-arm/arch-ixp2000: Tag: MaltaRef_2_6 
                                            debug-macro.S dma.h 
                                            enp2611.h entry-macro.S 
                                            gpio.h hardware.h io.h irq.h 
                                            irqs.h ixdp2x00.h ixdp2x01.h 
                                            ixp2000-regs.h memory.h 
                                            param.h platform.h system.h 
                                            timex.h uncompress.h 
                                            vmalloc.h 
        linux/include/asm-arm/arch-ixp4xx: Tag: MaltaRef_2_6 
                                           debug-macro.S entry-macro.S 
                                           gtwx5715.h 
        linux/include/asm-arm/arch-l7200: Tag: MaltaRef_2_6 
                                          debug-macro.S entry-macro.S 
        linux/include/asm-arm/arch-lh7a40x: Tag: MaltaRef_2_6 
                                            debug-macro.S entry-macro.S 
        linux/include/asm-arm/arch-omap: Tag: MaltaRef_2_6 aic23.h 
                                         board-netstar.h 
                                         board-voiceblue.h cpu.h 
                                         debug-macro.S entry-macro.S 
                                         omap16xx.h tc.h 
        linux/include/asm-arm/arch-pxa: Tag: MaltaRef_2_6 audio.h 
                                        corgi.h debug-macro.S 
                                        entry-macro.S mmc.h poodle.h 
                                        ssp.h 
        linux/include/asm-arm/arch-rpc: Tag: MaltaRef_2_6 debug-macro.S 
                                        entry-macro.S 
        linux/include/asm-arm/arch-s3c2410: Tag: MaltaRef_2_6 bast-pmu.h 
                                            debug-macro.S entry-macro.S 
                                            idle.h iic.h nand.h 
                                            otom-map.h regs-adc.h 
                                            regs-dsc.h regs-gpioj.h 
                                            regs-iic.h regs-mem.h 
                                            regs-nand.h regs-sdi.h 
                                            regs-spi.h regs-udc.h 
                                            usb-control.h 
        linux/include/asm-arm/arch-sa1100: Tag: MaltaRef_2_6 
                                           debug-macro.S entry-macro.S 
        linux/include/asm-arm/arch-shark: Tag: MaltaRef_2_6 
                                          debug-macro.S entry-macro.S 
        linux/include/asm-arm/arch-versatile: Tag: MaltaRef_2_6 
                                              debug-macro.S 
                                              entry-macro.S 
        linux/include/asm-arm/hardware: Tag: MaltaRef_2_6 
                                        entry-macro-iomd.S icst307.h 
                                        scoop.h 
        linux/include/asm-arm/mach: Tag: MaltaRef_2_6 irda.h 
                                    sharpsl_param.h 
        linux/include/asm-arm26: Tag: MaltaRef_2_6 cputime.h 
                                 dma-mapping.h 
        linux/include/asm-cris: Tag: MaltaRef_2_6 cputime.h 
        linux/include/asm-frv: Tag: MaltaRef_2_6 a.out.h atomic.h 
                               ax88796.h bitops.h bug.h bugs.h 
                               busctl-regs.h byteorder.h cache.h 
                               cacheflush.h checksum.h cpu-irqs.h 
                               cpumask.h cputime.h current.h delay.h 
                               div64.h dm9000.h dma-mapping.h dma.h 
                               elf.h errno.h fcntl.h fpu.h gdb-stub.h 
                               gpio-regs.h hardirq.h highmem.h hw_irq.h 
                               ide.h init.h io.h ioctl.h ioctls.h ipc.h 
                               ipcbuf.h irc-regs.h irq-routing.h irq.h 
                               kmap_types.h linkage.h local.h math-emu.h 
                               mb-regs.h mb86943a.h mb93091-fpga-irqs.h 
                               mb93093-fpga-irqs.h mb93493-irqs.h 
                               mb93493-regs.h mem-layout.h mman.h mmu.h 
                               mmu_context.h module.h msgbuf.h namei.h 
                               page.h param.h pci.h percpu.h pgalloc.h 
                               pgtable.h poll.h posix_types.h 
                               processor.h ptrace.h registers.h 
                               resource.h scatterlist.h sections.h 
                               segment.h semaphore.h sembuf.h 
                               serial-regs.h serial.h setup.h shmbuf.h 
                               shmparam.h sigcontext.h siginfo.h 
                               signal.h smp.h socket.h sockios.h 
                               spinlock.h spr-regs.h stat.h statfs.h 
                               string.h suspend.h system.h termbits.h 
                               termios.h thread_info.h timer-regs.h 
                               timex.h tlb.h tlbflush.h topology.h 
                               types.h uaccess.h ucontext.h unaligned.h 
                               unistd.h user.h virtconvert.h 
        linux/include/asm-generic: Tag: MaltaRef_2_6 4level-fixup.h 
                                   cputime.h iomap.h ipc.h 
                                   pgtable-nopmd.h pgtable-nopud.h 
                                   resource.h signal.h termios.h 
                                   uaccess.h 
        linux/include/asm-h8300: Tag: MaltaRef_2_6 cputime.h 
        linux/include/asm-i386: Tag: MaltaRef_2_6 .cvsignore 
                                asm_offsets.h cputime.h kdebug.h 
                                kprobes.h pci-direct.h seccomp.h 
        linux/include/asm-ia64: Tag: MaltaRef_2_6 cputime.h 
                                machvec_hpzx1_swiotlb.h 
        linux/include/asm-ia64/sn: Tag: MaltaRef_2_6 l1.h 
                                   pcibus_provider_defs.h pcidev.h 
                                   shub_mmr.h shubio.h tioca.h 
                                   tioca_provider.h tiocx.h xp.h 
        linux/include/asm-ia64/sn/sn2: Tag: MaltaRef_2_6 sn_hwperf.h 
        linux/include/asm-m32r: Tag: MaltaRef_2_6 a.out.h addrspace.h 
                                assembler.h atomic.h bitops.h bug.h 
                                bugs.h byteorder.h cache.h cachectl.h 
                                cacheflush.h checksum.h cputime.h 
                                current.h delay.h div64.h dma-mapping.h 
                                dma.h elf.h errno.h fcntl.h flat.h 
                                hardirq.h hdreg.h hw_irq.h ide.h io.h 
                                ioctl.h ioctls.h ipc.h ipcbuf.h irq.h 
                                kmap_types.h linkage.h local.h m32102.h 
                                m32102peri.h m32r.h m32r_mp_fpga.h 
                                mc146818rtc.h mman.h mmu.h mmu_context.h 
                                mmzone.h module.h msgbuf.h namei.h 
                                numnodes.h page.h param.h pci.h percpu.h 
                                pgalloc.h pgtable-2level.h pgtable.h 
                                poll.h posix_types.h processor.h 
                                ptrace.h resource.h rtc.h scatterlist.h 
                                sections.h segment.h semaphore.h 
                                sembuf.h serial.h setup.h shmbuf.h 
                                shmparam.h sigcontext.h siginfo.h 
                                signal.h smp.h socket.h sockios.h 
                                spinlock.h stat.h statfs.h string.h 
                                syscall.h system.h termbits.h termios.h 
                                thread_info.h timex.h tlb.h tlbflush.h 
                                topology.h types.h uaccess.h ucontext.h 
                                unaligned.h unistd.h user.h vga.h xor.h 
        linux/include/asm-m32r/m32700ut: Tag: MaltaRef_2_6 
                                         m32700ut_lan.h m32700ut_lcd.h 
                                         m32700ut_pld.h 
        linux/include/asm-m32r/mappi2: Tag: MaltaRef_2_6 mappi2_pld.h 
        linux/include/asm-m32r/opsput: Tag: MaltaRef_2_6 opsput_lan.h 
                                       opsput_lcd.h opsput_pld.h 
        linux/include/asm-m68k: Tag: MaltaRef_2_6 cputime.h hp300hw.h 
        linux/include/asm-m68knommu: Tag: MaltaRef_2_6 cputime.h 
                                     m527xsim.h m528xsim.h mcfcache.h 
        linux/include/asm-mips: Tag: MaltaRef_2_6 abi.h compiler.h 
                                cputime.h dsp.h interrupt.h m48t37.h 
                                reg.h 
        linux/include/asm-mips/cobalt: Tag: MaltaRef_2_6 mach-gt64120.h 
        linux/include/asm-mips/mach-db1x00: Tag: MaltaRef_2_6 db1200.h 
        linux/include/asm-mips/mach-ip22: Tag: MaltaRef_2_6 spaces.h 
        linux/include/asm-mips/mach-ip32: Tag: MaltaRef_2_6 
                                          cpu-feature-overrides.h 
                                          spaces.h 
        linux/include/asm-mips/mach-ocelot3: Tag: MaltaRef_2_6 
                                             cpu-feature-overrides.h 
        linux/include/asm-mips/mach-pb1x00: Tag: MaltaRef_2_6 pb1200.h 
        linux/include/asm-mips/mach-sibyte: Tag: MaltaRef_2_6 
                                            cpu-feature-overrides.h 
        linux/include/asm-mips/tx4927: Tag: MaltaRef_2_6 
                                       smsc_fdc37m81x.h 
        linux/include/asm-mips/vr41xx: Tag: MaltaRef_2_6 cmbvr4133.h 
                                       pci.h 
        linux/include/asm-parisc: Tag: MaltaRef_2_6 cputime.h 
        linux/include/asm-ppc: Tag: MaltaRef_2_6 8253pit.h cputime.h 
                               ipic.h mpc83xx.h mv64x60.h mv64x60_defs.h 
                               perfmon.h ppc_sys.h suspend.h 
                               xparameters.h 
        linux/include/asm-ppc64: Tag: MaltaRef_2_6 8253pit.h agp.h 
                                 cputime.h imalloc.h kdebug.h kprobes.h 
                                 lppaca.h pSeries_reconfig.h 
                                 plpar_wrappers.h pmc.h seccomp.h smu.h 
                                 sstep.h vdso.h 
        linux/include/asm-s390: Tag: MaltaRef_2_6 cputime.h 
        linux/include/asm-sh: Tag: MaltaRef_2_6 cputime.h irq-sh73180.h 
        linux/include/asm-sh/cpu-sh3: Tag: MaltaRef_2_6 timer.h 
        linux/include/asm-sh/cpu-sh4: Tag: MaltaRef_2_6 timer.h 
        linux/include/asm-sh/edosk7705: Tag: MaltaRef_2_6 io.h 
        linux/include/asm-sh/microdev: Tag: MaltaRef_2_6 io.h irq.h 
        linux/include/asm-sh/se73180: Tag: MaltaRef_2_6 io.h se73180.h 
        linux/include/asm-sh/sh03: Tag: MaltaRef_2_6 ide.h io.h sh03.h 
        linux/include/asm-sh64: Tag: MaltaRef_2_6 cputime.h 
        linux/include/asm-sparc: Tag: MaltaRef_2_6 cputime.h 
        linux/include/asm-sparc64: Tag: MaltaRef_2_6 cputime.h kprobes.h 
                                   rwsem-const.h 
        linux/include/asm-um: Tag: MaltaRef_2_6 apic.h 
                              archparam-x86_64.h calling.h cpufeature.h 
                              cputime.h dwarf2.h elf-i386.h elf-ppc.h 
                              elf-x86_64.h local.h module-generic.h 
                              module-i386.h module-x86_64.h pda.h 
                              pgtable-2level.h pgtable-3level.h prctl.h 
                              processor-x86_64.h ptrace-x86_64.h 
                              sections.h sigcontext-x86_64.h 
                              system-x86_64.h vm-flags-i386.h 
                              vm-flags-x86_64.h 
        linux/include/asm-v850: Tag: MaltaRef_2_6 cputime.h 
        linux/include/asm-x86_64: Tag: MaltaRef_2_6 cputime.h genapic.h 
                                  ipi.h kprobes.h mach_apic.h seccomp.h 
                                  swiotlb.h 
        linux/include/linux: Tag: MaltaRef_2_6 attribute_container.h 
                             backlight.h compiler-gcc4.h cpuset.h 
                             cryptohash.h debugfs.h elf-fdpic.h 
                             fsl_devices.h gen_stats.h hardirq.h 
                             hdpu_features.h if_infiniband.h 
                             ioc4_common.h ip_mp_alg.h key-ui.h key.h 
                             keyctl.h kfifo.h kobject_uevent.h kprobes.h 
                             lcd.h libps2.h mmtimer.h nodemask.h 
                             patchkey.h pci-acpi.h pcieport_if.h 
                             pktcdvd.h ramfs.h reboot_fixups.h rslib.h 
                             scatterlist.h seccomp.h serial_8250.h 
                             sort.h superhyway.h transport_class.h 
                             usb_cdc.h usb_sl811.h via.h 
        linux/include/linux/mtd: Tag: MaltaRef_2_6 xip.h 
        linux/include/linux/netfilter_bridge: Tag: MaltaRef_2_6 
                                              ebt_ulog.h 
        linux/include/linux/netfilter_ipv4: Tag: MaltaRef_2_6 
                                            ipt_CLUSTERIP.h 
                                            ipt_CONNMARK.h ipt_comment.h 
                                            ipt_connmark.h 
                                            ipt_hashlimit.h 
        linux/include/linux/netfilter_ipv6: Tag: MaltaRef_2_6 
                                            ip6t_physdev.h 
        linux/include/linux/raid: Tag: MaltaRef_2_6 raid10.h 
        linux/include/linux/tc_act: Tag: MaltaRef_2_6 tc_defact.h 
                                    tc_gact.h tc_ipt.h tc_mirred.h 
                                    tc_pedit.h 
        linux/include/linux/tc_ematch: Tag: MaltaRef_2_6 tc_em_cmp.h 
                                       tc_em_meta.h tc_em_nbyte.h 
        linux/include/media: Tag: MaltaRef_2_6 tveeprom.h 
                             video-buf-dvb.h 
        linux/include/net: Tag: MaltaRef_2_6 act_api.h act_generic.h 
                           gen_stats.h ip_mp_alg.h sch_generic.h 
                           x25device.h 
        linux/include/net/tc_act: Tag: MaltaRef_2_6 tc_defact.h 
                                  tc_gact.h tc_ipt.h tc_mirred.h 
                                  tc_pedit.h 
        linux/include/scsi: Tag: MaltaRef_2_6 scsi_transport_iscsi.h 
        linux/include/sound: Tag: MaltaRef_2_6 ak4114.h pcm-indirect.h 
        linux/include/video: Tag: MaltaRef_2_6 s1d13xxxfb.h w100fb.h 
        linux/init     : Tag: MaltaRef_2_6 calibrate.c 
        linux/kernel   : Tag: MaltaRef_2_6 cpuset.c kfifo.c kprobes.c 
                         ksysfs.c posix-cpu-timers.c seccomp.c 
                         spinlock.c sys_ni.c wait.c 
        linux/kernel/irq: Tag: MaltaRef_2_6 .cvsignore Makefile 
                          autoprobe.c handle.c internals.h manage.c 
                          proc.c spurious.c 
        linux/kernel/power: Tag: MaltaRef_2_6 .cvsignore 
        linux/lib      : Tag: MaltaRef_2_6 find_next_bit.c halfmd4.c 
                         iomap.c kernel_lock.c kobject_uevent.c 
                         prio_tree.c sha1.c sort.c 
        linux/lib/reed_solomon: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                decode_rs.c encode_rs.c reed_solomon.c 
        linux/lib/zlib_inflate: Tag: MaltaRef_2_6 inflate_sync.c 
        linux/mm       : Tag: MaltaRef_2_6 internal.h tiny-shmem.c 
        linux/net/appletalk: Tag: MaltaRef_2_6 dev.c 
        linux/net/bluetooth/bnep: Tag: MaltaRef_2_6 .cvsignore 
        linux/net/bluetooth/cmtp: Tag: MaltaRef_2_6 .cvsignore 
        linux/net/bluetooth/hidp: Tag: MaltaRef_2_6 .cvsignore 
        linux/net/bluetooth/rfcomm: Tag: MaltaRef_2_6 .cvsignore 
        linux/net/bridge/netfilter: Tag: MaltaRef_2_6 ebt_ulog.c 
        linux/net/core : Tag: MaltaRef_2_6 gen_estimator.c gen_stats.c 
        linux/net/ipv4 : Tag: MaltaRef_2_6 fib_lookup.h multipath.c 
                         multipath_drr.c multipath_random.c 
                         multipath_rr.c multipath_wrandom.c 
        linux/net/ipv4/netfilter: Tag: MaltaRef_2_6 ipt_CLUSTERIP.c 
                                  ipt_CONNMARK.c ipt_comment.c 
                                  ipt_connmark.c ipt_hashlimit.c 
        linux/net/ipv6/netfilter: Tag: MaltaRef_2_6 ip6t_physdev.c 
        linux/net/sched: Tag: MaltaRef_2_6 cls_basic.c em_cmp.c 
                         em_meta.c em_nbyte.c em_u32.c ematch.c gact.c 
                         ipt.c mirred.c pedit.c simple.c 
        linux/scripts  : Tag: MaltaRef_2_6 gen_initramfs_list.sh 
                         namespace.pl show_delta 
        linux/scripts/kconfig: Tag: MaltaRef_2_6 POTFILES.in kxgettext.c 
                               util.c 
        linux/security : Tag: MaltaRef_2_6 seclvl.c 
        linux/security/keys: Tag: MaltaRef_2_6 .cvsignore Makefile 
                             compat.c internal.h key.c keyctl.c 
                             keyring.c proc.c process_keys.c 
                             request_key.c user_defined.c 
        linux/security/selinux: Tag: MaltaRef_2_6 .cvsignore 
        linux/security/selinux/ss: Tag: MaltaRef_2_6 .cvsignore 
        linux/sound/core: Tag: MaltaRef_2_6 control_compat.c 
                          hwdep_compat.c pcm_compat.c rawmidi_compat.c 
                          timer_compat.c 
        linux/sound/core/seq: Tag: MaltaRef_2_6 seq_compat.c 
        linux/sound/drivers/opl4: Tag: MaltaRef_2_6 .cvsignore 
        linux/sound/drivers/vx: Tag: MaltaRef_2_6 .cvsignore 
        linux/sound/i2c/other: Tag: MaltaRef_2_6 .cvsignore ak4114.c 
        linux/sound/mips: Tag: MaltaRef_2_6 .cvsignore Kconfig Makefile 
                          au1x00.c 
        linux/sound/oss: Tag: MaltaRef_2_6 au1550_ac97.c au1550_i2s.c 
        linux/sound/parisc: Tag: MaltaRef_2_6 .cvsignore harmony.h 
        linux/sound/pci: Tag: MaltaRef_2_6 atiixp_modem.c 
                         via82xx_modem.c 
        linux/sound/pci/au88x0: Tag: MaltaRef_2_6 .cvsignore 
        linux/sound/pci/ca0106: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                ca0106.h ca0106_main.c ca0106_mixer.c 
                                ca0106_proc.c 
        linux/sound/pci/emu10k1: Tag: MaltaRef_2_6 emu10k1x.c p16v.c 
                                 p16v.h timer.c 
        linux/sound/pci/hda: Tag: MaltaRef_2_6 Makefile hda_codec.c 
                             hda_codec.h hda_generic.c hda_intel.c 
                             hda_local.h hda_patch.h hda_proc.c 
                             patch_analog.c patch_cmedia.c 
                             patch_realtek.c 
        linux/sound/pci/ice1712: Tag: MaltaRef_2_6 .cvsignore juli.c 
                                 juli.h phase.c phase.h pontis.c 
                                 pontis.h prodigy192.c prodigy192.h 
                                 stac946x.h vt1720_mobo.c vt1720_mobo.h 
        linux/sound/pci/mixart: Tag: MaltaRef_2_6 .cvsignore 
        linux/sound/pci/vx222: Tag: MaltaRef_2_6 .cvsignore 
        linux/sound/pcmcia/pdaudiocf: Tag: MaltaRef_2_6 .cvsignore 
        linux/sound/pcmcia/vx: Tag: MaltaRef_2_6 .cvsignore 
        linux/sound/ppc: Tag: MaltaRef_2_6 beep.c toonie.c 
        linux/sound/sparc: Tag: MaltaRef_2_6 .cvsignore 
        linux/sound/usb: Tag: MaltaRef_2_6 .cvsignore 
        linux/sound/usb/usx2y: Tag: MaltaRef_2_6 .cvsignore Makefile 
                               usX2Yhwdep.c usX2Yhwdep.h 
                               usbus428ctldefs.h usbusx2y.c usbusx2y.h 
                               usbusx2yaudio.c usx2y.h usx2yhwdeppcm.c 
                               usx2yhwdeppcm.h 
Removed files:
        linux/Documentation: Tag: MaltaRef_2_6 README.moxa digiboard.txt 
                             mkdev.cciss mkdev.ida 
        linux/Documentation/BK-usage: Tag: MaltaRef_2_6 00-INDEX 
                                      bk-kernel-howto.txt bk-make-sum 
                                      bksend bz64wrap cpcset 
                                      cset-to-linus csets-to-patches 
                                      gcapatch unbz64wrap 
        linux/Documentation/DocBook: Tag: MaltaRef_2_6 mousedrivers.tmpl 
                                     tulip-user.tmpl via-audio.tmpl 
        linux/Documentation/cdrom: Tag: MaltaRef_2_6 mcd 
        linux/Documentation/dvb: Tag: MaltaRef_2_6 firmware.txt 
        linux/Documentation/filesystems: Tag: MaltaRef_2_6 umsdos.txt 
        linux/Documentation/i2c: Tag: MaltaRef_2_6 i2c-old-porting 
                                 i2c-parport 
        linux/Documentation/isdn: Tag: MaltaRef_2_6 README.eicon 
        linux/Documentation/networking: Tag: MaltaRef_2_6 ethertap.txt 
        linux/Documentation/scsi: Tag: MaltaRef_2_6 ChangeLog 
                                  qla2xxx.revision.notes 
        linux/Documentation/sound/oss: Tag: MaltaRef_2_6 ChangeLog.awe 
                                       ChangeLog.multisound 
        linux/Documentation/usb: Tag: MaltaRef_2_6 philips.txt 
                                 silverlink.txt 
        linux/arch/alpha/lib: Tag: MaltaRef_2_6 io.c 
        linux/arch/arm : Tag: MaltaRef_2_6 defconfig 
        linux/arch/arm/boot/compressed: Tag: MaltaRef_2_6 hw-bse.c 
        linux/arch/arm/configs: Tag: MaltaRef_2_6 a5k_defconfig 
                                adsbitsy_defconfig brutus_defconfig 
                                empeg_defconfig flexanet_defconfig 
                                freebird_defconfig 
                                freebird_new_defconfig 
                                graphicsclient_defconfig 
                                graphicsmaster_defconfig 
                                huw_webpanel_defconfig iq80310_defconfig 
                                pangolin_defconfig 
                                pfs168_mqtft_defconfig 
                                pfs168_mqvga_defconfig 
                                pfs168_sastn_defconfig 
                                pfs168_satft_defconfig sherman_defconfig 
                                stork_defconfig system3_defconfig 
                                trizeps_defconfig 
        linux/arch/arm/lib: Tag: MaltaRef_2_6 io-readsl-armv3.S 
                            io-readsl-armv4.S 
        linux/arch/arm/mach-footbridge: Tag: MaltaRef_2_6 arch.c irq.c 
                                        mm.c 
        linux/arch/arm/mach-iop3xx: Tag: MaltaRef_2_6 arch.c 
                                    iop310-irq.c iop310-pci.c 
                                    iq80310-irq.c iq80310-pci.c 
                                    iq80310-time.c mm-321.c mm.c 
                                    xs80200-irq.c 
        linux/arch/arm/mach-ixp4xx: Tag: MaltaRef_2_6 prpmc1100-pci.c 
                                    prpmc1100-setup.c 
        linux/arch/arm/mach-omap: Tag: MaltaRef_2_6 bus.c clocks.c 
                                  leds-perseus2.c 
        linux/arch/arm/mach-sa1100: Tag: MaltaRef_2_6 adsbitsy.c 
                                    brutus.c empeg.c flexanet.c 
                                    freebird.c graphicsclient.c 
                                    graphicsmaster.c huw_webpanel.c 
                                    itsy.c leds-adsbitsy.c leds-brutus.c 
                                    leds-flexanet.c 
                                    leds-graphicsclient.c 
                                    leds-graphicsmaster.c leds-pfs168.c 
                                    leds-system3.c nanoengine.c 
                                    omnimeter.c pangolin.c pfs168.c 
                                    sherman.c stork.c system3.c 
                                    trizeps.c xp860.c yopy.c 
        linux/arch/arm/mm: Tag: MaltaRef_2_6 copypage-v4mc.S 
        linux/arch/arm26/boot/compressed: Tag: MaltaRef_2_6 ofw-shark.c 
        linux/arch/arm26/kernel: Tag: MaltaRef_2_6 time-acorn.c 
        linux/arch/arm26/lib: Tag: MaltaRef_2_6 io-readsl-armv3.S 
                              io-readsw-armv3.S io-writesw-armv3.S 
        linux/arch/arm26/machine: Tag: MaltaRef_2_6 head.S oldlatches.c 
                                  small_page.c 
        linux/arch/arm26/mm: Tag: MaltaRef_2_6 mm-memc.c 
        linux/arch/cris/arch-v10/drivers: Tag: MaltaRef_2_6 ethernet.c 
                                          ide.c serial.c serial.h 
        linux/arch/h8300/platform/h8300h/aki3068net: Tag: MaltaRef_2_6 
                                                     ram.ld 
        linux/arch/h8300/platform/h8300h/generic: Tag: MaltaRef_2_6 
                                                  ram.ld rom.ld 
        linux/arch/h8300/platform/h8300h/h8max: Tag: MaltaRef_2_6 ram.ld 
        linux/arch/h8300/platform/h8s/edosk2674: Tag: MaltaRef_2_6 
                                                 ram.ld rom.ld 
        linux/arch/h8300/platform/h8s/generic: Tag: MaltaRef_2_6 ram.ld 
                                               rom.ld 
        linux/arch/i386/kernel/cpu/cpufreq: Tag: MaltaRef_2_6 acpi.c 
        linux/arch/i386/pci: Tag: MaltaRef_2_6 changelog 
        linux/arch/i386/power: Tag: MaltaRef_2_6 pmdisk.S 
        linux/arch/ia64/configs: Tag: MaltaRef_2_6 generic_defconfig 
        linux/arch/ia64/dig: Tag: MaltaRef_2_6 topology.c 
        linux/arch/ia64/sn/fakeprom: Tag: MaltaRef_2_6 Makefile README 
                                     fpmem.c fpmem.h fprom.lds 
                                     fpromasm.S fw-emu.c klgraph_init.c 
                                     main.c make_textsym runsim 
        linux/arch/ia64/sn/io: Tag: MaltaRef_2_6 Makefile cdl.c io.c 
                               snia_if.c xswitch.c 
        linux/arch/ia64/sn/io/drivers: Tag: MaltaRef_2_6 Makefile 
                                       ioconfig_bus.c 
        linux/arch/ia64/sn/io/hwgfs: Tag: MaltaRef_2_6 Makefile hcl.c 
                                     hcl_util.c interface.c labelcl.c 
                                     ramfs.c 
        linux/arch/ia64/sn/io/machvec: Tag: MaltaRef_2_6 Makefile iomv.c 
                                       pci.c pci_bus_cvlink.c pci_dma.c 
        linux/arch/ia64/sn/io/platform_init: Tag: MaltaRef_2_6 Makefile 
                                             sgi_io_init.c 
        linux/arch/ia64/sn/io/sn2: Tag: MaltaRef_2_6 Makefile 
                                   bte_error.c geo_op.c klconflib.c 
                                   klgraph.c l1_command.c ml_SN_init.c 
                                   ml_SN_intr.c ml_iograph.c module.c 
                                   pciio.c pic.c shub.c shub_intr.c 
                                   shuberror.c shubio.c xbow.c xtalk.c 
        linux/arch/ia64/sn/io/sn2/pcibr: Tag: MaltaRef_2_6 Makefile 
                                         pcibr_ate.c pcibr_config.c 
                                         pcibr_dvr.c pcibr_error.c 
                                         pcibr_hints.c pcibr_intr.c 
                                         pcibr_reg.c pcibr_rrb.c 
                                         pcibr_slot.c 
        linux/arch/ia64/sn/kernel: Tag: MaltaRef_2_6 probe.c 
        linux/arch/m68k/apollo: Tag: MaltaRef_2_6 dn_debug.c 
        linux/arch/m68k/sun3x: Tag: MaltaRef_2_6 sun3x_ksyms.c 
        linux/arch/m68knommu/platform/5206/ARNEWSH: Tag: MaltaRef_2_6 
                                                    crt0_ram.S 
        linux/arch/m68knommu/platform/5206e/MOTOROLA: Tag: MaltaRef_2_6 
                                                      crt0_ram.S 
        linux/arch/m68knommu/platform/5206e/eLITE: Tag: MaltaRef_2_6 
                                                   crt0_ram.S 
        linux/arch/m68knommu/platform/5249/MOTOROLA: Tag: MaltaRef_2_6 
                                                     crt0_ram.S 
        linux/arch/m68knommu/platform/5272/MOTOROLA: Tag: MaltaRef_2_6 
                                                     crt0_ram.S 
        linux/arch/m68knommu/platform/5272/NETtel: Tag: MaltaRef_2_6 
                                                   crt0_ram.S 
        linux/arch/m68knommu/platform/5272/senTec: Tag: MaltaRef_2_6 
                                                   crt0_ram.S 
        linux/arch/m68knommu/platform/5282: Tag: MaltaRef_2_6 Makefile 
                                            config.c pit.c 
        linux/arch/m68knommu/platform/5282/MOTOROLA: Tag: MaltaRef_2_6 
                                                     crt0_ram.S 
        linux/arch/m68knommu/platform/5282/senTec: Tag: MaltaRef_2_6 
                                                   crt0_ram.S 
        linux/arch/m68knommu/platform/5307/ARNEWSH: Tag: MaltaRef_2_6 
                                                    crt0_ram.S 
        linux/arch/m68knommu/platform/5307/CLEOPATRA: Tag: MaltaRef_2_6 
                                                      crt0_ram.S 
        linux/arch/m68knommu/platform/5307/MOTOROLA: Tag: MaltaRef_2_6 
                                                     crt0_ram.S 
        linux/arch/m68knommu/platform/5307/MP3: Tag: MaltaRef_2_6 
                                                crt0_ram.S 
        linux/arch/m68knommu/platform/5307/NETtel: Tag: MaltaRef_2_6 
                                                   crt0_ram.S 
        linux/arch/m68knommu/platform/5407/CLEOPATRA: Tag: MaltaRef_2_6 
                                                      crt0_ram.S 
        linux/arch/m68knommu/platform/5407/MOTOROLA: Tag: MaltaRef_2_6 
                                                     crt0_ram.S 
        linux/arch/m68knommu/platform/68328/pilot: Tag: MaltaRef_2_6 
                                                   crt0_rom.S 
        linux/arch/m68knommu/platform/68360/uCquicc: Tag: MaltaRef_2_6 
                                                     crt0_ram.S 
                                                     crt0_rom.S 
        linux/arch/m68knommu/platform/68EZ328/ucsimm: Tag: MaltaRef_2_6 
                                                      crt0_fixed.S 
                                                      crt0_himem.S 
                                                      crt0_ram.S 
                                                      crt0_rom.S 
        linux/arch/m68knommu/platform/68VZ328/de2: Tag: MaltaRef_2_6 
                                                   Makefile crt0_ram.S 
        linux/arch/m68knommu/platform/68VZ328/ucdimm: Tag: MaltaRef_2_6 
                                                      Makefile 
                                                      crt0_fixed.S 
                                                      crt0_himem.S 
                                                      crt0_ram.S 
                                                      crt0_rom.S 
        linux/arch/mips/baget: Tag: MaltaRef_2_6 .cvsignore Makefile 
                               baget.c bagetIRQ.S balo.c balo_supp.S 
                               irq.c ld.script.balo print.c reset.c 
                               setup.c time.c 
        linux/arch/mips/baget/prom: Tag: MaltaRef_2_6 .cvsignore 
                                    Makefile init.c 
        linux/arch/mips/cobalt: Tag: MaltaRef_2_6 promcon.c 
        linux/arch/mips/configs: Tag: MaltaRef_2_6 bosporus_defconfig 
                                 mirage_defconfig mtx1_defconfig 
                                 osprey_defconfig pb1000_defconfig 
                                 xxs1500_defconfig 
        linux/arch/mips/ddb5xxx/common: Tag: MaltaRef_2_6 irq.c 
        linux/arch/mips/hp-lj: Tag: MaltaRef_2_6 .cvsignore Makefile 
                               asic.c gdb_hook.c init.c int-handler.S 
                               irq.c setup.c utils.c utils.h 
        linux/arch/mips/kernel: Tag: MaltaRef_2_6 irix5sys.h 
                                module-elf32.c module-elf64.c reg.c 
        linux/arch/mips/mm: Tag: MaltaRef_2_6 tlb64-glue-r4k.S 
                            tlb64-glue-sb1.S tlbex32-r3k.S tlbex32-r4k.S 
                            tlbex64-r4k.S 
        linux/arch/mips/pci: Tag: MaltaRef_2_6 fixup-lasat.c pci-hplj.c 
        linux/arch/mips/ramdisk: Tag: MaltaRef_2_6 .cvsignore Makefile 
                                 ld.script 
        linux/arch/mips/vr4181/common: Tag: MaltaRef_2_6 .cvsignore 
                                       Makefile int_handler.S irq.c 
                                       serial.c time.c 
        linux/arch/mips/vr4181/osprey: Tag: MaltaRef_2_6 .cvsignore 
                                       Makefile dbg_io.c prom.c reset.c 
                                       setup.c 
        linux/arch/mips/vr41xx/common: Tag: MaltaRef_2_6 serial.c 
                                       vrc4171.c 
        linux/arch/mips/vr41xx/tanbac-tb0229: Tag: MaltaRef_2_6 tb0219.c 
        linux/arch/parisc/configs: Tag: MaltaRef_2_6 n4000_defconfig 
        linux/arch/parisc/kernel: Tag: MaltaRef_2_6 head64.S 
        linux/arch/ppc : Tag: MaltaRef_2_6 defconfig 
        linux/arch/ppc/8xx_io: Tag: MaltaRef_2_6 uart.c 
        linux/arch/ppc/boot/include: Tag: MaltaRef_2_6 zlib.h 
        linux/arch/ppc/boot/lib: Tag: MaltaRef_2_6 zlib.c 
        linux/arch/ppc/boot/simple: Tag: MaltaRef_2_6 chrpmap.S 
                                    gt64260_tty.c legacy.S 
                                    misc-ev64260.S 
        linux/arch/ppc/kernel: Tag: MaltaRef_2_6 head_e500.S 
        linux/arch/ppc/oprofile: Tag: MaltaRef_2_6 init.c 
        linux/arch/ppc/platforms: Tag: MaltaRef_2_6 est8260_setup.c 
                                  ev64260_setup.c lopec_pci.c 
                                  lopec_serial.h lopec_setup.c 
                                  mcpn765_serial.h mvme5100_pci.c 
                                  mvme5100_serial.h mvme5100_setup.c 
                                  powerpmc250_serial.h pq2ads_setup.c 
                                  prpmc750_serial.h prpmc800_serial.h 
                                  rpx8260.c 
        linux/arch/ppc/platforms/85xx: Tag: MaltaRef_2_6 mpc8540.c 
                                       mpc8555.c mpc8560.c 
        linux/arch/ppc/syslib: Tag: MaltaRef_2_6 gt64260_common.c 
                               m8260_pci.c m8260_pci.h ppc4xx_serial.c 
        linux/arch/ppc64/boot: Tag: MaltaRef_2_6 addSystemMap.c 
                               no_initrd.c start.c 
        linux/arch/ppc64/kernel: Tag: MaltaRef_2_6 chrp_setup.c 
                                 iSeries_IoMmTable.c iSeries_IoMmTable.h 
                                 mf_proc.c open_pic.c open_pic.h 
                                 open_pic_defs.h open_pic_u3.c 
                                 pSeries_htab.c pci_dma_direct.c 
                                 pmac_iommu.c stab.c 
        linux/arch/ppc64/xmon: Tag: MaltaRef_2_6 setjmp.c 
        linux/arch/s390/kernel: Tag: MaltaRef_2_6 compat_exec.c 
        linux/arch/sh  : Tag: MaltaRef_2_6 defconfig 
        linux/arch/sh/tools: Tag: MaltaRef_2_6 machgen.sh 
        linux/arch/sh64: Tag: MaltaRef_2_6 defconfig 
        linux/arch/sh64/lib: Tag: MaltaRef_2_6 old-checksum.c 
        linux/arch/sparc64/lib: Tag: MaltaRef_2_6 U3copy_in_user.S VIS.h 
                                VISbzero.S VIScopy.S VIScsum.S 
                                VIScsumcopy.S VIScsumcopyusr.S 
                                VISmemset.S rwlock.S rwsem.c splock.S 
        linux/arch/um  : Tag: MaltaRef_2_6 Kconfig_block dyn.lds.S 
                         main.c uml.lds.S 
        linux/arch/um/drivers: Tag: MaltaRef_2_6 hostaudio_user.c 
        linux/arch/um/include: Tag: MaltaRef_2_6 2_5compat.h Makefile 
                               frame.h frame_user.h hostaudio.h umn.h 
        linux/arch/um/include/sysdep-i386: Tag: MaltaRef_2_6 frame.h 
                                           frame_kern.h frame_user.h 
        linux/arch/um/kernel: Tag: MaltaRef_2_6 frame.c frame_kern.c 
                              initrd_kern.c initrd_user.c mprot.h 
                              sys_call_table.c user_syms.c 
        linux/arch/um/kernel/skas: Tag: MaltaRef_2_6 exec_user.c 
        linux/arch/um/kernel/skas/include: Tag: MaltaRef_2_6 mmu.h 
                                           mode.h mode_kern.h 
                                           ptrace-skas.h uaccess.h 
        linux/arch/um/kernel/skas/sys-i386: Tag: MaltaRef_2_6 Makefile 
                                            sigcontext.c 
        linux/arch/um/kernel/skas/util: Tag: MaltaRef_2_6 mk_ptregs.c 
        linux/arch/um/kernel/tt/include: Tag: MaltaRef_2_6 mmu.h mode.h 
                                         mode_kern.h ptrace-tt.h 
                                         uaccess.h 
        linux/arch/um/kernel/tt/sys-i386: Tag: MaltaRef_2_6 Makefile 
                                          sigcontext.c 
        linux/arch/um/sys-i386: Tag: MaltaRef_2_6 extable.c 
        linux/arch/um/sys-i386/util: Tag: MaltaRef_2_6 mk_thread_kern.c 
                                     mk_thread_user.c 
        linux/arch/um/util: Tag: MaltaRef_2_6 mk_constants_kern.c 
                            mk_constants_user.c mk_task_kern.c 
                            mk_task_user.c 
        linux/arch/x86_64/kernel: Tag: MaltaRef_2_6 Makefile-HEAD 
                                  domain.c vsyscall.S warmreboot.S 
        linux/arch/x86_64/lib: Tag: MaltaRef_2_6 old-checksum.c 
        linux/drivers/acpi: Tag: MaltaRef_2_6 acpi_ksyms.c processor.c 
        linux/drivers/atm: Tag: MaltaRef_2_6 nicstarmac.h 
        linux/drivers/base: Tag: MaltaRef_2_6 interface.c 
        linux/drivers/block/paride: Tag: MaltaRef_2_6 setup.h 
        linux/drivers/cdrom: Tag: MaltaRef_2_6 mcd.c mcd.h 
        linux/drivers/char: Tag: MaltaRef_2_6 README.computone 
                            README.cycladesZ README.cyclomY README.epca 
                            README.scc busmouse.c busmouse.h 
                            console_macros.h digi_bios.h digi_fep.h 
                            fep.h hp600_keyb.c pcxx.c pcxx.h rsf16fmi.h 
                            serial_tx3912.c serial_tx3912.h 
                            serial_txx9.c serial_txx927.c sonypi.h 
                            tpqic02.c vac-serial.c 
        linux/drivers/char/agp: Tag: MaltaRef_2_6 intel-mch-agp.c 
        linux/drivers/char/drm: Tag: MaltaRef_2_6 ati_pcigart.h 
                                drm_agpsupport.h drm_auth.h drm_bufs.h 
                                drm_context.h drm_dma.h drm_drawable.h 
                                drm_drv.h drm_fops.h drm_init.h 
                                drm_ioctl.h drm_irq.h drm_lock.h 
                                drm_proc.h drm_scatter.h drm_stub.h 
                                drm_vm.h ffb.h gamma.h i810.h i830.h 
                                mga.h r128.h radeon.h sis.h tdfx.h 
        linux/drivers/char/ip2: Tag: MaltaRef_2_6 Makefile ip2mkdev.c 
                                ip2stat.c ip2trace.c 
        linux/drivers/char/rio: Tag: MaltaRef_2_6 cdproto.h 
        linux/drivers/cpufreq: Tag: MaltaRef_2_6 proc_intf.c 
        linux/drivers/i2c: Tag: MaltaRef_2_6 i2c-max1617.c i2c-sensor.c 
        linux/drivers/ide: Tag: MaltaRef_2_6 ide-default.c 
        linux/drivers/ide/legacy: Tag: MaltaRef_2_6 pdc4030.c pdc4030.h 
        linux/drivers/ide/pci: Tag: MaltaRef_2_6 adma100.c adma100.h 
                               aec62xx.h cmd64x.h cy82c693.h generic.h 
                               hpt34x.h hpt366.h it8172.h opti621.h 
                               pdc202xx_new.h pdc202xx_old.h piix.h 
                               serverworks.h 
        linux/drivers/isdn/tpam: Tag: MaltaRef_2_6 Kconfig Makefile 
                                 tpam.h tpam_commands.c tpam_crcpc.c 
                                 tpam_hdlc.c tpam_main.c tpam_memory.c 
                                 tpam_nco.c tpam_queues.c 
        linux/drivers/media/dvb/dvb-core: Tag: MaltaRef_2_6 Makefile.lib 
                                          dvb_functions.c 
                                          dvb_functions.h dvb_i2c.c 
                                          dvb_i2c.h dvb_ksyms.c 
        linux/drivers/media/dvb/frontends: Tag: MaltaRef_2_6 
                                           alps_tdlb7.c alps_tdmb7.c 
                                           dst-bt878.h dst.c 
                                           grundig_29504-401.c 
                                           grundig_29504-491.c 
                                           sp887x_firm.h 
        linux/drivers/media/video: Tag: MaltaRef_2_6 tuner.c 
        linux/drivers/message/fusion: Tag: MaltaRef_2_6 ascq_tbl.c 
                                      ascq_tbl.sh isense.c isense.h 
                                      scsi3.h scsiops.c 
        linux/drivers/message/i2o: Tag: MaltaRef_2_6 i2o_core.c 
        linux/drivers/mtd: Tag: MaltaRef_2_6 mtdblock.h 
        linux/drivers/mtd/devices: Tag: MaltaRef_2_6 doc1000.c 
        linux/drivers/mtd/maps: Tag: MaltaRef_2_6 db1550-flash.c 
                                db1x00-flash.c ich2rom.c 
                                integrator-flash-v24.c pb1550-flash.c 
                                pb1xxx-flash.c 
        linux/drivers/net: Tag: MaltaRef_2_6 bagetlance.c ethertap.c 
                           mv64340_eth.c mv64340_eth.h net_init.c 
        linux/drivers/net/fc: Tag: MaltaRef_2_6 Makefile iph5526.c 
                              iph5526_ip.h iph5526_novram.c 
                              iph5526_scsi.h tach.h tach_structs.h 
        linux/drivers/pci/hotplug: Tag: MaltaRef_2_6 pciehp_sysfs.c 
        linux/drivers/pcmcia: Tag: MaltaRef_2_6 bulkmem.c 
                              sa1100_adsbitsy.c sa1100_flexanet.c 
                              sa1100_freebird.c sa1100_graphicsclient.c 
                              sa1100_graphicsmaster.c sa1100_pangolin.c 
                              sa1100_pfs168.c sa1100_stork.c 
                              sa1100_system3.c sa1100_trizeps.c 
                              sa1100_xp860.c sa1100_yopy.c 
        linux/drivers/scsi: Tag: MaltaRef_2_6 dc390.h dmx3191d.h 
                            fd_mcs.h i60uscsi.c i91uscsi.c i91uscsi.h 
                            ini9100u.c ini9100u.h inia100.c inia100.h 
                            lasi700.h qlogicfc.h qlogicisp.h 
                            scsi_obsolete.h scsi_syms.c scsiiom.c 
                            sgiwd93.h 
        linux/drivers/scsi/dpt: Tag: MaltaRef_2_6 dpt_osdutil.h 
        linux/drivers/scsi/qla2xxx: Tag: MaltaRef_2_6 ql6322.c 
                                    ql6322_fw.c qla_listops.h 
        linux/drivers/scsi/sym53c8xx_2: Tag: MaltaRef_2_6 sym_conf.h 
                                        sym_misc.c 
        linux/drivers/usb/host: Tag: MaltaRef_2_6 hc_simple.c 
                                hc_simple.h hc_sl811.c hc_sl811.h 
                                hc_sl811_rh.c ohci-omap.h 
        linux/drivers/usb/image: Tag: MaltaRef_2_6 hpusbscsi.c 
                                 hpusbscsi.h 
        linux/drivers/usb/media: Tag: MaltaRef_2_6 pwc-ctrl.c pwc-if.c 
                                 pwc-ioctl.h pwc-misc.c pwc-uncompress.c 
                                 pwc-uncompress.h pwc.h pwc_kiara.h 
                                 pwc_nala.h pwc_timon.h 
        linux/drivers/usb/misc: Tag: MaltaRef_2_6 speedtch.c tiglusb.c 
                                tiglusb.h 
        linux/drivers/video: Tag: MaltaRef_2_6 tx3912fb.h 
        linux/fs/devpts: Tag: MaltaRef_2_6 xattr.c xattr.h 
        linux/fs/fat   : Tag: MaltaRef_2_6 fatfs_syms.c 
        linux/fs/jfs   : Tag: MaltaRef_2_6 jfs_defragfs.h 
        linux/fs/lockd : Tag: MaltaRef_2_6 lockd_syms.c 
        linux/fs/smbfs : Tag: MaltaRef_2_6 ChangeLog 
        linux/fs/umsdos: Tag: MaltaRef_2_6 Makefile README-WIP.txt dir.c 
                         emd.c inode.c ioctl.c mangle.c namei.c rdir.c 
                         specs 
        linux/fs/xfs   : Tag: MaltaRef_2_6 xfs_cap.c xfs_mac.c 
        linux/include/asm-arm/arch-cl7500: Tag: MaltaRef_2_6 serial.h 
        linux/include/asm-arm/arch-ebsa110: Tag: MaltaRef_2_6 serial.h 
        linux/include/asm-arm/arch-ebsa285: Tag: MaltaRef_2_6 serial.h 
        linux/include/asm-arm/arch-epxa10db: Tag: MaltaRef_2_6 serial.h 
        linux/include/asm-arm/arch-imx: Tag: MaltaRef_2_6 serial.h 
        linux/include/asm-arm/arch-integrator: Tag: MaltaRef_2_6 
                                               serial.h time.h 
        linux/include/asm-arm/arch-iop3xx: Tag: MaltaRef_2_6 
                                           iop310-irqs.h iop310.h 
                                           iq80310.h pmon.h serial.h 
        linux/include/asm-arm/arch-ixp4xx: Tag: MaltaRef_2_6 serial.h 
        linux/include/asm-arm/arch-lh7a40x: Tag: MaltaRef_2_6 serial.h 
        linux/include/asm-arm/arch-omap: Tag: MaltaRef_2_6 bus.h 
                                         clocks.h omap1610.h omap5912.h 
                                         serial.h 
        linux/include/asm-arm/arch-pxa: Tag: MaltaRef_2_6 serial.h 
        linux/include/asm-arm/arch-rpc: Tag: MaltaRef_2_6 serial.h 
        linux/include/asm-arm/arch-s3c2410: Tag: MaltaRef_2_6 serial.h 
        linux/include/asm-arm/arch-sa1100: Tag: MaltaRef_2_6 adsbitsy.h 
                                           flexanet.h freebird.h 
                                           graphicsclient.h 
                                           graphicsmaster.h 
                                           huw_webpanel.h itsy.h mftb2.h 
                                           omnimeter.h pangolin.h 
                                           pfs168.h pleb.h serial.h 
                                           stork.h system3.h trizeps.h 
                                           yopy.h 
        linux/include/asm-arm/arch-shark: Tag: MaltaRef_2_6 serial.h 
        linux/include/asm-arm/arch-versatile: Tag: MaltaRef_2_6 serial.h 
        linux/include/asm-arm26: Tag: MaltaRef_2_6 calls.h ian_char.h 
                                 linux_logo.h 
        linux/include/asm-h8300: Tag: MaltaRef_2_6 linux_logo.h 
                                 softirq.h 
        linux/include/asm-ia64: Tag: MaltaRef_2_6 ioctl32.h 
        linux/include/asm-ia64/sn: Tag: MaltaRef_2_6 cdl.h dmamap.h 
                                   driver.h fetchop.h hcl.h hcl_util.h 
                                   hwgfs.h ifconfig_net.h ioc4.h 
                                   ioconfig_bus.h ioerror.h 
                                   ioerror_handling.h iograph.h kldir.h 
                                   labelcl.h pio.h prio.h router.h sgi.h 
                                   slotnum.h sn_fru.h sn_private.h 
                                   sndrv.h vector.h 
        linux/include/asm-ia64/sn/ksys: Tag: MaltaRef_2_6 elsc.h l1.h 
        linux/include/asm-ia64/sn/pci: Tag: MaltaRef_2_6 bridge.h 
                                       pci_bus_cvlink.h pci_defs.h 
                                       pcibr.h pcibr_private.h pciio.h 
                                       pciio_private.h pic.h 
        linux/include/asm-ia64/sn/sn2: Tag: MaltaRef_2_6 addrs.h arch.h 
                                       geo.h intr.h io.h shub.h 
                                       shub_md.h shub_mmr.h shub_mmr_t.h 
                                       shubio.h slotnum.h sn_private.h 
        linux/include/asm-ia64/sn/xtalk: Tag: MaltaRef_2_6 xbow.h 
                                         xbow_info.h xswitch.h xtalk.h 
                                         xtalk_private.h xtalkaddrs.h 
                                         xwidget.h 
        linux/include/asm-m68k: Tag: MaltaRef_2_6 adb_mouse.h 
                                atari_SCCserial.h 
        linux/include/asm-m68knommu: Tag: MaltaRef_2_6 io_hw_swap.h 
                                     keyboard.h m5282sim.h nap.h semp3.h 
                                     shglcore.h shglports.h 
        linux/include/asm-mips: Tag: MaltaRef_2_6 mv64340.h ng1.h 
                                ng1hw.h pci_channel.h 
        linux/include/asm-mips/baget: Tag: MaltaRef_2_6 baget.h vac.h 
                                      vic.h 
        linux/include/asm-mips/hp-lj: Tag: MaltaRef_2_6 asic.h 
        linux/include/asm-mips/it8172: Tag: MaltaRef_2_6 it8172_lpc.h 
        linux/include/asm-mips/vr4181: Tag: MaltaRef_2_6 irq.h vr4181.h 
        linux/include/asm-mips/vr41xx: Tag: MaltaRef_2_6 vrc4171.h 
        linux/include/asm-parisc: Tag: MaltaRef_2_6 bootdata.h 
                                  parport_gsc.h som.h 
        linux/include/asm-ppc64: Tag: MaltaRef_2_6 bootx.h 
        linux/include/asm-ppc64/iSeries: Tag: MaltaRef_2_6 ItLpPaca.h 
                                         iSeries_VpdInfo.h 
                                         iSeries_fixup.h 
        linux/include/asm-sh64: Tag: MaltaRef_2_6 smplock.h softirq.h 
        linux/include/asm-um: Tag: MaltaRef_2_6 module.h smplock.h 
        linux/include/asm-x86_64: Tag: MaltaRef_2_6 ioctl32.h ipc.h 
        linux/include/linux: Tag: MaltaRef_2_6 affs_fs_i.h affs_fs_sb.h 
                             blk.h compiler-gcc+.h dp83840.h iso_fs_i.h 
                             iso_fs_sb.h msdos_fs_i.h msdos_fs_sb.h 
                             tpqic02.h umsdos_fs.h umsdos_fs.p 
                             umsdos_fs_i.h 
        linux/include/linux/netfilter_ipv4: Tag: MaltaRef_2_6 
                                            compat_firewall.h 
                                            ipchains_core.h 
                                            ipfwadm_core.h 
        linux/include/linux/netfilter_ipv6: Tag: MaltaRef_2_6 
                                            ip6t_REJECT.h 
        linux/include/pcmcia: Tag: MaltaRef_2_6 ftl.h memory.h 
        linux/include/sound: Tag: MaltaRef_2_6 sndmagic.h soundmem.h 
                             yss225.h 
        linux/kernel/power: Tag: MaltaRef_2_6 pmdisk.c 
        linux/lib/zlib_inflate: Tag: MaltaRef_2_6 inffixed.h 
        linux/net/ipv4 : Tag: MaltaRef_2_6 ip_nat_dumb.c 
        linux/net/ipv4/ipvs: Tag: MaltaRef_2_6 ip_vs_proto_icmp.c 
        linux/net/ipv4/netfilter: Tag: MaltaRef_2_6 ip_fw_compat.c 
                                  ip_fw_compat.h ip_fw_compat_masq.c 
                                  ip_fw_compat_redir.c ipchains_core.c 
                                  ipfwadm_core.c 
        linux/net/ipv6 : Tag: MaltaRef_2_6 README 
        linux/net/netlink: Tag: MaltaRef_2_6 netlink_dev.c 
        linux/net/sunrpc: Tag: MaltaRef_2_6 svcauth_des.c 
        linux/net/sunrpc/auth_gss: Tag: MaltaRef_2_6 gss_pseudoflavors.c 
                                   sunrpcgss_syms.c 
        linux/net/xfrm : Tag: MaltaRef_2_6 xfrm_export.c 
        linux/scripts  : Tag: MaltaRef_2_6 README.Menuconfig makeman 
                         split-man 
        linux/sound/core/ioctl32: Tag: MaltaRef_2_6 Makefile hwdep32.c 
                                  ioctl32.c ioctl32.h pcm32.c 
                                  rawmidi32.c seq32.c timer32.c 
        linux/sound/core/seq/oss: Tag: MaltaRef_2_6 seq_oss_misc.c 
        linux/sound/isa/gus: Tag: MaltaRef_2_6 gus_lfo.c 
        linux/sound/oss: Tag: MaltaRef_2_6 au1550_psc.c cs4232.h 
                         maestro_tables.h 

Log message:
        Merged latest changes from HEAD to MaltaRef_2_6_merged_20050613

diff -urN malta/linux/CREDITS malta/linux/CREDITS
--- malta/linux/CREDITS 2004/09/14 16:27:37     1.123.1000.2
+++ malta/linux/CREDITS 2005/06/21 13:20:26     1.123.1000.3
@@ -34,8 +34,9 @@
 E: airlied@linux.ie
 W: http://www.csn.ul.ie/~airlied
 D: NFS over TCP patches
-S: University of Limerick
-S: Ireland
+D: in-kernel DRM Maintainer
+S: Longford, Ireland
+S: Sydney, Australia
 
 N: Tigran A. Aivazian
 E: tigran@veritas.com
@@ -46,13 +47,11 @@
 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
@@ -281,6 +280,11 @@
 S: Greenbelt, Maryland 20771
 S: USA
 
+N: Adam Belay
+E: ambx1@neo.rr.com
+D: Linux Plug and Play Support
+S: USA
+
 N: Daniele Bellucci
 E: bellucda@tiscali.it
 D: Various Janitor work.
@@ -325,8 +329,6 @@
 S: USA
 
 N: Hennus Bergman
-E: hennus@cybercomm.nl
-W: http://www.cybercomm.nl/~hennus/
 P: 1024/77D50909 76 99 FD 31 91 E1 96 1C  90 BB 22 80 62 F6 BD 63
 D: Author and maintainer of the QIC-02 tape driver
 S: The Netherlands
@@ -337,7 +339,7 @@
 D: dsp56k device driver
 
 N: Ross Biro
-E: bir7@leland.Stanford.Edu
+E: ross.biro@gmail.com
 D: Original author of the Linux networking code
 
 N: Anton Blanchard
@@ -492,6 +494,14 @@
 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
@@ -513,6 +523,14 @@
 S: Oxford
 S: United Kingdom
 
+N: Luiz Fernando N. Capitulino
+E: lcapitulino@terra.com.br
+E: lcapitulino@prefeitura.sp.gov.br
+W: http://www.telecentros.sp.gov.br
+D: Little fixes and a lot of janitorial work
+S: E-GOV Telecentros SP
+S: Brazil
+
 N: Remy Card
 E: Remy.Card@masi.ibp.fr
 E: Remy.Card@linux.org
@@ -625,6 +643,14 @@
 D: Assorted sched/mm titbits
 S: Oxfordshire, UK.
 
+N: Kees Cook
+E: kees@outflux.net
+W: http://outflux.net/
+P: 1024D/17063E6D 9FA3 C49C 23C9 D1BC 2E30  1975 1FFF 4BA9 1706 3E6D
+D: Minor updates to SCSI code for the Communications type
+S: (ask for current address)
+S: USA
+
 N: Mark Corner
 E: mcorner@umich.edu
 W: http://www.eecs.umich.edu/~mcorner/
@@ -639,14 +665,6 @@
 S: Santa Cruz, California
 S: USA
 
-N: Kees Cook
-E: kees@outflux.net
-W: http://outflux.net/
-P: 1024D/17063E6D 9FA3 C49C 23C9 D1BC 2E30  1975 1FFF 4BA9 1706 3E6D
-D: Minor updates to SCSI code for the Communications type
-S: (ask for current address)
-S: USA
-
 N: Alan Cox
 W: http://www.linux.org.uk/diary/
 D: Linux Networking (0.99.10->2.0.29)
@@ -735,6 +753,12 @@
 S: D-69231 Rauenberg
 S: Germany
 
+N: Jean Delvare
+E: khali@linux-fr.org
+W: http://khali.linux-fr.org/
+D: Several hardware monitoring drivers
+S: France
+
 N: Peter Denison
 E: peterd@pnd-pc.demon.co.uk
 W: http://www.pnd-pc.demon.co.uk/promise/
@@ -754,7 +778,7 @@
 D: HTB qdisc and random networking hacks
 
 N: Alex deVries
-E: adevries@thepuffingroup.com
+E: alex@onefishtwo.ca
 D: Various SGI parts, bits of HAL2 and Newport, PA-RISC Linux.
 S: 41.5 William Street
 S: Ottawa, Ontario
@@ -780,6 +804,21 @@
 S: Round Rock, TX  78682
 S: USA
 
+N: Ben Dooks
+E: ben-linux@fluff.org
+E: ben@simtec.co.uk
+W: http://www.fluff.org/ben/
+W: http://www.simtec.co.uk/
+D: Samsung S3C2410/S3C2440 support, general ARM support
+D: Maintaining Simtec Electronics development boards
+S: Simtec Electronics
+S: Avondale Drive
+S: Tarleton
+S: Preston
+S: Lancs
+S: PR4 6AX
+S: United Kingdom
+
 N: John G Dorsey
 E: john+@cs.cmu.edu
 D: ARM Linux ports to Assabet/Neponset, Spot
@@ -801,6 +840,11 @@
 W: http://www.fsmlabs.com/linuxppcbk.html
 D: PowerPC
 
+N: Daniel Drake
+E: dsd@gentoo.org
+D: USBAT02 CompactFlash support in usb-storage
+S: UK
+
 N: Oleg Drokin
 E: green@ccssu.crimea.ua
 W: http://www.ccssu.crimea.ua/~green
@@ -838,13 +882,12 @@
 S: USA
 
 N: Randy Dunlap
-E: rddunlap@osdl.org
+E: rdunlap@xenotime.net
 W: http://www.xenotime.net/linux/linux.html
 W: http://www.linux-usb.org
 D: Linux-USB subsystem, USB core/UHCI/printer/storage drivers
 D: x86 SMP, ACPI, bootflag hacking
-S: 12725 SW Millikan Way, Suite 400
-S: Beaverton, Oregon 97005
+S: (ask for current address)
 S: USA
 
 N: Bob Dunlop
@@ -905,6 +948,10 @@
 S: S-114 79 Stockholm
 S: Sweden
 
+N: David Engebretsen
+E: engebret@us.ibm.com
+D: Linux port to 64-bit PowerPC architecture
+
 N: Michael Engel
 E: engel@unix-ag.org
 D: DECstation framebuffer drivers
@@ -1049,6 +1096,12 @@
 S: 80050-430 - Curitiba - Paraná
 S: Brazil
 
+N: Kumar Gala
+E: kumar.gala@freescale.com
+D: Embedded PowerPC 6xx/7xx/74xx/82xx/83xx/85xx support
+S: Austin, Texas 78729
+S: USA
+
 N: Nigel Gamble
 E: nigel@nrg.org
 D: Interrupt-driven printer driver
@@ -1060,12 +1113,6 @@
 N: Jeff Garzik
 E: jgarzik@pobox.com
 
-N: Kumar Gala
-E: kumar.gala@freescale.com
-D: Embedded PowerPC 6xx/7xx/74xx/82xx/85xx support
-S: Austin, Texas 78729
-S: USA
-
 N: Jacques Gelinas
 E: jacques@solucorp.qc.ca
 D: Author of the Umsdos file system
@@ -1563,10 +1610,37 @@
 D: Various Janitor work.
 S: United Kingdom
 
+N: Martin Josfsson
+E: gandalf@wlug.westbo.se
+P: 1024D/F6B6D3B1 7610 7CED 5C34 4AA6 DBA2  8BE1 5A6D AF95 F6B6 D3B1
+D: netfilter: SAME target
+D: netfilter: helper target
+D: netfilter: various other hacks
+S: Ronneby
+S: Sweden
+
 N: Ani Joshi
 E: ajoshi@shell.unixbox.com
 D: fbdev hacking
 
+N: Jesper Juhl
+E: juhl-lkml@dif.dk
+D: Various small janitor fixes, cleanups etc.
+S: Lemnosvej 1, 3.tv
+S: 2300 Copenhagen S
+S: Denmark
+
+N: Jozsef Kadlecsik
+E: kadlec@blackhole.kfki.hu
+P: 1024D/470DB964 4CB3 1A05 713E 9BF7 FAC5  5809 DD8C B7B1 470D B964
+D: netfilter: TCP window tracking code
+D: netfilter: raw table
+D: netfilter: iprange match
+D: netfilter: new logging interfaces
+D: netfilter: various other hacks
+S: Tata
+S: Hungary
+
 N: Bernhard Kaindl
 E: bkaindl@netway.at
 E: edv@bartelt.via.at
@@ -1755,7 +1829,8 @@
 
 N: Greg Kroah-Hartman
 E: greg@kroah.com
-W: http://www.kroah.com/linux-usb/
+E: gregkh@suse.de
+W: http://www.kroah.com/linux/
 D: USB Serial Converter driver framework, USB Handspring Visor driver
 D: ConnectTech WHITEHeat USB driver, Generic USB Serial driver
 D: USB I/O Edgeport driver, USB Serial IrDA driver
@@ -1763,6 +1838,7 @@
 D: bits and pieces of USB core code.
 D: PCI Hotplug core, PCI Hotplug Compaq driver modifications
 D: portions of the Linux Security Module (LSM) framework
+D: parts of the driver core, debugfs.
 
 N: Russell Kroll
 E: rkroll@exploits.org
@@ -1818,11 +1894,6 @@
 S: 370 01  Ceske Budejovice
 S: Czech Republic
 
-N: Adam Belay
-E: ambx1@neo.rr.com
-D: Linux Plug and Play Support
-S: USA
-
 N: Bas Laarhoven
 E: sjml@xs4all.nl
 D: Loadable modules and ftape driver
@@ -1842,7 +1913,7 @@
 D: Bug fixes
 
 N: Paul Laufer
-E: pelaufer@csupomona.edu
+E: paul@laufernet.com
 D: Soundblaster driver fixes, ISAPnP quirk
 S: California, USA
 
@@ -1886,7 +1957,8 @@
 N: Colin Leroy
 E: colin@colino.net
 W: http://www.geekounet.org/
-D: PowerMac adt7467 fan driver
+D: PowerMac adt746x fan driver
+D: Random fixing of various drivers (macintosh, usb, sound)
 S: Toulouse
 S: France
 
@@ -1954,12 +2026,6 @@
 S: Niwot, Colorado 80503
 S: USA
 
-N: Pete Popov
-E: pete_popov@yahoo.com
-D: Linux/MIPS AMD/Alchemy Port and mips hacking and debugging
-S: San Jose, CA 95134
-S: USA
-
 N: Robert M. Love
 E: rml@tech9.net
 E: rml@novell.com
@@ -1976,6 +2042,17 @@
 E: hjl@gnu.ai.mit.edu
 D: GCC + libraries hacker
 
+N: Michal Ludvig
+E: michal@logix.cz
+E: michal.ludvig@asterisk.co.nz
+W: http://www.logix.cz/michal
+P: 1024D/C45B2218 1162 6471 D391 76E0 9F99  29DA 0C3A 2509 C45B 2218
+D: VIA PadLock driver
+D: Netfilter pkttype module
+S: Asterisk Ltd.
+S: Auckland
+S: New Zealand
+
 N: Tuomas J. Lukka
 E: Tuomas.Lukka@Helsinki.FI
 D: Original dual-monitor patches
@@ -2127,6 +2204,16 @@
 S: (address available on request)
 S: USA
 
+N: Patrick McHardy
+E: kaber@trash.net
+P: 1024D/12155E80 B128 7DE6 FF0A C2B2 48BE  AB4C C9D4 964E 1215 5E80
+D: netfilter: endless number of bugfixes
+D: netfilter: CLASSIFY target
+D: netfilter: addrtype match
+D: tc: HFSC scheduler
+S: Freiburg
+S: Germany
+
 N: Mike McLagan
 E: mike.mclagan@linux.org
 W: http://www.invlogic.com/~mmclagan
@@ -2214,14 +2301,13 @@
 S: Netherlands
 
 N: David S. Miller
-E: davem@redhat.com
+E: davem@davemloft.net
 D: Sparc and blue box hacker
 D: Vger Linux mailing list co-maintainer
 D: Linux Emacs elf/qmagic support + other libc/gcc things
 D: Yee bore de yee bore! ;-)
-S: 750 N. Shoreline Blvd.
-S: Apt. #111
-S: Mountain View, California 94043
+S: 575 Harrison St. #103
+S: San Francisco, CA 94105
 S: USA
 
 N: Rick Miller
@@ -2570,6 +2656,7 @@
 E: nico@cam.org
 D: StrongARM SA1100 support integrator & hacker
 D: Xscale PXA architecture
+D: unified SMC 91C9x/91C11x ethernet driver (smc91x)
 S: Montreal, Quebec, Canada
 
 N: Ken Pizzini
@@ -2582,6 +2669,12 @@
 D: sonypi, meye drivers, mct_u232 usb serial hacks
 S: Paris, France
 
+N: Pete Popov
+E: pete_popov@yahoo.com
+D: Linux/MIPS AMD/Alchemy Port and mips hacking and debugging
+S: San Jose, CA 95134
+S: USA
+
 N: Matt Porter
 E: mporter@kernel.crashing.org
 D: Motorola PowerPC PReP support
@@ -2709,7 +2802,7 @@
 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
@@ -2797,7 +2890,7 @@
 
 N: Paul `Rusty' Russell
 E: rusty@rustcorp.com.au
-W: http://www.samba.org/netfilter
+W: http://ozlabs.org/~rusty
 D: Ruggedly handsome.
 D: netfilter, ipchains with Michael Neuling.
 S: 52 Moore St
@@ -2821,7 +2914,6 @@
 S: Wellington
 S: New Zealand
 
-
 N: Sampo Saaristo
 E: sambo@cs.tut.fi
 D: Co-author of Multi-Protocol Over ATM (MPOA)
@@ -2838,6 +2930,9 @@
 S: 8006 Zuerich
 S: Switzerland
 
+N: Manuel Estrada Sainz
+D: Firmware loader (request_firmware)
+
 N: Wayne Salamon
 E: wsalamon@tislabs.com
 E: wsalamon@nai.com
@@ -2864,10 +2959,10 @@
 S: Finland
 
 N: Deepak Saxena
-E: deepak@csociety.purdue.edu
+E: dsaxena@plexity.net
 D: I2O kernel layer (config, block, core, pci, net). I2O disk support for LILO
-D: XScale(IOP310) porting
-S: Tempe, Arizona
+D: XScale(IOP, IXP) porting and other random ARM bits
+S: Portland, OR
 
 N: Eric Schenk
 E: Eric.Schenk@dna.lth.se
@@ -3093,6 +3188,14 @@
 S: Seattle, WA  98195-1800
 S: USA
 
+N: Eugene Surovegin
+E: ebs@ebshome.net
+W: http://kernel.ebshome.net/
+P: 1024D/AE5467F1 FF22 39F1 6728 89F6 6E6C  2365 7602 F33D AE54 67F1
+D: Embedded PowerPC 4xx: I2C, PIC and random hacks/fixes
+S: Sunnyvale, California 94085
+S: USA
+
 N: Corey Thomas
 E: corey@world.std.com
 W: http://world.std.com/~corey/index.html
@@ -3195,6 +3298,7 @@
 D: Author of job control and system call restart code
 D: Author of ramdisk device driver
 D: Author of loopback device driver
+D: Author of /dev/random driver
 S: MIT Room E40-343
 S: 1 Amherst Street
 S: Cambridge, Massachusetts 02139
@@ -3252,10 +3356,11 @@
 S: USA
 
 N: Matthias Urlichs
-E: urlichs@noris.de
-E: urlichs@smurf.sub.org
+E: smurf@smurf.noris.de
+E: smurf@debian.org
+E: matthias@urlichs.de
 D: Consultant, developer, kernel hacker
-D: Playing with Streams, ISDN, and BSD networking code for Linux
+D: In a previous life, worked on Streams/ISDN/BSD networking code for Linux
 S: Schleiermacherstrasse 12
 S: 90491 Nuernberg
 S: Germany
@@ -3272,7 +3377,7 @@
 D: Atari Falcon chipset IDE
 D: Amiga Gayle chipset IDE
 D: mipsel NEC DDB Vrc-5074
-S: Holsbeeksesteenweg 166
+S: Emiel Vlieberghlaan 2A/21
 S: B-3010 Kessel-Lo
 S: Belgium
 
@@ -3289,14 +3394,6 @@
 S: 10200 Prague 10, Hostivar
 S: Czech Republic
 
-N: James R. Van Zandt
-E: jrv@vanzandt.mv.com
-P: 1024/E298966D F0 37 4F FD E5 7E C5 E6  F1 A0 1E 22 6F 46 DA 0C
-D: Author and maintainer of the Double Talk speech synthesizer driver
-S: 27 Spencer Drive
-S: Nashua, New Hampshire 03062
-S: USA
-
 N: Heikki Vatiainen
 E: hessu@cs.tut.fi
 D: Co-author of Multi-Protocol Over ATM (MPOA), some LANE hacks
@@ -3335,6 +3432,7 @@
 E: pe1rxq@amsat.org
 W: http://www.chello.nl/~j.vreeken/
 D: SE401 usb webcam driver
+D: ZD1201 usb wireless lan driver
 S: Maastrichterweg 63
 S: 5554 GG Valkenswaard
 S: The Netherlands
@@ -3387,6 +3485,18 @@
 S: Berkeley, CA 94720-1776
 S: USA
 
+N: Harald Welte
+E: laforge@netfilter.org
+P: 1024D/30F48BFF DBDE 6912 8831 9A53 879B  9190 5DA5 C655 30F4 8BFF
+W: http://gnumonks.org/users/laforge
+D: netfilter: new nat helper infrastructure
+D: netfilter: ULOG, ECN, DSCP target
+D: netfilter: TTL match
+D: netfilter: IPv6 mangle table
+D: netfilter: various other hacks
+S: Berlin
+S: Germany
+
 N: Bill Wendling
 E: wendling@ganymede.isdn.uiuc.edu
 W: http://www.ncsa.uiuc.edu/~wendling/
@@ -3502,7 +3612,6 @@
 
 N: David Woodhouse
 E: dwmw2@infradead.org
-E: dwmw2@redhat.com
 D: ARCnet stuff, Applicom board driver, SO_BINDTODEVICE,
 D: some Alpha platform porting from 2.0, Memory Technology Devices,
 D: Acquire watchdog timer, PC speaker driver maintenance,
@@ -3578,6 +3687,14 @@
 S: Tokyo 153
 S: Japan
 
+N: James R. Van Zandt
+E: jrv@vanzandt.mv.com
+P: 1024/E298966D F0 37 4F FD E5 7E C5 E6  F1 A0 1E 22 6F 46 DA 0C
+D: Author and maintainer of the Double Talk speech synthesizer driver
+S: 27 Spencer Drive
+S: Nashua, New Hampshire 03062
+S: USA
+
 N: Orest Zborowski
 E: orestz@eskimo.com
 D: XFree86 and kernel development
@@ -3619,13 +3736,6 @@
 D: EISA/sysfs subsystem
 S: France
 
-N: Luiz Fernando N. Capitulino
-E: lcapitulino@terra.com.br
-E: lcapitulino@prefeitura.sp.gov.br
-W: http://www.telecentros.sp.gov.br
-D: Little fixes and a lot of janitorial work
-S: E-GOV Telecentros SP
-S: Brazil
 
 # Don't add your name here, unless you really _are_ after Marc
 # alphabetically. Leonard used to be very proud of being the 
diff -urN malta/linux/MAINTAINERS malta/linux/MAINTAINERS
--- malta/linux/MAINTAINERS     2004/09/14 16:27:37     1.151.1000.2
+++ malta/linux/MAINTAINERS     2005/06/21 13:20:27     1.151.1000.3
@@ -73,21 +73,21 @@
 3C359 NETWORK DRIVER
 P:     Mike Phillips
 M:     mikep@linuxtr.net
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 L:     linux-tr@linuxtr.net
 W:     http://www.linuxtr.net
 S:     Maintained
 
 3C505 NETWORK DRIVER
 P:     Philip Blundell
-M:     Philip.Blundell@pobox.com
-L:     linux-net@vger.kernel.org
+M:     philb@gnu.org
+L:     netdev@oss.sgi.com
 S:     Maintained
 
 3CR990 NETWORK DRIVER
 P:     David Dillow
 M:     dave@thedillows.org
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 S:     Maintained
 
 3W-XXXX ATA-RAID CONTROLLER DRIVER
@@ -143,7 +143,7 @@
 8390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.]
 P:     Paul Gortmaker
 M:     p_gortmaker@yahoo.com
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 S:     Maintained
 
 A2232 SERIAL BOARD DRIVER
@@ -155,7 +155,7 @@
 
 AIO
 P:     Benjamin LaHaise
-M:     bcrl@redhat.com
+M:     bcrl@kvack.org
 L:     linux-aio@kvack.org
 S:     Supported
 
@@ -169,17 +169,9 @@
 P:     Robert Siemer
 M:     Robert.Siemer@gmx.de
 L:     linux-sound@vger.kernel.org
-W:     http://www.uni-karlsruhe.de/~Robert.Siemer/Private/
+W:     http://www.stud.uni-karlsruhe.de/~uh1b/
 S:     Maintained
 
-ACP/MWAVE MODEM
-P:     Paul B Schroeder
-M:     paulsch@us.ibm.com
-P:     Mike Sullivan
-M:     sullivam@us.ibm.com
-W:     http://www.ibm.com/linux/ltc/
-S:     Supported
-
 AACRAID SCSI RAID DRIVER
 P:     Adaptec OEM Raid Solutions
 L:     linux-scsi@vger.kernel.org
@@ -195,8 +187,14 @@
 
 AD1816 SOUND DRIVER
 P:     Thorsten Knabe
-W:     http://www.student.informatik.tu-darmstadt.de/~tek/projects/linux.html
-W:     http://www.tu-darmstadt.de/~tek01/projects/linux.html
+M:     Thorsten Knabe <linux@thorsten-knabe.de>
+W:     http://linux.thorsten-knabe.de
+S:     Maintained
+
+ADM1025 HARDWARE MONITOR DRIVER
+P:     Jean Delvare
+M:     khali@linux-fr.org
+L:     sensors@stimpy.netroedge.com
 S:     Maintained
 
 ADT746X FAN DRIVER
@@ -241,6 +239,12 @@
 W:     http://www.linux-usb.org/SpeedTouch/
 S:     Maintained
 
+ALI1563 I2C DRIVER
+P:     Rudolf Marek
+M:     r.marek@sh.cvut.cz
+L:     sensors@stimpy.netroedge.com
+S:     Maintained
+
 ALPHA PORT
 P:     Richard Henderson
 M:     rth@twiddle.net
@@ -277,8 +281,19 @@
 S:     Maintained
 
 ARM MFM AND FLOPPY DRIVERS
-P:     Dave Gilbert
-M:     linux@treblig.org
+P:     Ian Molton
+M:     spyro@f2s.com
+S:     Maintained
+
+ARM/CORGI MACHINE SUPPORT
+P:     Richard Purdie
+M:     rpurdie@rpsys.net
+S:     Maintained
+
+ARM/PLEB SUPPORT
+P:     Peter Chubb
+M:     pleb@gelato.unsw.edu.au
+W:     http://www.disy.cse.unsw.edu.au/Hardware/PLEB
 S:     Maintained
 
 ARM/PT DIGITAL BOARD PORT
@@ -301,9 +316,23 @@
 W:     http://www.arm.linux.org.uk/
 S:     Maintained
 
+ARM/S3C2410 ARM ARCHITECTURE
+P:     Ben Dooks
+M:     ben-s3c2410@fluff.org
+L:     linux-arm-kernel@lists.arm.linux.org.uk
+W:     http://www.fluff.org/ben/linux/
+S:     Maintained
+
+ARM/S3C2440 ARM ARCHITECTURE
+P:     Ben Dooks
+M:     ben-s3c2440@fluff.org
+L:     linux-arm-kernel@lists.arm.linux.org.uk
+W:     http://www.fluff.org/ben/linux/
+S:     Maintained
+
 ARPD SUPPORT
 P:     Jonathan Layes
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 S:     Maintained
 
 ASUS ACPI EXTRAS DRIVER
@@ -316,6 +345,12 @@
 W:     http://julien.lerouge.free.fr
 S:     Maintained
 
+ATA OVER ETHERNET DRIVER
+P:     Ed L. Cashin
+M:     ecashin@coraid.com
+W:     http://www.coraid.com/support/linux
+S:     Supported
+
 ATM
 P:     Chas Williams
 M:     chas@cmf.nrl.navy.mil
@@ -420,6 +455,11 @@
 M:     marcel@holtmann.org
 S:     Maintained
 
+BLUETOOTH HCI BPA10X DRIVER
+P:     Marcel Holtmann
+M:     marcel@holtmann.org
+S:     Maintained
+
 BLUETOOTH HCI BFUSB DRIVER
 P:     Marcel Holtmann
 M:     marcel@holtmann.org
@@ -464,7 +504,7 @@
 M:     kraxel@bytesex.org
 L:     video4linux-list@redhat.com
 W:     http://bytesex.org/bttv/
-S:     Maintained
+S:     Orphan
 
 BUSLOGIC SCSI DRIVER
 P:     Leonard N. Zubkoff
@@ -525,10 +565,9 @@
 COMPUTONE INTELLIPORT MULTIPORT CARD
 P:     Michael H. Warfield
 M:     Michael H. Warfield <mhw@wittsend.com>
-W:     http://www.computone.com/
 W:     http://www.wittsend.com/computone.html
 L:     linux-computone@lazuli.wittsend.com
-S:     Supported
+S:     Orphaned
 
 COSA/SRP SYNC SERIAL DRIVER
 P:     Jan "Yenya" Kasprzak
@@ -539,7 +578,7 @@
 CPU FREQUENCY DRIVERS
 P:     Dave Jones
 M:     davej@codemonkey.org.uk
-L:     cpufreq@www.linux.org.uk
+L:     cpufreq@lists.linux.org.uk
 W:     http://www.codemonkey.org.uk/projects/cpufreq/
 S:     Maintained
 
@@ -553,19 +592,18 @@
 S:     Orphan
 
 CRIS PORT
-P:     Bjorn Wesen
-M:     bjornw@axis.com
+P:     Mikael Starvik
+M:     starvik@axis.com
 L:     dev-etrax@axis.com
 W:     http://developer.axis.com
 S:     Maintained
 
 CRYPTO API
-P:     James Morris
-M:     jmorris@redhat.com
+P:     Herbert Xu
+M:     herbert@gondor.apana.org.au
 P:     David S. Miller
-M:     davem@redhat.com
-W      http://samba.org/~jamesm/crypto/
-L:     linux-kernel@vger.kernel.org
+M:     davem@davemloft.net
+L:     linux-crypto@vger.kernel.org
 S:     Maintained
 
 CYBERPRO FB DRIVER
@@ -621,12 +659,14 @@
 P:     Kurt Garloff
 M:     garloff@suse.de
 W:     http://www.garloff.de/kurt/linux/dc390/
+P:     Guennadi Liakhovetski
+M:     g.liakhovetski@gmx.de
 S:     Maintained
 
 DECnet NETWORK LAYER
-P:     Steven Whitehouse
-M:     SteveW@ACM.org
-W:     http://www.sucs.swan.ac.uk/~rohan/DECnet/index.html
+P:     Patrick Caulfield
+M:     patrick@tykepenguin.com
+W:     http://linux-decnet.sourceforge.net
 L:     linux-decnet-user@lists.sourceforge.net
 S:     Maintained
 
@@ -648,8 +688,9 @@
 S:     Maintained
 
 DEVICE NUMBER REGISTRY
-P:     John Cagle
+P:     Torben Mathiasen
 M:     device@lanana.org
+W:     http://lanana.org/docs/device-list/index.html
 L:     linux-kernel@vger.kernel.org
 S:     Maintained
 
@@ -661,19 +702,12 @@
 M:     Eng.Linux@digi.com
 L:     Eng.Linux@digi.com
 W:     http://www.digi.com
-S:     Maintained
+S:     Orphaned
 
 DIGI RIGHTSWITCH NETWORK DRIVER
 P:     Rick Richardson
-L:     linux-net@vger.kernel.org
-W:     http://www.digi.com
-S:     Orphaned
-
-DIGIBOARD PC/XE AND PC/XI DRIVER
-P:     Christoph Lameter
-M:     christoph@lameter.com
+L:     netdev@oss.sgi.com
 W:     http://www.digi.com
-L:     digilnux@digi.com
 S:     Orphaned
 
 DIRECTORY NOTIFICATION
@@ -691,8 +725,8 @@
 S:     Maintained
 
 DISKQUOTA:
-P:     Marco van Wieringen
-M:     mvw@planets.elm.net
+P:     Jan Kara
+M:     jack@suse.cz
 L:     linux-kernel@vger.kernel.org
 S:     Maintained
 
@@ -710,13 +744,15 @@
 
 DRIVER CORE, KOBJECTS, AND SYSFS
 P:     Greg Kroah-Hartman
-M:     greg@kroah.com
+M:     gregkh@suse.de
 L:     linux-kernel@vger.kernel.org
 S:     Supported
 
 DRM DRIVERS
+P:     David Airlie
+M:     airlied@linux.ie
 L:     dri-devel@lists.sourceforge.net
-S:     Supported
+S:     Maintained
 
 DSCC4 DRIVER
 P:     François Romieu
@@ -762,8 +798,8 @@
 S:     Maintained
 
 EMU10K1 SOUND DRIVER
-P:     Rui Sousa       
-M:     rui.p.m.sousa@clix.pt   
+P:     James Courtier-Dutton
+M:     James@superbug.demon.co.uk
 L:     emu10k1-devel@lists.sourceforge.net
 W:     http://sourceforge.net/projects/emu10k1/
 S:     Maintained
@@ -775,8 +811,8 @@
 
 ETHEREXPRESS-16 NETWORK DRIVER
 P:     Philip Blundell
-M:     Philip.Blundell@pobox.com
-L:     linux-net@vger.kernel.org
+M:     philb@gnu.org
+L:     netdev@oss.sgi.com
 S:     Maintained
 
 ETHERNET BRIDGE
@@ -797,7 +833,7 @@
 
 EXT3 FILE SYSTEM
 P:     Stephen Tweedie, Andrew Morton
-M:     sct@redhat.com, akpm@digeo.com, adilger@clusterfs.com
+M:     sct@redhat.com, akpm@osdl.org, adilger@clusterfs.com
 L:     ext3-users@redhat.com
 S:     Maintained
 
@@ -809,11 +845,11 @@
 S:     Supported
 
 FRAMEBUFFER LAYER
-P:     James Simmons, Geert Uytterhoeven       
-M:     jsimmons@infradead.org, geert@linux-m68k.org    
+P:     Antonino Daplas
+M:     adaplas@pol.net
 L:     linux-fbdev-devel@lists.sourceforge.net 
 W:     http://linux-fbdev.sourceforge.net/
-S:     Supported
+S:     Maintained
 
 FILE LOCKING (flock() and fcntl()/lockf())
 P:     Matthew Wilcox
@@ -823,14 +859,12 @@
 
 FILESYSTEMS (VFS and infrastructure)
 P:     Alexander Viro
-M:     viro@math.psu.edu
+M:     viro@parcelfarce.linux.theplanet.co.uk
 S:     Maintained
 
 FIRMWARE LOADER (request_firmware)
-P:     Manuel Estrada Sainz
-M:     ranty@debian.org
 L:     linux-kernel@vger.kernel.org
-S:     Maintained
+S:     Orphan
 
 FPU EMULATOR
 P:     Bill Metzenthen
@@ -841,7 +875,7 @@
 FRAME RELAY DLCI/FRAD (Sangoma drivers too)
 P:     Mike McLagan
 M:     mike.mclagan@linux.org
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 S:     Maintained
 
 FREEVXFS FILESYSTEM
@@ -850,12 +884,15 @@
 W:     ftp://ftp.openlinux.org/pub/people/hch/vxfs
 S:     Maintained
 
+FUJITSU FR-V PORT
+P:     David Howells
+M:     dhowells@redhat.com
+S:     Maintained
+
 FTAPE/QIC-117
-P:     Claus-Justus Heine
-M:     claus@momo.math.rwth-aachen.de
 L:     linux-tape@vger.kernel.org
-W:     http://www-math.math.rwth-aachen.de/~LBFM/claus/ftape/
-S:     Maintained
+W:     http://sourceforge.net/projects/ftape
+S:     Orphan
 
 FUTURE DOMAIN TMC-16x0 SCSI DRIVER (16-bit)
 P:     Rik Faith
@@ -870,10 +907,17 @@
 W:     http://www.icp-vortex.com/
 S:     Supported
 
-GENERIC HDLC DRIVER, N2 AND C101 DRIVERS
+GENERIC HDLC DRIVER, N2, C101, PCI200SYN and WANXL DRIVERS
 P:     Krzysztof Halasa
 M:     khc@pm.waw.pl
-W:     http://hq.pm.waw.pl/hdlc/
+W:     http://www.kernel.org/pub/linux/utils/net/hdlc/
+S:     Maintained
+
+HARMONY SOUND DRIVER
+P:     Kyle McMartin
+M:     kyle@parisc-linux.org
+W:     http://www.parisc-linux.org/~kyle/harmony/
+L:     parisc-linux@lists.parisc-linux.org
 S:     Maintained
 
 HAYES ESP SERIAL DRIVER
@@ -938,20 +982,26 @@
 W:     http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi
 S:     Maintained
 
-HPUSBSCSI
-P:     Oliver Neukum
-M:     drivers@neukum.org
+HUGETLB FILESYSTEM
+P:     William Irwin
+M:     wli@holomorphy.com
 S:     Maintained
 
 I2C AND SENSORS DRIVERS
 P:     Greg Kroah-Hartman
 M:     greg@kroah.com
-P:     Philip Edelbrock
-M:     phil@netroedge.com
+P:     Jean Delvare
+M:     khali@linux-fr.org
 L:     sensors@stimpy.netroedge.com
 W:     http://www.lm-sensors.nu/
 S:     Maintained
 
+I2O
+P:     Markus Lidel
+M:     markus.lidel@shadowconnect.com
+W:     http://i2o.shadowconnect.com/
+S:     Maintained
+
 i386 BOOT CODE
 P:     Riley H. Williams
 M:     Riley@Williams.Name
@@ -972,15 +1022,15 @@
 S:     Maintained
 
 IA64 (Itanium) PLATFORM
-P:     David Mosberger-Tang
-M:     davidm@hpl.hp.com
+P:     Tony Luck
+M:     tony.luck@intel.com
 L:     linux-ia64@vger.kernel.org
 W:     http://www.ia64-linux.org/
 S:     Maintained
 
 SN-IA64 (Itanium) SUB-PLATFORM
-P:     Jesse Barnes
-M:     jbarnes@sgi.com
+P:     Greg Edwards
+M:     edwardsg@sgi.com
 L:     linux-altix@sgi.com
 L:     linux-ia64@vger.kernel.org
 W:     http://www.sgi.com/altix
@@ -1031,9 +1081,21 @@
 L:     linux-kernel@vger.kernel.org
 S:     Maintained
 
+IEEE 1394 ETHERNET (eth1394)
+L:     linux1394-devel@lists.sourceforge.net
+W:     http://www.linux1394.org/
+S:     Orphan
+
+IEEE 1394 SBP2
+L:     linux1394-devel@lists.sourceforge.net
+W:     http://www.linux1394.org/
+S:     Orphan
+
 IEEE 1394 SUBSYSTEM
 P:     Ben Collins
 M:     bcollins@debian.org
+P:     Jody McIntyre
+M:     scjody@steamballoon.com
 L:     linux1394-devel@lists.sourceforge.net
 W:     http://www.linux1394.org/
 S:     Maintained
@@ -1041,13 +1103,15 @@
 IEEE 1394 OHCI DRIVER
 P:     Ben Collins
 M:     bcollins@debian.org
+P:     Jody McIntyre
+M:     scjody@steamballoon.com
 L:     linux1394-devel@lists.sourceforge.net
 W:     http://www.linux1394.org/
 S:     Maintained
 
 IEEE 1394 PCILYNX DRIVER
-P:     Andreas Bombe
-M:     andreas.bombe@munich.netsurf.de
+P:     Jody McIntyre
+M:     scjody@steamballoon.com
 L:     linux1394-devel@lists.sourceforge.net
 W:     http://www.linux1394.org/
 S:     Maintained
@@ -1055,6 +1119,8 @@
 IEEE 1394 RAW I/O DRIVER
 P:     Ben Collins
 M:     bcollins@debian.org
+P:     Dan Dennedy
+M:     dan@dennedy.org
 L:     linux1394-devel@lists.sourceforge.net
 W:     http://www.linux1394.org/
 S:     Maintained
@@ -1065,6 +1131,24 @@
 L:     linux-fbdev-devel@lists.sourceforge.net
 S:     Maintained
 
+INFINIBAND SUBSYSTEM
+P:     Roland Dreier
+M:     roland@topspin.com
+P:     Sean Hefty
+M:     mshefty@ichips.intel.com
+P:     Hal Rosenstock
+M:     halr@voltaire.com
+L:     openib-general@openib.org
+W:     http://www.openib.org/
+S:     Supported
+
+INPUT (KEYBOARD, MOUSE, JOYSTICK) DRIVERS
+P:     Vojtech Pavlik
+M:     vojtech@suse.cz
+L:     linux-input@atrey.karlin.mff.cuni.cz
+L:     linux-joystick@atrey.karlin.mff.cuni.cz
+S:     Maintained
+
 INTEL 810/815 FRAMEBUFFER DRIVER
 P:      Antonino Daplas
 M:      adaplas@pol.net
@@ -1092,8 +1176,8 @@
 M:     john.ronciak@intel.com
 P:     Ganesh Venkatesan
 M:     ganesh.venkatesan@intel.com
-P:     Scott Feldman
-M:     scott.feldman@intel.com
+P:     Jesse Brandeburg
+M:     jesse.brandeburg@intel.com
 W:     http://sourceforge.net/projects/e1000/
 S:     Supported
 
@@ -1117,13 +1201,6 @@
 W:     http://sourceforge.net/projects/e1000/
 S:     Supported
 
-INTERMEZZO FILE SYSTEM
-P:     Cluster File Systems    
-M:     intermezzo-devel@lists.sf.net
-W:     http://www.inter-mezzo.org/
-L:     intermezzo-discuss@lists.sourceforge.net
-S:     Maintained
-
 IOC3 DRIVER
 P:     Ralf Baechle
 M:     ralf@linux-mips.org
@@ -1138,7 +1215,7 @@
 IPX NETWORK LAYER
 P:     Arnaldo Carvalho de Melo
 M:     acme@conectiva.com.br
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 S:     Maintained
 
 IRDA SUBSYSTEM
@@ -1185,17 +1262,10 @@
 JFS FILESYSTEM
 P:     Dave Kleikamp
 M:     shaggy@austin.ibm.com
-L:     jfs-discussion@oss.software.ibm.com
-W:     http://oss.software.ibm.com/jfs/
+L:     jfs-discussion@lists.sourceforge.net
+W:     http://jfs.sourceforge.net/
 S:     Supported
 
-JOYSTICK DRIVER
-P:     Vojtech Pavlik
-M:     vojtech@suse.cz
-L:     linux-joystick@atrey.karlin.mff.cuni.cz
-W:     http://www.suse.cz/development/joystick/
-S:     Maintained
-
 KCONFIG
 P:     Roman Zippel
 M:     zippel@linux-m68k.org
@@ -1237,6 +1307,12 @@
 W:     http://www.cse.unsw.edu.au/~neilb/patches/linux-devel/
 S:     Maintained
 
+KERNEL EVENT LAYER (KOBJECT_UEVENT)
+P:     Robert Love
+M:     rml@novell.com
+L:     linux-kernel@vger.kernel.org
+S:     Maintained
+
 LANMEDIA WAN CARD DRIVER
 P:     Andrew Stanley-Jones
 M:     asj@lanmedia.com
@@ -1277,35 +1353,45 @@
 LINUX FOR POWERPC
 P:     Paul Mackerras
 M:     paulus@samba.org
-W:     http://www.fsmlabs.com/linuxppcbk.html
+W:     http://www.penguinppc.org/
+L:     linuxppc-dev@ozlabs.org
 S:     Supported
 
 LINUX FOR POWER MACINTOSH
 P:     Benjamin Herrenschmidt
 M:     benh@kernel.crashing.org
-W:     http://www.linuxppc.org/
-L:     linuxppc-dev@lists.linuxppc.org
+W:     http://www.penguinppc.org/
+L:     linuxppc-dev@ozlabs.org
+S:     Maintained
+
+LINUX FOR POWERPC EMBEDDED MPC52XX
+P:     Sylvain Munaut
+M:     tnt@246tNt.com
+W:     http://www.246tNt.com/mpc52xx/
+W:     http://www.penguinppc.org/
+L:     linuxppc-dev@ozlabs.org
+L:     linuxppc-embedded@ozlabs.org
 S:     Maintained
 
 LINUX FOR POWERPC EMBEDDED PPC4XX
 P:     Matt Porter
 M:     mporter@kernel.crashing.org
 W:     http://www.penguinppc.org/
-L:     linuxppc-embedded@lists.linuxppc.org
+L:     linuxppc-embedded@ozlabs.org
 S:     Maintained
 
 LINUX FOR POWERPC EMBEDDED PPC8XX AND BOOT CODE
 P:     Tom Rini
 M:     trini@kernel.crashing.org
 W:     http://www.penguinppc.org/
-L:     linuxppc-embedded@lists.linuxppc.org
+L:     linuxppc-embedded@ozlabs.org
 S:     Maintained
 
-LINUX FOR POWERPC EMBEDDED PPC85XX
+LINUX FOR POWERPC EMBEDDED PPC83XX AND PPC85XX
 P:     Kumar Gala
 M:     kumar.gala@freescale.com
 W:     http://www.penguinppc.org/
-L:     linuxppc-embedded@lists.linuxppc.org
+L:     linuxppc-embedded@ozlabs.org
 S:     Maintained
 
 LLC (802.2)
@@ -1314,12 +1400,14 @@
 S:     Maintained
 
 LINUX FOR 64BIT POWERPC
-P:     David Engebretsen (stable kernel)
-M:     engebret@us.ibm.com
-P:     Anton Blanchard (development kernel)
+P:     Paul Mackerras
+M:     paulus@samba.org
+M:     paulus@au.ibm.com
+P:     Anton Blanchard
+M:     anton@samba.org
 M:     anton@au.ibm.com
 W:     http://linuxppc64.org
-L:     linuxppc64-dev@lists.linuxppc.org
+L:     linuxppc64-dev@ozlabs.org
 S:     Supported
 
 LINUX SECURITY MODULE (LSM) FRAMEWORK
@@ -1329,6 +1417,18 @@
 W:     http://lsm.immunix.org
 S:     Supported
 
+LM83 HARDWARE MONITOR DRIVER
+P:     Jean Delvare
+M:     khali@linux-fr.org
+L:     sensors@stimpy.netroedge.com
+S:     Maintained
+
+LM90 HARDWARE MONITOR DRIVER
+P:     Jean Delvare
+M:     khali@linux-fr.org
+L:     sensors@stimpy.netroedge.com
+S:     Maintained
+
 LOGICAL DISK MANAGER SUPPORT (LDM, Windows 2000/XP Dynamic Disks)
 P:     Richard Russon (FlatCap)
 M:     ldm@flatcap.org
@@ -1393,14 +1493,14 @@
 
 MEMORY TECHNOLOGY DEVICES
 P:     David Woodhouse
-M:     dwmw2@redhat.com
+M:     dwmw2@infradead.org
 W:     http://www.linux-mtd.infradead.org/
 L:     linux-mtd@lists.infradead.org
 S:     Maintained
 
 MICROTEK X6 SCANNER
 P:     Oliver Neukum
-M:     drivers@neukum.org
+M:     oliver@neukum.name
 S:     Maintained
 
 MIPS
@@ -1411,11 +1511,8 @@
 S:     Maintained
 
 MISCELLANEOUS MCA-SUPPORT
-P:     David Weinehall
-M:     Project MCA Team <mcalinux@acc.umu.se>
-M:     David Weinehall <tao@acc.umu.se>
-W:     http://www.acc.umu.se/~tao/
-W:     http://www.acc.umu.se/~mcalinux/
+P:     James Bottomley
+M:     jejb@steeleye.com
 L:     linux-kernel@vger.kernel.org
 S:     Maintained
 
@@ -1492,21 +1589,21 @@
 
 NETWORK DEVICE DRIVERS
 P:     Andrew Morton
-M:     akpm@digeo.com
+M:     akpm@osdl.org
 P:     Jeff Garzik
 M:     jgarzik@pobox.com
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 S:     Maintained
 
 NETWORKING [GENERAL]
 P:     Networking Team
 M:     netdev@oss.sgi.com
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 S:     Maintained
 
 NETWORKING [IPv4/IPv6]
 P:     David S. Miller
-M:     davem@redhat.com
+M:     davem@davemloft.net
 P:     Alexey Kuznetsov
 M:     kuznet@ms2.inr.ac.ru
 P:     Pekka Savola (ipv6)
@@ -1520,6 +1617,13 @@
 L:     netdev@oss.sgi.com
 S:     Maintained
 
+IPVS
+P:     Wensong Zhang
+M:     wensong@linux-vs.org
+P:     Julian Anastasov
+M:     ja@ssi.bg
+S:     Maintained
+
 NFS CLIENT
 P:     Trond Myklebust
 M:     trond.myklebust@fys.uio.no
@@ -1530,7 +1634,7 @@
 P:     Jan-Pascal van Best and Andreas Mohr
 M:     Jan-Pascal van Best <jvbest@qv3pluto.leidenuniv.nl>
 M:     Andreas Mohr <100.30936@germany.net>
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 S:     Maintained
 
 NINJA SCSI-3 / NINJA SCSI-32Bi (16bit/CardBus) PCMCIA SCSI HOST ADAPTER DRIVER
@@ -1572,7 +1676,7 @@
 M:     p2@ace.ulyssis.student.kuleuven.ac.be
 P:     Mike Phillips
 M:     mikep@linuxtr.net 
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 L:     linux-tr@linuxtr.net
 W:     http://www.linuxtr.net
 S:     Maintained
@@ -1601,26 +1705,28 @@
 M:     proski@gnu.org
 P:     David Gibson
 M:     hermes@gibson.dropbear.id.au
-W:     http://www.ozlabs.org/people/dgibson/dldwd
+L:     orinoco-users@lists.sourceforge.net
+L:     orinoco-devel@lists.sourceforge.net
+W:     http://www.nongnu.org/orinoco/
 S:     Maintained
 
 PARALLEL PORT SUPPORT
 P:     Phil Blundell
-M:     Philip.Blundell@pobox.com
+M:     philb@gnu.org
 P:     Tim Waugh
 M:     tim@cyberelk.net
 P:     David Campbell
 M:     campbell@torque.net
 P:     Andrea Arcangeli
-M:     andrea@e-mind.com
-L:     linux-parport@torque.net
+M:     andrea@suse.de
+L:     linux-parport@lists.infradead.org
 W:     http://people.redhat.com/twaugh/parport/
 S:     Maintained
 
 PARIDE DRIVERS FOR PARALLEL PORT IDE DEVICES
 P:     Tim Waugh
 M:     tim@cyberelk.net
-L:     linux-parport@torque.net
+L:     linux-parport@lists.infradead.org
 W:     http://www.torque.net/linux-pp.html
 S:     Maintained
 
@@ -1655,14 +1761,14 @@
 
 PCI SUBSYSTEM
 P:     Greg Kroah-Hartman
-M:     greg@kroah.com
+M:     gregkh@suse.de
 L:     linux-kernel@vger.kernel.org
+L:     linux-pci@atrey.karlin.mff.cuni.cz
 S:     Supported
 
 PCI HOTPLUG CORE
 P:     Greg Kroah-Hartman
-M:     greg@kroah.com
-M:     gregkh@us.ibm.com
+M:     gregkh@suse.de
 S:     Supported
 
 PCI HOTPLUG COMPAQ DRIVER
@@ -1677,13 +1783,19 @@
 PCNET32 NETWORK DRIVER
 P:     Thomas Bogendörfer
 M:     tsbogend@alpha.franken.de
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
+S:     Maintained
+
+PHRAM MTD DRIVER
+P:     Jörn Engel
+M:     joern@wh.fh-wedel.de
+L:     linux-mtd@lists.infradead.org
 S:     Maintained
 
 POSIX CLOCKS and TIMERS
 P:     George Anzinger
 M:     george@mvista.com
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 S:     Supported
 
 PNP SUPPORT
@@ -1704,7 +1816,7 @@
 
 PPP OVER ETHERNET
 P:     Michal Ostrowski
-M:     mostrows@styx.uwaterloo.ca
+M:     mostrows@speakeasy.net
 S:     Maintained
 
 PREEMPTIBLE KERNEL
@@ -1715,12 +1827,31 @@
 W:     ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel
 S:     Supported
 
+PRISM54 WIRELESS DRIVER
+P:     Prism54 Development Team
+M:     prism54-private@prism54.org
+L:     netdev@oss.sgi.com
+W:     http://prism54.org
+S:     Maintained
+
 PROMISE DC4030 CACHING DISK CONTROLLER DRIVER
 P:     Peter Denison
 M:     promise@pnd-pc.demon.co.uk
 W:     http://www.pnd-pc.demon.co.uk/promise/
 S:     Maintained
 
+PXA2xx SUPPORT
+P:     Nicolas Pitre
+M:     nico@cam.org
+L:     linux-arm-kernel@lists.arm.linux.org.uk
+S:     Maintained
+
+QLOGIC QLA2XXX FC-SCSI DRIVER
+P:     Andrew Vasquez
+M:     andrew.vasquez@qlogic.com
+L:     linux-scsi@vger.kernel.org
+S:     Supported
+
 QNX4 FILESYSTEM
 P:     Anders Larsen
 M:     al@alarsen.net
@@ -1729,14 +1860,14 @@
 S:     Maintained
 
 RADEON FRAMEBUFFER DISPLAY DRIVER
-P:     Ani Joshi
-M:     ajoshi@shell.unixbox.com
+P:     Benjamin Herrenschmidt
+M:     benh@kernel.crashing.org
 L:     linux-fbdev-devel@lists.sourceforge.net
 S:     Maintained
 
 RAGE128 FRAMEBUFFER DISPLAY DRIVER
-P:     Ani Joshi
-M:     ajoshi@shell.unixbox.com
+P:     Paul Mackerras
+M:     paulus@samba.org
 L:     linux-fbdev-devel@lists.sourceforge.net
 S:     Maintained
 
@@ -1746,6 +1877,11 @@
 L:     linux-kernel@vger.kernel.org
 S:     Maintained
 
+RANDOM NUMBER DRIVER
+P:     Matt Mackall
+M:     mpm@selenic.com
+S:     Maintained
+
 REAL TIME CLOCK DRIVER
 P:     Paul Gortmaker
 M:     p_gortmaker@yahoo.com
@@ -1772,9 +1908,7 @@
 S:     Maintained
 
 RISCOM8 DRIVER
-P:     Dmitry Gorodchanin
-L:     linux-kernel@vger.kernel.org
-S:     Maintained
+S:     Orphan
 
 RTLINUX  REALTIME  LINUX
 P:     Victor Yodaiken
@@ -1797,12 +1931,6 @@
 W:     http://www.mihu.de/linux/saa7146
 S:     Maintained
 
-SA1100 SUPPORT
-P:     Nicolas Pitre
-M:     nico@cam.org
-L:     linux-arm@lists.arm.linux.org.uk
-S:     Maintained
-
 SBPCD CDROM DRIVER
 P:     Eberhard Moenkeberg
 M:     emoenke@gwdg.de
@@ -1860,6 +1988,11 @@
 W:     http://www.weinigel.se
 S:     Supported
 
+SECURITY CONTACT
+P:     Security Officers
+M:     security@kernel.org
+S:     Supported
+
 SELINUX SECURITY MODULE
 P:     Stephen Smalley
 M:     sds@epoch.ncsc.mil
@@ -1889,6 +2022,20 @@
 W:     http://linux-visws.sf.net
 S:     Maintained for 2.6.
 
+SIMTEC EB110ATX (Chalice CATS)
+P:     Ben Dooks
+P:     Vincent Sanders
+M:     support@simtec.co.uk
+W:     http://www.simtec.co.uk/products/EB110ATX/
+S:     Supported
+
+SIMTEC EB2410ITX (BAST)
+P:     Ben Dooks
+P:     Vincent Sanders
+M:     support@simtec.co.uk
+W:     http://www.simtec.co.uk/products/EB2410ITX/
+S:     Supported
+
 SIS 5513 IDE CONTROLLER DRIVER
 P:     Lionel Bouton
 M:     Lionel.Bouton@inet6.fr
@@ -1897,10 +2044,11 @@
 S:     Maintained
 
 SIS 900/7016 FAST ETHERNET DRIVER
-P:     Ollie Lho
-M:     ollie@sis.com.tw
-L:     linux-net@vger.kernel.org
-S:     Supported
+P:     Daniele Venzano
+M:     venza@brownhat.org
+W:     http://www.brownhat.org/sis900.html
+L:     netdev@oss.sgi.com
+S:     Maintained
 
 SIS FRAMEBUFFER DRIVER
 P:     Thomas Winischhofer
@@ -1908,6 +2056,18 @@
 W:     http://www.winischhofer.net/linuxsisvga.shtml
 S:     Maintained      
 
+SIS USB2VGA DRIVER
+P:     Thomas Winischhofer
+M:     thomas@winischhofer.net
+W:     http://www.winischhofer.at/linuxsisusbvga.shtml
+S:     Maintained
+
+SMSC47M1 HARDWARE MONITOR DRIVER
+P:     Jean Delvare
+M:     khali@linux-fr.org
+L:     sensors@stimpy.netroedge.com
+S:     Odd Fixes
+
 SMB FILESYSTEM
 P:     Urban Widmark
 M:     urban@teststation.com
@@ -1915,6 +2075,11 @@
 L:     samba@samba.org
 S:     Maintained
 
+SMC91x ETHERNET DRIVER
+P:     Nicolas Pitre
+M:     nico@cam.org
+S:     Maintained
+
 SNA NETWORK LAYER
 P:     Jay Schulist
 M:     jschlst@samba.org
@@ -1941,7 +2106,7 @@
 SONIC NETWORK DRIVER
 P:     Thomas Bogendoerfer
 M:     tsbogend@alpha.franken.de
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 S:     Maintained
 
 SONY VAIO CONTROL DEVICE DRIVER
@@ -1956,9 +2121,16 @@
 L:     alsa-devel@alsa-project.org
 S:     Maintained
 
+TPM DEVICE DRIVER
+P:     Kylene Hall
+M:     kjhall@us.ibm.com
+W:     http://tpmdd.sourceforge.net
+L:     tpmdd-devel@lists.sourceforge.net
+S:     Maintained
+
 UltraSPARC (sparc64):
 P:     David S. Miller
-M:     davem@redhat.com
+M:     davem@davemloft.net
 P:     Eddie C. Dost
 M:     ecd@skynet.be
 P:     Jakub Jelinek
@@ -1969,6 +2141,13 @@
 L:     ultralinux@vger.kernel.org
 S:     Maintained
 
+SHARP LH SUPPORT (LH7952X & LH7A40X)
+P:     Marc Singer
+M:     elf@buici.com
+W:     http://projects.buici.com/arm
+L:     linux-arm-kernel@lists.arm.linux.org.uk
+S:     Maintained
+
 SPARC (sparc32):
 P:     William L. Irwin
 M:     wli@holomorphy.com
@@ -1978,14 +2157,13 @@
 SPECIALIX IO8+ MULTIPORT SERIAL CARD DRIVER
 P:     Roger Wolff
 M:     R.E.Wolff@BitWizard.nl
-M:     io8-linux@specialix.co.uk
 L:     linux-kernel@vger.kernel.org ?
 S:     Supported
 
 SPX NETWORK LAYER
 P:     Jay Schulist
 M:     jschlst@samba.org
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 S:     Supported
 
 SRM (Alpha) environment access
@@ -2025,9 +2203,10 @@
 P:     Paul Mundt
 M:     lethal@linux-sh.org
 P:     Richard Curnow
-M:     richard.curnow@superh.com
+M:     rc@rc0.org.uk
 L:     linuxsh-shmedia-dev@lists.sourceforge.net
 W:     http://www.linux-sh.org
+W:     http://www.rc0.org.uk/sh64
 S:     Maintained
 
 SUN3/3X
@@ -2048,13 +2227,6 @@
 M:     hch@infradead.org
 S:     Maintained
 
-TI GRAPH LINK USB (SilverLink) CABLE DRIVER
-P:     Romain Lievin
-M:     roms@lpg.ticalc.org
-P:     Julien Blache
-M:     jb@technologeek.org
-S:     Maintained
-
 TI PARALLEL LINK CABLE DRIVER
 P:     Romain Lievin
 M:     roms@lpg.ticalc.org
@@ -2070,7 +2242,7 @@
 TOKEN-RING NETWORK DRIVER
 P:     Mike Phillips
 M:     mikep@linuxtr.net
-L:     linux-net@vger.kernel.org
+L:     netdev@oss.sgi.com
 L:     linux-tr@linuxtr.net
 W:     http://www.linuxtr.net
 S:     Maintained
@@ -2135,13 +2307,6 @@
 W:     http://linux-udf.sourceforge.net
 S:     Maintained
 
-UMSDOS FILESYSTEM
-P:     Matija Nalis
-M:     Matija Nalis <mnalis-umsdos@voyager.hr>
-L:     linux-kernel@vger.kernel.org
-W:     http://linux.voyager.hr/umsdos/
-S:     Maintained
-
 UNIFORM CDROM DRIVER
 P:     Jens Axboe
 M:     axboe@suse.de
@@ -2150,12 +2315,19 @@
 S:     Maintained
 
 USB ACM DRIVER
-P:     Vojtech Pavlik
-M:     vojtech@suse.cz
+P:     Oliver Neukum
+M:     oliver@neukum.name
 L:     linux-usb-users@lists.sourceforge.net
 L:     linux-usb-devel@lists.sourceforge.net
 S:     Maintained
 
+USB BLOCK DRIVER (UB ub)
+P:     Pete Zaitcev
+M:     zaitcev@redhat.com
+L:     linux-kernel@vger.kernel.org
+L:     linux-usb-devel@lists.sourceforge.net
+S:     Supported
+
 USB BLUETOOTH TTY CONVERTER DRIVER
 P:     Greg Kroah-Hartman
 M:     greg@kroah.com
@@ -2178,12 +2350,11 @@
 L:     linux-usb-devel@lists.sourceforge.net
 S:     Maintained
 
-USB HID/HIDBP/INPUT DRIVERS
+USB HID/HIDBP DRIVERS
 P:     Vojtech Pavlik
 M:     vojtech@suse.cz
 L:     linux-usb-users@lists.sourceforge.net
 L:     linux-usb-devel@lists.sourceforge.net
-W:     http://www.suse.cz/development/input/
 S:     Maintained
 
 USB HUB DRIVER
@@ -2195,7 +2366,7 @@
 
 USB KAWASAKI LSI DRIVER
 P:     Oliver Neukum
-M:     drivers@neukum.org
+M:     oliver@neukum.name
 L:     linux-usb-users@lists.sourceforge.net
 L:     linux-usb-devel@lists.sourceforge.net
 S:     Maintained
@@ -2254,6 +2425,12 @@
 W:     http://www.chello.nl/~j.vreeken/se401/
 S:     Maintained
 
+USB SERIAL CYBERJACK DRIVER
+P:     Matthias Bruestle and Harald Welte
+M:     support@reiner-sct.com
+W:     http://www.reiner-sct.de/support/treiber_cyberjack.php
+S:     Maintained
+
 USB SERIAL DIGI ACCELEPORT DRIVER
 P:     Peter Berger and Al Borchers
 M:     pberger@brimson.com
@@ -2264,11 +2441,10 @@
 
 USB SERIAL DRIVER
 P:     Greg Kroah-Hartman
-M:     greg@kroah.com
+M:     gregkh@suse.de
 L:     linux-usb-users@lists.sourceforge.net
 L:     linux-usb-devel@lists.sourceforge.net
-S:     Maintained
-W:     http://www.kroah.com/linux-usb/
+S:     Supported
 
 USB SERIAL BELKIN F5U103 DRIVER
 P:     William Greathouse
@@ -2277,6 +2453,15 @@
 L:     linux-usb-devel@lists.sourceforge.net
 S:     Maintained
 
+USB SERIAL CYPRESS M8 DRIVER
+P:     Lonnie Mendez
+M:     dignome@gmail.com
+L:     linux-usb-users@lists.sourceforge.net
+L:     linux-usb-devel@lists.sourceforge.net
+S:     Maintained
+W:     http://geocities.com/i0xox0i
+W:     http://firstlight.net/cvs
+
 USB SERIAL CYBERJACK PINPAD/E-COM DRIVER
 L:     linux-usb-users@lists.sourceforge.net
 L:     linux-usb-devel@lists.sourceforge.net
@@ -2312,16 +2497,16 @@
 W:     http://www.connecttech.com
 S:     Supported
 
-USB SN9C10[12] DRIVER
+USB SN9C10x DRIVER
 P:     Luca Risolia
 M:     luca.risolia@studio.unibo.it
 L:     linux-usb-devel@lists.sourceforge.net
-W:     http://go.lamarinapunto.com
+W:     http://www.linux-projects.org
 S:     Maintained
 
 USB SUBSYSTEM
 P:     Greg Kroah-Hartman
-M:     greg@kroah.com
+M:     gregkh@suse.de
 L:     linux-usb-users@lists.sourceforge.net
 L:     linux-usb-devel@lists.sourceforge.net
 W:     http://www.linux-usb.org
@@ -2344,7 +2529,15 @@
 P:     Luca Risolia
 M:     luca.risolia@studio.unibo.it
 L:     linux-usb-devel@lists.sourceforge.net
-W:     http://go.lamarinapunto.com
+W:     http://www.linux-projects.org
+S:     Maintained
+
+USB ZD1201 DRIVER
+P:     Jeroen Vreeken
+M:     pe1rxq@amsat.org
+L:     linux-usb-users@lists.sourceforge.net
+L:     linux-usb-devel@lists.sourceforge.net
+W:     http://linux-lc100020.sourceforge.net
 S:     Maintained
 
 USER-MODE LINUX
@@ -2370,8 +2563,9 @@
 M:     rl@hellgate.ch
 S:     Maintained
 
-UCLINUX
+UCLINUX (AND M68KNOMMU)
 P:     Greg Ungerer
+M:     gerg@uclinux.org
 M:     gerg@snapgear.com
 P:     David McCullough
 M:     davidm@snapgear.com
@@ -2404,7 +2598,8 @@
 VIDEO FOR LINUX
 P:     Gerd Knorr
 M:     kraxel@bytesex.org
-S:     Maintained
+L:     video4linux-list@redhat.com
+S:     Orphan
 
 W1 DALLAS'S 1-WIRE BUS
 P:     Evgeniy Polyakov
@@ -2412,6 +2607,19 @@
 L:     sensors@stimpy.netroedge.com
 S:     Maintained
 
+W83L51xD SD/MMC CARD INTERFACE DRIVER
+P:     Pierre Ossman
+M:     drzeus-wbsd@drzeus.cx
+L:     wbsd-devel@list.drzeus.cx
+W:     http://projects.drzeus.cx/wbsd
+S:     Maintained
+
+W83L785TS HARDWARE MONITOR DRIVER
+P:     Jean Delvare
+M:     khali@linux-fr.org
+L:     sensors@stimpy.netroedge.com
+S:     Odd Fixes
+
 WAN ROUTER & SANGOMA WANPIPE DRIVERS & API (X.25, FRAME RELAY, PPP, CISCO HDLC)
 P:     Nenad Corbic
 M:     ncorbic@sangoma.com
@@ -2469,11 +2677,11 @@
 L:     linux-hams@vger.kernel.org
 S:     Maintained
 
-YMFPCI YAMAHA PCI SOUND
+YMFPCI YAMAHA PCI SOUND (Use ALSA instead)
 P:     Pete Zaitcev
 M:     zaitcev@yahoo.com
 L:     linux-kernel@vger.kernel.org
-S:     Maintained
+S:     Obsolete
 
 Z8530 DRIVER FOR AX.25
 P:     Joerg Reuter
diff -urN malta/linux/Makefile malta/linux/Makefile
--- malta/linux/Makefile        2004/09/14 16:27:37     1.213.1000.2
+++ malta/linux/Makefile        2005/06/21 13:20:27     1.213.1000.3
@@ -1,8 +1,8 @@
 VERSION = 2
 PATCHLEVEL = 6
-SUBLEVEL = 9
-EXTRAVERSION = -rc1
-NAME=Zonked Quokka
+SUBLEVEL = 12
+EXTRAVERSION =-rc6
+NAME=Woozy Numbat
 
 # *DOCUMENTATION*
 # To see a list of typical targets execute "make help"
@@ -18,7 +18,7 @@
 #
 # Most importantly: sub-Makefiles should only ever modify files in
 # their own directory. If in some directory we have a dependency on
-# a file in another dir (which doesn't happen often, but it's of
+# a file in another dir (which doesn't happen often, but it's often
 # unavoidable when linking the built-in.o targets which finally
 # turn into vmlinux), we will call a sub make in that other dir, and
 # after that we are sure that everything which is in that other dir
@@ -67,7 +67,7 @@
 
 
 # kbuild supports saving output files in a separate directory.
-# To locate output files in a separate directory two syntax'es are supported.
+# To locate output files in a separate directory two syntaxes are supported.
 # In both cases the working directory must be the root of the kernel src.
 # 1) O=
 # Use "make O=dir/to/store/output/files/"
@@ -78,7 +78,8 @@
 # export KBUILD_OUTPUT=dir/to/store/output/files/
 # make
 #
-# The O= assigment takes precedence over the KBUILD_OUTPUT environment 
variable.
+# The O= assignment takes precedence over the KBUILD_OUTPUT environment
+# variable.
 
 
 # KBUILD_SRC is set on invocation of make in OBJ directory
@@ -141,7 +142,24 @@
 
 export srctree objtree VPATH TOPDIR
 
-KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
+nullstring :=
+space      := $(nullstring) # end of line
+
+# Take the contents of any files called localversion* and the config
+# variable CONFIG_LOCALVERSION and append them to KERNELRELEASE. Be
+# careful not to include files twice if building in the source
+# directory. LOCALVERSION from the command line override all of this
+
+localver := $(objtree)/localversion* $(srctree)/localversion*
+localver := $(sort $(wildcard $(localver)))
+# skip backup files (containing '~')
+localver := $(foreach f, $(localver), $(if $(findstring ~, $(f)),,$(f)))
+
+LOCALVERSION = $(subst $(space),, \
+              $(shell cat /dev/null $(localver)) \
+              $(patsubst "%",%,$(CONFIG_LOCALVERSION)))
+
+KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)$(LOCALVERSION)
 
 # SUBARCH tells the usermode build what the underlying arch is.  That is set
 # first, and if a usermode build is happening, the "ARCH=um" on the command
@@ -271,14 +289,19 @@
             $(call cc-option, $(1),$(2))
 
 # cc-option-yn
-# Usage: flag := $(call gcc-option-yn, -march=winchip-c6)
+# Usage: flag := $(call cc-option-yn, -march=winchip-c6)
 cc-option-yn = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \
                 > /dev/null 2>&1; then echo "y"; else echo "n"; fi;)
 
+# cc-option-align
+# Prefix align with either -falign or -malign
+cc-option-align = $(subst -functions=0,,\
+       $(call cc-option,-falign-functions=0,-malign-functions=0))
+
 # cc-version
 # Usage gcc-ver := $(call cc-version $(CC))
-cc-version = $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh \
-              $(if $(1), $(1), $(CC))
+cc-version = $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh \
+              $(if $(1), $(1), $(CC)))
 
 
 # Look for make include files relative to root of kernel src
@@ -306,7 +329,8 @@
 KALLSYMS       = scripts/kallsyms
 PERL           = perl
 CHECK          = sparse
-CHECKFLAGS     :=
+
+CHECKFLAGS     := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__
 MODFLAGS       = -DMODULE
 CFLAGS_MODULE   = $(MODFLAGS)
 AFLAGS_MODULE   = $(MODFLAGS)
@@ -314,7 +338,6 @@
 CFLAGS_KERNEL  =
 AFLAGS_KERNEL  =
 
-NOSTDINC_FLAGS  = -nostdinc -iwithprefix include
 
 # Use LINUXINCLUDE when you must reference the include/ directory.
 # Needed to be compatible with the O= option
@@ -324,13 +347,14 @@
 CPPFLAGS        := -D__KERNEL__ $(LINUXINCLUDE)
 
 CFLAGS                 := -Wall -Wstrict-prototypes -Wno-trigraphs \
-                  -fno-strict-aliasing -fno-common
+                  -fno-strict-aliasing -fno-common \
+                  -ffreestanding
 AFLAGS         := -D__ASSEMBLY__
 
-export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION KERNELRELEASE ARCH \
-       CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \
+export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION LOCALVERSION KERNELRELEASE \
+       ARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \
        CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE \
-       HOSTCXX HOSTCXXFLAGS LDFLAGS_BLOB LDFLAGS_MODULE CHECK CHECKFLAGS
+       HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
 
 export CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
 export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE 
@@ -359,6 +383,18 @@
 scripts_basic:
        $(Q)$(MAKE) $(build)=scripts/basic
 
+.PHONY: outputmakefile
+# outputmakefile generate a Makefile to be placed in output directory, if
+# using a seperate output directory. This allows convinient use
+# of make in output directory
+outputmakefile:
+       $(Q)if test ! $(srctree) -ef $(objtree); then \
+       $(CONFIG_SHELL) $(srctree)/scripts/mkmakefile              \
+           $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)         \
+           > $(objtree)/Makefile;                                 \
+           echo '  GEN    $(objtree)/Makefile';                   \
+       fi
+
 # To make sure we do not include .config for any of the *config targets
 # catch them early, and hand them over to scripts/kconfig/Makefile
 # It is allowed to specify more targets when calling make, including
@@ -403,9 +439,15 @@
 # *config targets only - make sure prerequisites are updated, and descend
 # in scripts/kconfig to make the *config target
 
-config: scripts_basic FORCE
+# Read arch specific Makefile to set KBUILD_DEFCONFIG as needed.
+# KBUILD_DEFCONFIG may point out an alternative default configuration
+# used for 'make defconfig'
+include $(srctree)/arch/$(ARCH)/Makefile
+export KBUILD_DEFCONFIG
+
+config: scripts_basic outputmakefile FORCE
        $(Q)$(MAKE) $(build)=scripts/kconfig $@
-%config: scripts_basic FORCE
+%config: scripts_basic outputmakefile FORCE
        $(Q)$(MAKE) $(build)=scripts/kconfig $@
 
 else
@@ -454,15 +496,6 @@
 include/linux/autoconf.h: ;
 endif
 
-include $(srctree)/arch/$(ARCH)/Makefile
-
-# Default kernel image to build when no specific target is given.
-# KBUILD_IMAGE may be overruled on the commandline or
-# set in the environment
-# Also any assingments in arch/$(ARCH)/Makefiel take precedence over
-# this default value
-export KBUILD_IMAGE ?= vmlinux
-
 # The all: target is the default when no target is given on the
 # command line.
 # This allow a user to issue only 'make' to build a kernel including modules
@@ -475,7 +508,16 @@
 CFLAGS         += -O2
 endif
 
-ifndef CONFIG_FRAME_POINTER
+#Add align options if CONFIG_CC_* is not equal to 0
+add-align = $(if $(filter-out 0,$($(1))),$(cc-option-align)$(2)=$($(1)))
+CFLAGS         += $(call add-align,CONFIG_CC_ALIGN_FUNCTIONS,-functions)
+CFLAGS         += $(call add-align,CONFIG_CC_ALIGN_LABELS,-labels)
+CFLAGS         += $(call add-align,CONFIG_CC_ALIGN_LOOPS,-loops)
+CFLAGS         += $(call add-align,CONFIG_CC_ALIGN_JUMPS,-jumps)
+
+ifdef CONFIG_FRAME_POINTER
+CFLAGS         += -fno-omit-frame-pointer
+else
 CFLAGS         += -fomit-frame-pointer
 endif
 
@@ -483,15 +525,29 @@
 CFLAGS         += -g
 endif
 
+include $(srctree)/arch/$(ARCH)/Makefile
+
+# arch Makefile may override CC so keep this after arch Makefile is included
+NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
+CHECKFLAGS     += $(NOSTDINC_FLAGS)
+
 # warn about C99 declaration after statement
-CFLAGS += $(call cc-option,-Wdeclaration-after-statement,)
+#CFLAGS += $(call cc-option,-Wdeclaration-after-statement,)
+
+# disable pointer signedness warnings in gcc 4.0
+CFLAGS += $(call cc-option,-Wno-pointer-sign,)
+
+# Default kernel image to build when no specific target is given.
+# KBUILD_IMAGE may be overruled on the commandline or
+# set in the environment
+# Also any assignments in arch/$(ARCH)/Makefile take precedence over
+# this default value
+export KBUILD_IMAGE ?= vmlinux
 
 #
 # INSTALL_PATH specifies where to place the updated kernel and system map
-# images.  Uncomment if you want to place them anywhere other than root.
-#
-
-#export        INSTALL_PATH=/boot
+# images. Default is /boot, but you can set it to other values
+export INSTALL_PATH ?= /boot
 
 #
 # INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory
@@ -525,67 +581,93 @@
 
 # Build vmlinux
 # ---------------------------------------------------------------------------
+# vmlinux is build from the objects selected by $(vmlinux-init) and
+# $(vmlinux-main). Most are built-in.o files from top-level directories
+# in the kernel tree, others are specified in arch/$(ARCH)Makefile.
+# Ordering when linking is important, and $(vmlinux-init) must be first.
+#
+# vmlinux
+#   ^
+#   |
+#   +-< $(vmlinux-init)
+#   |   +--< init/version.o + more
+#   |
+#   +--< $(vmlinux-main)
+#   |    +--< driver/built-in.o mm/built-in.o + more
+#   |
+#   +-< kallsyms.o (see description in CONFIG_KALLSYMS section)
+#
+# vmlinux version (uname -v) cannot be updated during normal
+# descending-into-subdirs phase since we do not yet know if we need to
+# update vmlinux.
+# Therefore this step is delayed until just before final link of vmlinux -
+# except in the kallsyms case where it is done just before adding the
+# symbols to the kernel.
+#
+# System.map is generated to document addresses of all kernel symbols
 
-#      This is a bit tricky: If we need to relink vmlinux, we want
-#      the version number incremented, which means recompile init/version.o
-#      and relink init/init.o. However, we cannot do this during the
-#       normal descending-into-subdirs phase, since at that time
-#       we cannot yet know if we will need to relink vmlinux.
-#      So we descend into init/ inside the rule for vmlinux again.
-vmlinux-objs := $(head-y) $(init-y) $(core-y) $(libs-y) $(drivers-y) $(net-y)
-
-quiet_cmd_vmlinux__ = LD      $@
-define cmd_vmlinux__
-       $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) $(head-y) $(init-y) \
-       --start-group \
-       $(core-y) \
-       $(libs-y) \
-       $(drivers-y) \
-       $(net-y) \
-       --end-group \
-       $(filter .tmp_kallsyms%,$^) \
-       -o $@
-endef
+vmlinux-init := $(head-y) $(init-y)
+vmlinux-main := $(core-y) $(libs-y) $(drivers-y) $(net-y)
+vmlinux-all  := $(vmlinux-init) $(vmlinux-main)
+vmlinux-lds  := arch/$(ARCH)/kernel/vmlinux.lds
+
+# Rule to link vmlinux - also used during CONFIG_KALLSYMS
+# May be overridden by arch/$(ARCH)/Makefile
+quiet_cmd_vmlinux__ ?= LD      $@
+      cmd_vmlinux__ ?= $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) -o $@ \
+      -T $(vmlinux-lds) $(vmlinux-init)                          \
+      --start-group $(vmlinux-main) --end-group                  \
+      $(filter-out $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) FORCE ,$^)
+
+# Generate new vmlinux version
+quiet_cmd_vmlinux_version = GEN     .version
+      cmd_vmlinux_version = set -e;                     \
+       . $(srctree)/scripts/mkversion > .tmp_version;  \
+       mv -f .tmp_version .version;                    \
+       $(MAKE) $(build)=init
 
-#      set -e makes the rule exit immediately on error
+# Generate System.map
+quiet_cmd_sysmap = SYSMAP 
+      cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap
+
+# Link of vmlinux
+# If CONFIG_KALLSYMS is set .version is already updated
+# Generate System.map and verify that the content is consistent
 
 define rule_vmlinux__
-       +set -e;                                                        \
-       $(if $(filter .tmp_kallsyms%,$^),,                              \
-         echo '  GEN     .version';                                    \
-         . $(srctree)/scripts/mkversion > .tmp_version;                \
-         mv -f .tmp_version .version;                                  \
-         $(MAKE) $(build)=init;                                        \
-       )                                                               \
-       $(if $($(quiet)cmd_vmlinux__),                                  \
-         echo '  $($(quiet)cmd_vmlinux__)' &&)                         \
-       $(cmd_vmlinux__);                                               \
-       echo 'cmd_$@ := $(cmd_vmlinux__)' > $(@D)/.$(@F).cmd
-endef
+       $(if $(CONFIG_KALLSYMS),,+$(call cmd,vmlinux_version))
 
-quiet_cmd_sysmap = SYSMAP 
-      cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap
-                  
-LDFLAGS_vmlinux += -T arch/$(ARCH)/kernel/vmlinux.lds
+       $(call cmd,vmlinux__)
+       $(Q)echo 'cmd_$@ := $(cmd_vmlinux__)' > $(@D)/.$(@F).cmd
+
+       $(Q)$(if $($(quiet)cmd_sysmap),                 \
+         echo '  $($(quiet)cmd_sysmap) System.map' &&) \
+       $(cmd_sysmap) $@ System.map;                    \
+       if [ $$? -ne 0 ]; then                          \
+               rm -f $@;                               \
+               /bin/false;                             \
+       fi;
+       $(verify_kallsyms)
+endef
 
-#      Generate section listing all symbols and add it into vmlinux
-#      It's a three stage process:
-#      o .tmp_vmlinux1 has all symbols and sections, but __kallsyms is
-#        empty
-#        Running kallsyms on that gives us .tmp_kallsyms1.o with
-#        the right size
-#      o .tmp_vmlinux2 now has a __kallsyms section of the right size,
-#        but due to the added section, some addresses have shifted
-#        From here, we generate a correct .tmp_kallsyms2.o
-#      o The correct .tmp_kallsyms2.o is linked into the final vmlinux.
-#      o Verify that the System.map from vmlinux matches the map from
-#        .tmp_vmlinux2, just in case we did not generate kallsyms correctly.
-#      o If CONFIG_KALLSYMS_EXTRA_PASS is set, do an extra pass using
-#        .tmp_vmlinux3 and .tmp_kallsyms3.o.  This is only meant as a
-#        temporary bypass to allow the kernel to be built while the
-#        maintainers work out what went wrong with kallsyms.
 
 ifdef CONFIG_KALLSYMS
+# Generate section listing all symbols and add it into vmlinux $(kallsyms.o)
+# It's a three stage process:
+# o .tmp_vmlinux1 has all symbols and sections, but __kallsyms is
+#   empty
+#   Running kallsyms on that gives us .tmp_kallsyms1.o with
+#   the right size - vmlinux version (uname -v) is updated during this step
+# o .tmp_vmlinux2 now has a __kallsyms section of the right size,
+#   but due to the added section, some addresses have shifted.
+#   From here, we generate a correct .tmp_kallsyms2.o
+# o The correct .tmp_kallsyms2.o is linked into the final vmlinux.
+# o Verify that the System.map from vmlinux matches the map from
+#   .tmp_vmlinux2, just in case we did not generate kallsyms correctly.
+# o If CONFIG_KALLSYMS_EXTRA_PASS is set, do an extra pass using
+#   .tmp_vmlinux3 and .tmp_kallsyms3.o.  This is only meant as a
+#   temporary bypass to allow the kernel to be built while the
+#   maintainers work out what went wrong with kallsyms.
 
 ifdef CONFIG_KALLSYMS_EXTRA_PASS
 last_kallsyms := 3
@@ -595,16 +677,29 @@
 
 kallsyms.o := .tmp_kallsyms$(last_kallsyms).o
 
-define rule_verify_kallsyms
+define verify_kallsyms
        $(Q)$(if $($(quiet)cmd_sysmap),                       \
          echo '  $($(quiet)cmd_sysmap) .tmp_System.map' &&)  \
          $(cmd_sysmap) .tmp_vmlinux$(last_kallsyms) .tmp_System.map
-       $(Q)cmp -s System.map .tmp_System.map || \
-               (echo Inconsistent kallsyms data, try setting 
CONFIG_KALLSYMS_EXTRA_PASS ; rm .tmp_kallsyms* ; false)
+       $(Q)cmp -s System.map .tmp_System.map ||              \
+               (echo Inconsistent kallsyms data;             \
+                echo Try setting CONFIG_KALLSYMS_EXTRA_PASS; \
+                rm .tmp_kallsyms* ; /bin/false )
+endef
+
+# Update vmlinux version before link
+# Use + in front of this rule to silent warning about make -j1
+cmd_ksym_ld = $(cmd_vmlinux__)
+define rule_ksym_ld
+       +$(call cmd,vmlinux_version)
+       $(call cmd,vmlinux__)
+       $(Q)echo 'cmd_$@ := $(cmd_vmlinux__)' > $(@D)/.$(@F).cmd
 endef
 
+# Generate .S file with all kernel symbols
 quiet_cmd_kallsyms = KSYM    $@
-cmd_kallsyms = $(NM) -n $< | $(KALLSYMS) $(foreach 
x,$(CONFIG_KALLSYMS_ALL),--all-symbols) > $@
+      cmd_kallsyms = $(NM) -n $< | $(KALLSYMS) \
+                     $(if $(CONFIG_KALLSYMS_ALL),--all-symbols) > $@
 
 .tmp_kallsyms1.o .tmp_kallsyms2.o .tmp_kallsyms3.o: %.o: %.S scripts FORCE
        $(call if_changed_dep,as_o_S)
@@ -612,43 +707,28 @@
 .tmp_kallsyms%.S: .tmp_vmlinux% $(KALLSYMS)
        $(call cmd,kallsyms)
 
-.tmp_vmlinux1: $(vmlinux-objs) arch/$(ARCH)/kernel/vmlinux.lds FORCE
-       $(call if_changed_rule,vmlinux__)
+# .tmp_vmlinux1 must be complete except kallsyms, so update vmlinux version
+.tmp_vmlinux1: $(vmlinux-lds) $(vmlinux-all) FORCE
+       $(call if_changed_rule,ksym_ld)
 
-.tmp_vmlinux2: $(vmlinux-objs) .tmp_kallsyms1.o 
arch/$(ARCH)/kernel/vmlinux.lds FORCE
-       $(call if_changed_rule,vmlinux__)
+.tmp_vmlinux2: $(vmlinux-lds) $(vmlinux-all) .tmp_kallsyms1.o FORCE
+       $(call if_changed,vmlinux__)
 
-.tmp_vmlinux3: $(vmlinux-objs) .tmp_kallsyms2.o 
arch/$(ARCH)/kernel/vmlinux.lds FORCE
-       $(call if_changed_rule,vmlinux__)
+.tmp_vmlinux3: $(vmlinux-lds) $(vmlinux-all) .tmp_kallsyms2.o FORCE
+       $(call if_changed,vmlinux__)
 
 # Needs to visit scripts/ before $(KALLSYMS) can be used.
 $(KALLSYMS): scripts ;
 
-endif
-
-# Finally the vmlinux rule
-# This rule is also used to generate System.map
-# and to verify that the content of kallsyms are consistent
-
-define rule_vmlinux
-       $(rule_vmlinux__);
-       $(Q)$(if $($(quiet)cmd_sysmap),                  \
-         echo '  $($(quiet)cmd_sysmap) System.map' &&)  \
-       $(cmd_sysmap) $@ System.map;                     \
-       if [ $$? -ne 0 ]; then                           \
-               rm -f $@;                                \
-               /bin/false;                              \
-       fi;
-       $(rule_verify_kallsyms)
-endef
+endif # ifdef CONFIG_KALLSYMS
 
-vmlinux: $(vmlinux-objs) $(kallsyms.o) arch/$(ARCH)/kernel/vmlinux.lds FORCE
-       $(call if_changed_rule,vmlinux)
-
-#      The actual objects are generated when descending, 
-#      make sure no implicit rule kicks in
+# vmlinux image - including updated kernel symbols
+vmlinux: $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) $(kallsyms.o) FORCE
+       $(call if_changed_rule,vmlinux__)
 
-$(sort $(vmlinux-objs)) arch/$(ARCH)/kernel/vmlinux.lds: $(vmlinux-dirs) ;
+# The actual objects are generated when descending, 
+# make sure no implicit rule kicks in
+$(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ;
 
 # Handle descending into subdirectories listed in $(vmlinux-dirs)
 # Preset locale variables to speed up the build process. Limit locale
@@ -667,22 +747,12 @@
 
 .PHONY: prepare-all prepare prepare0 prepare1 prepare2
 
-# prepare 2 generate Makefile to be placed in output directory, if
-# using a seperate output directory. This allows convinient use
-# of make in output directory
-prepare2:
-       $(Q)if [ ! $(srctree) -ef $(objtree) ]; then       \
-       $(CONFIG_SHELL) $(srctree)/scripts/mkmakefile      \
-           $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL) \
-           > $(objtree)/Makefile;                         \
-       fi
-
-# prepare1 is used to check if we are building in a separate output directory,
+# prepare2 is used to check if we are building in a separate output directory,
 # and if so do:
 # 1) Check that make has not been executed in the kernel src $(srctree)
 # 2) Create the include2 directory, used for the second asm symlink
 
-prepare1: prepare2
+prepare2:
 ifneq ($(KBUILD_SRC),)
        @echo '  Using $(srctree) as source for kernel'
        $(Q)if [ -h $(srctree)/include/asm -o -f $(srctree)/.config ]; then \
@@ -694,6 +764,9 @@
        $(Q)ln -fsn $(srctree)/include/asm-$(ARCH) include2/asm
 endif
 
+# prepare1 creates a makefile if using a separate output directory
+prepare1: prepare2 outputmakefile
+
 prepare0: prepare1 include/linux/version.h include/asm include/config/MARKER
 ifneq ($(KBUILD_MODULES),)
        $(Q)rm -rf $(MODVERDIR)
@@ -745,8 +818,8 @@
 # Generate some files
 # ---------------------------------------------------------------------------
 
-#      version.h changes when $(KERNELRELEASE) etc change, as defined in
-#      this Makefile
+# KERNELRELEASE can change from a few different places, meaning version.h
+# needs to be updated, so this check is forced on all builds
 
 uts_len := 64
 
@@ -761,7 +834,7 @@
        )
 endef
 
-include/linux/version.h: Makefile
+include/linux/version.h: $(srctree)/Makefile FORCE
        $(call filechk,version.h)
 
 # ---------------------------------------------------------------------------
@@ -824,7 +897,7 @@
 endif
 .PHONY: _modinst_post
 _modinst_post: _modinst_
-       if [ -r System.map ]; then $(DEPMOD) -ae -F System.map $(depmod_opts) 
$(KERNELRELEASE); fi
+       if [ -r System.map -a -x $(DEPMOD) ]; then $(DEPMOD) -ae -F System.map 
$(depmod_opts) $(KERNELRELEASE); fi
 
 else # CONFIG_MODULES
 
@@ -961,7 +1034,13 @@
        @echo  '  rpm             - Build a kernel as an RPM package'
        @echo  '  tags/TAGS       - Generate tags file for editors'
        @echo  '  cscope          - Generate cscope index'
+       @echo  ''
+       @echo  'Static analysers'
+       @echo  '  buildcheck      - List dangling references to vmlinux 
discarded sections'
+       @echo  '                    and init sections from non-init sections'
        @echo  '  checkstack      - Generate a list of stack hogs'
+       @echo  '  namespacecheck  - Name space analysis on compiled kernel'
+       @echo  ''
        @echo  'Kernel packaging:'
        @$(MAKE) -f $(package-dir)/Makefile help
        @echo  ''
@@ -1016,9 +1095,17 @@
 crmodverdir:
        $(Q)mkdir -p $(MODVERDIR)
 
+.PHONY: $(objtree)/Module.symvers
+$(objtree)/Module.symvers:
+       @test -e $(objtree)/Module.symvers || ( \
+       echo; \
+       echo "  WARNING: Symbol version dump $(objtree)/Module.symvers"; \
+       echo "           is missing; modules will have no dependencies and 
modversions."; \
+       echo )
+
 module-dirs := $(addprefix _module_,$(KBUILD_EXTMOD))
 .PHONY: $(module-dirs) modules
-$(module-dirs): crmodverdir
+$(module-dirs): crmodverdir $(objtree)/Module.symvers
        $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
 
 modules: $(module-dirs)
@@ -1056,20 +1143,30 @@
 # Generate tags for editors
 # ---------------------------------------------------------------------------
 
+#We want __srctree to totally vanish out when KBUILD_OUTPUT is not set
+#(which is the most common case IMHO) to avoid unneeded clutter in the big 
tags file.
+#Adding $(srctree) adds about 20M on i386 to the size of the output file!
+
+ifeq ($(KBUILD_OUTPUT),)
+__srctree =
+else
+__srctree = $(srctree)/
+endif
+
 define all-sources
-       ( find $(srctree) $(RCS_FIND_IGNORE) \
+       ( find $(__srctree) $(RCS_FIND_IGNORE) \
               \( -name include -o -name arch \) -prune -o \
               -name '*.[chS]' -print; \
-         find $(srctree)/arch/$(ARCH) $(RCS_FIND_IGNORE) \
+         find $(__srctree)arch/$(ARCH) $(RCS_FIND_IGNORE) \
               -name '*.[chS]' -print; \
-         find $(srctree)/security/selinux/include $(RCS_FIND_IGNORE) \
+         find $(__srctree)security/selinux/include $(RCS_FIND_IGNORE) \
               -name '*.[chS]' -print; \
-         find $(srctree)/include $(RCS_FIND_IGNORE) \
+         find $(__srctree)include $(RCS_FIND_IGNORE) \
               \( -name config -o -name 'asm-*' \) -prune \
               -o -name '*.[chS]' -print; \
-         find $(srctree)/include/asm-$(ARCH) $(RCS_FIND_IGNORE) \
+         find $(__srctree)include/asm-$(ARCH) $(RCS_FIND_IGNORE) \
               -name '*.[chS]' -print; \
-         find $(srctree)/include/asm-generic $(RCS_FIND_IGNORE) \
+         find $(__srctree)include/asm-generic $(RCS_FIND_IGNORE) \
               -name '*.[chS]' -print )
 endef
 
@@ -1091,7 +1188,7 @@
 quiet_cmd_tags = MAKE   $@
 define cmd_tags
        rm -f $@; \
-       CTAGSF=`ctags --version | grep -i exuberant >/dev/null && echo "-I 
__initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS"`; \
+       CTAGSF=`ctags --version | grep -i exuberant >/dev/null && echo "-I 
__initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_GPL --extra=+f"`; \
        $(all-sources) | xargs ctags $$CTAGSF -a
 endef
 
@@ -1121,8 +1218,11 @@
                | xargs $(PERL) -w scripts/checkversion.pl
 
 buildcheck:
-       $(PERL) scripts/reference_discarded.pl
-       $(PERL) scripts/reference_init.pl
+       $(PERL) $(srctree)/scripts/reference_discarded.pl
+       $(PERL) $(srctree)/scripts/reference_init.pl
+
+namespacecheck:
+       $(PERL) $(srctree)/scripts/namespace.pl
 
 endif #ifeq ($(config-targets),1)
 endif #ifeq ($(mixed-targets),1)
@@ -1132,6 +1232,9 @@
        $(OBJDUMP) -d vmlinux $$(find . -name '*.ko') | \
        $(PERL) $(src)/scripts/checkstack.pl $(ARCH)
 
+kernelrelease:
+       @echo $(KERNELRELEASE)
+
 # FIXME Should go into a make.lib or something 
 # ===========================================================================
 
@@ -1159,13 +1262,22 @@
   include $(cmd_files)
 endif
 
+# Execute command and generate cmd file
+if_changed = $(if $(strip $? \
+                         $(filter-out $(cmd_$(1)),$(cmd_$@))\
+                         $(filter-out $(cmd_$@),$(cmd_$(1)))),\
+       @set -e; \
+       $(if $($(quiet)cmd_$(1)),echo '  $(subst ','\'',$($(quiet)cmd_$(1)))';) 
\
+       $(cmd_$(1)); \
+       echo 'cmd_$@ := $(subst $$,$$$$,$(subst ','\'',$(cmd_$(1))))' > 
$(@D)/.$(@F).cmd)
+
+
 # execute the command and also postprocess generated .d dependencies
 # file
-
 if_changed_dep = $(if $(strip $? $(filter-out FORCE $(wildcard $^),$^)\
                          $(filter-out $(cmd_$(1)),$(cmd_$@))\
                          $(filter-out $(cmd_$@),$(cmd_$(1)))),\
-       @set -e; \
+       $(Q)set -e; \
        $(if $($(quiet)cmd_$(1)),echo '  $(subst ','\'',$($(quiet)cmd_$(1)))';) 
\
        $(cmd_$(1)); \
        scripts/basic/fixdep $(depfile) $@ '$(subst $$,$$$$,$(subst 
','\'',$(cmd_$(1))))' > $(@D)/.$(@F).tmp; \
@@ -1179,7 +1291,7 @@
 if_changed_rule = $(if $(strip $? \
                               $(filter-out $(cmd_$(1)),$(cmd_$(@F)))\
                               $(filter-out $(cmd_$(@F)),$(cmd_$(1)))),\
-                      @$(rule_$(1)))
+                      $(Q)$(rule_$(1)))
 
 # If quiet is set, only print short version of command
 
diff -urN malta/linux/REPORTING-BUGS malta/linux/REPORTING-BUGS
--- malta/linux/REPORTING-BUGS  2001/06/13 17:27:35     1.5
+++ malta/linux/REPORTING-BUGS  2005/06/21 13:20:27     1.5.1000.1
@@ -16,6 +16,10 @@
 describe how to recreate it. That is worth even more than the oops itself.
 The list of maintainers is in the MAINTAINERS file in this directory.
 
+      If it is a security bug, please copy the Security Contact listed
+in the MAINTAINERS file.  They can help coordinate bugfix and disclosure.
+See Documentation/SecurityBugs for more infomation.
+
       If you are totally stumped as to whom to send the report, send it to
 linux-kernel@vger.kernel.org. (For more information on the linux-kernel
 mailing list see http://www.tux.org/lkml/).
diff -urN malta/linux/Documentation/ManagementStyle 
malta/linux/Documentation/ManagementStyle
--- malta/linux/Documentation/ManagementStyle   1970/01/01 00:00:00
+++ malta/linux/Documentation/ManagementStyle   2005-06-21 14:20:30.973604000 
+0100     1.1.1000.1
@@ -0,0 +1,276 @@
+
+                Linux kernel management style
+
+This is a short document describing the preferred (or made up, depending
+on who you ask) management style for the linux kernel.  It's meant to
+mirror the CodingStyle document to some degree, and mainly written to
+avoid answering (*) the same (or similar) questions over and over again. 
+
+Management style is very personal and much harder to quantify than
+simple coding style rules, so this document may or may not have anything
+to do with reality.  It started as a lark, but that doesn't mean that it
+might not actually be true. You'll have to decide for yourself.
+
+Btw, when talking about "kernel manager", it's all about the technical
+lead persons, not the people who do traditional management inside
+companies.  If you sign purchase orders or you have any clue about the
+budget of your group, you're almost certainly not a kernel manager. 
+These suggestions may or may not apply to you. 
+
+First off, I'd suggest buying "Seven Habits of Highly Successful
+People", and NOT read it.  Burn it, it's a great symbolic gesture. 
+
+(*) This document does so not so much by answering the question, but by
+making it painfully obvious to the questioner that we don't have a clue
+to what the answer is. 
+
+Anyway, here goes:
+
+
+               Chapter 1: Decisions
+
+Everybody thinks managers make decisions, and that decision-making is
+important.  The bigger and more painful the decision, the bigger the
+manager must be to make it.  That's very deep and obvious, but it's not
+actually true. 
+
+The name of the game is to _avoid_ having to make a decision.  In
+particular, if somebody tells you "choose (a) or (b), we really need you
+to decide on this", you're in trouble as a manager.  The people you
+manage had better know the details better than you, so if they come to
+you for a technical decision, you're screwed.  You're clearly not
+competent to make that decision for them. 
+
+(Corollary:if the people you manage don't know the details better than
+you, you're also screwed, although for a totally different reason. 
+Namely that you are in the wrong job, and that _they_ should be managing
+your brilliance instead). 
+
+So the name of the game is to _avoid_ decisions, at least the big and
+painful ones.  Making small and non-consequential decisions is fine, and
+makes you look like you know what you're doing, so what a kernel manager
+needs to do is to turn the big and painful ones into small things where
+nobody really cares. 
+
+It helps to realize that the key difference between a big decision and a
+small one is whether you can fix your decision afterwards.  Any decision
+can be made small by just always making sure that if you were wrong (and
+you _will_ be wrong), you can always undo the damage later by
+backtracking.  Suddenly, you get to be doubly managerial for making
+_two_ inconsequential decisions - the wrong one _and_ the right one. 
+
+And people will even see that as true leadership (*cough* bullshit
+*cough*).
+
+Thus the key to avoiding big decisions becomes to just avoiding to do
+things that can't be undone.  Don't get ushered into a corner from which
+you cannot escape.  A cornered rat may be dangerous - a cornered manager
+is just pitiful. 
+
+It turns out that since nobody would be stupid enough to ever really let
+a kernel manager have huge fiscal responsibility _anyway_, it's usually
+fairly easy to backtrack.  Since you're not going to be able to waste
+huge amounts of money that you might not be able to repay, the only
+thing you can backtrack on is a technical decision, and there
+back-tracking is very easy: just tell everybody that you were an
+incompetent nincompoop, say you're sorry, and undo all the worthless
+work you had people work on for the last year.  Suddenly the decision
+you made a year ago wasn't a big decision after all, since it could be
+easily undone. 
+
+It turns out that some people have trouble with this approach, for two
+reasons:
+ - admitting you were an idiot is harder than it looks.  We all like to
+   maintain appearances, and coming out in public to say that you were
+   wrong is sometimes very hard indeed. 
+ - having somebody tell you that what you worked on for the last year
+   wasn't worthwhile after all can be hard on the poor lowly engineers
+   too, and while the actual _work_ was easy enough to undo by just
+   deleting it, you may have irrevocably lost the trust of that
+   engineer.  And remember: "irrevocable" was what we tried to avoid in
+   the first place, and your decision ended up being a big one after
+   all. 
+
+Happily, both of these reasons can be mitigated effectively by just
+admitting up-front that you don't have a friggin' clue, and telling
+people ahead of the fact that your decision is purely preliminary, and
+might be the wrong thing.  You should always reserve the right to change
+your mind, and make people very _aware_ of that.  And it's much easier
+to admit that you are stupid when you haven't _yet_ done the really
+stupid thing.
+
+Then, when it really does turn out to be stupid, people just roll their
+eyes and say "Oops, he did it again".  
+
+This preemptive admission of incompetence might also make the people who
+actually do the work also think twice about whether it's worth doing or
+not.  After all, if _they_ aren't certain whether it's a good idea, you
+sure as hell shouldn't encourage them by promising them that what they
+work on will be included.  Make them at least think twice before they
+embark on a big endeavor. 
+
+Remember: they'd better know more about the details than you do, and
+they usually already think they have the answer to everything.  The best
+thing you can do as a manager is not to instill confidence, but rather a
+healthy dose of critical thinking on what they do. 
+
+Btw, another way to avoid a decision is to plaintively just whine "can't
+we just do both?" and look pitiful.  Trust me, it works.  If it's not
+clear which approach is better, they'll eventually figure it out.  The
+answer may end up being that both teams get so frustrated by the
+situation that they just give up. 
+
+That may sound like a failure, but it's usually a sign that there was
+something wrong with both projects, and the reason the people involved
+couldn't decide was that they were both wrong.  You end up coming up
+smelling like roses, and you avoided yet another decision that you could
+have screwed up on. 
+
+
+               Chapter 2: People
+
+Most people are idiots, and being a manager means you'll have to deal
+with it, and perhaps more importantly, that _they_ have to deal with
+_you_. 
+
+It turns out that while it's easy to undo technical mistakes, it's not
+as easy to undo personality disorders.  You just have to live with
+theirs - and yours. 
+
+However, in order to prepare yourself as a kernel manager, it's best to
+remember not to burn any bridges, bomb any innocent villagers, or
+alienate too many kernel developers. It turns out that alienating people
+is fairly easy, and un-alienating them is hard. Thus "alienating"
+immediately falls under the heading of "not reversible", and becomes a
+no-no according to Chapter 1.
+
+There's just a few simple rules here:
+ (1) don't call people d*ckheads (at least not in public)
+ (2) learn how to apologize when you forgot rule (1)
+
+The problem with #1 is that it's very easy to do, since you can say
+"you're a d*ckhead" in millions of different ways (*), sometimes without
+even realizing it, and almost always with a white-hot conviction that
+you are right. 
+
+And the more convinced you are that you are right (and let's face it,
+you can call just about _anybody_ a d*ckhead, and you often _will_ be
+right), the harder it ends up being to apologize afterwards. 
+
+To solve this problem, you really only have two options:
+ - get really good at apologies
+ - spread the "love" out so evenly that nobody really ends up feeling
+   like they get unfairly targeted.  Make it inventive enough, and they
+   might even be amused. 
+
+The option of being unfailingly polite really doesn't exist. Nobody will
+trust somebody who is so clearly hiding his true character.
+
+(*) Paul Simon sang "Fifty Ways to Lose Your Lover", because quite
+frankly, "A Million Ways to Tell a Developer He Is a D*ckhead" doesn't
+scan nearly as well.  But I'm sure he thought about it. 
+
+
+               Chapter 3: People II - the Good Kind
+
+While it turns out that most people are idiots, the corollary to that is
+sadly that you are one too, and that while we can all bask in the secure
+knowledge that we're better than the average person (let's face it,
+nobody ever believes that they're average or below-average), we should
+also admit that we're not the sharpest knife around, and there will be
+other people that are less of an idiot that you are. 
+
+Some people react badly to smart people.  Others take advantage of them. 
+
+Make sure that you, as a kernel maintainer, are in the second group. 
+Suck up to them, because they are the people who will make your job
+easier. In particular, they'll be able to make your decisions for you,
+which is what the game is all about.
+
+So when you find somebody smarter than you are, just coast along.  Your
+management responsibilities largely become ones of saying "Sounds like a
+good idea - go wild", or "That sounds good, but what about xxx?".  The
+second version in particular is a great way to either learn something
+new about "xxx" or seem _extra_ managerial by pointing out something the
+smarter person hadn't thought about.  In either case, you win.
+
+One thing to look out for is to realize that greatness in one area does
+not necessarily translate to other areas.  So you might prod people in
+specific directions, but let's face it, they might be good at what they
+do, and suck at everything else.  The good news is that people tend to
+naturally gravitate back to what they are good at, so it's not like you
+are doing something irreversible when you _do_ prod them in some
+direction, just don't push too hard.
+
+
+               Chapter 4: Placing blame
+
+Things will go wrong, and people want somebody to blame. Tag, you're it.
+
+It's not actually that hard to accept the blame, especially if people
+kind of realize that it wasn't _all_ your fault.  Which brings us to the
+best way of taking the blame: do it for another guy. You'll feel good
+for taking the fall, he'll feel good about not getting blamed, and the
+guy who lost his whole 36GB porn-collection because of your incompetence
+will grudgingly admit that you at least didn't try to weasel out of it.
+
+Then make the developer who really screwed up (if you can find him) know
+_in_private_ that he screwed up.  Not just so he can avoid it in the
+future, but so that he knows he owes you one.  And, perhaps even more
+importantly, he's also likely the person who can fix it.  Because, let's
+face it, it sure ain't you. 
+
+Taking the blame is also why you get to be manager in the first place. 
+It's part of what makes people trust you, and allow you the potential
+glory, because you're the one who gets to say "I screwed up".  And if
+you've followed the previous rules, you'll be pretty good at saying that
+by now. 
+
+
+               Chapter 5: Things to avoid
+
+There's one thing people hate even more than being called "d*ckhead",
+and that is being called a "d*ckhead" in a sanctimonious voice.  The
+first you can apologize for, the second one you won't really get the
+chance.  They likely will no longer be listening even if you otherwise
+do a good job. 
+
+We all think we're better than anybody else, which means that when
+somebody else puts on airs, it _really_ rubs us the wrong way.  You may
+be morally and intellectually superior to everybody around you, but
+don't try to make it too obvious unless you really _intend_ to irritate
+somebody (*). 
+
+Similarly, don't be too polite or subtle about things. Politeness easily
+ends up going overboard and hiding the problem, and as they say, "On the
+internet, nobody can hear you being subtle". Use a big blunt object to
+hammer the point in, because you can't really depend on people getting
+your point otherwise.
+
+Some humor can help pad both the bluntness and the moralizing.  Going
+overboard to the point of being ridiculous can drive a point home
+without making it painful to the recipient, who just thinks you're being
+silly.  It can thus help get through the personal mental block we all
+have about criticism. 
+
+(*) Hint: internet newsgroups that are not directly related to your work
+are great ways to take out your frustrations at other people. Write
+insulting posts with a sneer just to get into a good flame every once in
+a while, and you'll feel cleansed. Just don't crap too close to home.
+
+
+               Chapter 6: Why me?
+
+Since your main responsibility seems to be to take the blame for other
+peoples mistakes, and make it painfully obvious to everybody else that
+you're incompetent, the obvious question becomes one of why do it in the
+first place?
+
+First off, while you may or may not get screaming teenage girls (or
+boys, let's not be judgmental or sexist here) knocking on your dressing
+room door, you _will_ get an immense feeling of personal accomplishment
+for being "in charge".  Never mind the fact that you're really leading
+by trying to keep up with everybody else and running after them as fast
+as you can.  Everybody will still think you're the person in charge. 
+
+It's a great job if you can hack it.
diff -urN malta/linux/Documentation/PCIEBUS-HOWTO.txt 
malta/linux/Documentation/PCIEBUS-HOWTO.txt
--- malta/linux/Documentation/PCIEBUS-HOWTO.txt 1970/01/01 00:00:00
+++ malta/linux/Documentation/PCIEBUS-HOWTO.txt 2005-06-21 14:20:30.992983000 
+0100     1.1.1000.1
@@ -0,0 +1,217 @@
+               The PCI Express Port Bus Driver Guide HOWTO
+       Tom L Nguyen tom.l.nguyen@intel.com
+                       11/03/2004
+
+1. About this guide
+
+This guide describes the basics of the PCI Express Port Bus driver
+and provides information on how to enable the service drivers to
+register/unregister with the PCI Express Port Bus Driver.
+
+2. Copyright 2004 Intel Corporation
+
+3. What is the PCI Express Port Bus Driver
+
+A PCI Express Port is a logical PCI-PCI Bridge structure. There
+are two types of PCI Express Port: the Root Port and the Switch
+Port. The Root Port originates a PCI Express link from a PCI Express
+Root Complex and the Switch Port connects PCI Express links to
+internal logical PCI buses. The Switch Port, which has its secondary
+bus representing the switch's internal routing logic, is called the
+switch's Upstream Port. The switch's Downstream Port is bridging from
+switch's internal routing bus to a bus representing the downstream
+PCI Express link from the PCI Express Switch.
+
+A PCI Express Port can provide up to four distinct functions,
+referred to in this document as services, depending on its port type.
+PCI Express Port's services include native hotplug support (HP),
+power management event support (PME), advanced error reporting
+support (AER), and virtual channel support (VC). These services may
+be handled by a single complex driver or be individually distributed
+and handled by corresponding service drivers.
+
+4. Why use the PCI Express Port Bus Driver?
+
+In existing Linux kernels, the Linux Device Driver Model allows a
+physical device to be handled by only a single driver. The PCI
+Express Port is a PCI-PCI Bridge device with multiple distinct
+services. To maintain a clean and simple solution each service
+may have its own software service driver. In this case several
+service drivers will compete for a single PCI-PCI Bridge device.
+For example, if the PCI Express Root Port native hotplug service
+driver is loaded first, it claims a PCI-PCI Bridge Root Port. The
+kernel therefore does not load other service drivers for that Root
+Port. In other words, it is impossible to have multiple service
+drivers load and run on a PCI-PCI Bridge device simultaneously
+using the current driver model.
+
+To enable multiple service drivers running simultaneously requires
+having a PCI Express Port Bus driver, which manages all populated
+PCI Express Ports and distributes all provided service requests
+to the corresponding service drivers as required. Some key
+advantages of using the PCI Express Port Bus driver are listed below:
+
+       - Allow multiple service drivers to run simultaneously on
+         a PCI-PCI Bridge Port device.
+
+       - Allow service drivers implemented in an independent
+         staged approach.
+       
+       - Allow one service driver to run on multiple PCI-PCI Bridge
+         Port devices. 
+
+       - Manage and distribute resources of a PCI-PCI Bridge Port
+         device to requested service drivers.
+
+5. Configuring the PCI Express Port Bus Driver vs. Service Drivers
+
+5.1 Including the PCI Express Port Bus Driver Support into the Kernel
+
+Including the PCI Express Port Bus driver depends on whether the PCI
+Express support is included in the kernel config. The kernel will
+automatically include the PCI Express Port Bus driver as a kernel
+driver when the PCI Express support is enabled in the kernel.
+
+5.2 Enabling Service Driver Support
+
+PCI device drivers are implemented based on Linux Device Driver Model.
+All service drivers are PCI device drivers. As discussed above, it is
+impossible to load any service driver once the kernel has loaded the
+PCI Express Port Bus Driver. To meet the PCI Express Port Bus Driver
+Model requires some minimal changes on existing service drivers that
+imposes no impact on the functionality of existing service drivers.
+
+A service driver is required to use the two APIs shown below to
+register its service with the PCI Express Port Bus driver (see 
+section 5.2.1 & 5.2.2). It is important that a service driver
+initializes the pcie_port_service_driver data structure, included in
+header file /include/linux/pcieport_if.h, before calling these APIs.
+Failure to do so will result an identity mismatch, which prevents
+the PCI Express Port Bus driver from loading a service driver.
+
+5.2.1 pcie_port_service_register
+
+int pcie_port_service_register(struct pcie_port_service_driver *new)
+
+This API replaces the Linux Driver Model's pci_module_init API. A
+service driver should always calls pcie_port_service_register at
+module init. Note that after service driver being loaded, calls
+such as pci_enable_device(dev) and pci_set_master(dev) are no longer
+necessary since these calls are executed by the PCI Port Bus driver.
+
+5.2.2 pcie_port_service_unregister
+
+void pcie_port_service_unregister(struct pcie_port_service_driver *new)
+
+pcie_port_service_unregister replaces the Linux Driver Model's
+pci_unregister_driver. It's always called by service driver when a
+module exits.
+
+5.2.3 Sample Code
+
+Below is sample service driver code to initialize the port service
+driver data structure.
+
+static struct pcie_port_service_id service_id[] = { {
+       .vendor = PCI_ANY_ID,
+       .device = PCI_ANY_ID,
+       .port_type = PCIE_RC_PORT,
+       .service_type = PCIE_PORT_SERVICE_AER,
+       }, { /* end: all zeroes */ }
+};
+
+static struct pcie_port_service_driver root_aerdrv = {
+       .name           = (char *)device_name,
+       .id_table       = &service_id[0],
+
+       .probe          = aerdrv_load,
+       .remove         = aerdrv_unload,
+
+       .suspend        = aerdrv_suspend,
+       .resume         = aerdrv_resume,
+};
+
+Below is a sample code for registering/unregistering a service
+driver.
+
+static int __init aerdrv_service_init(void)
+{
+       int retval = 0;
+       
+       retval = pcie_port_service_register(&root_aerdrv);
+       if (!retval) {
+               /*
+                * FIX ME
+                */
+       }
+       return retval;
+}
+
+static void __exit aerdrv_service_exit(void) 
+{
+       pcie_port_service_unregister(&root_aerdrv);
+}
+
+module_init(aerdrv_service_init);
+module_exit(aerdrv_service_exit);
+
+6. Possible Resource Conflicts
+
+Since all service drivers of a PCI-PCI Bridge Port device are
+allowed to run simultaneously, below lists a few of possible resource
+conflicts with proposed solutions.
+
+6.1 MSI Vector Resource
+
+The MSI capability structure enables a device software driver to call
+pci_enable_msi to request MSI based interrupts. Once MSI interrupts
+are enabled on a device, it stays in this mode until a device driver
+calls pci_disable_msi to disable MSI interrupts and revert back to
+INTx emulation mode. Since service drivers of the same PCI-PCI Bridge
+port share the same physical device, if an individual service driver
+calls pci_enable_msi/pci_disable_msi it may result unpredictable
+behavior. For example, two service drivers run simultaneously on the
+same physical Root Port. Both service drivers call pci_enable_msi to
+request MSI based interrupts. A service driver may not know whether
+any other service drivers have run on this Root Port. If either one
+of them calls pci_disable_msi, it puts the other service driver
+in a wrong interrupt mode. 
+
+To avoid this situation all service drivers are not permitted to
+switch interrupt mode on its device. The PCI Express Port Bus driver
+is responsible for determining the interrupt mode and this should be
+transparent to service drivers. Service drivers need to know only
+the vector IRQ assigned to the field irq of struct pcie_device, which
+is passed in when the PCI Express Port Bus driver probes each service
+driver. Service drivers should use (struct pcie_device*)dev->irq to
+call request_irq/free_irq. In addition, the interrupt mode is stored
+in the field interrupt_mode of struct pcie_device.
+
+6.2 MSI-X Vector Resources
+
+Similar to the MSI a device driver for an MSI-X capable device can
+call pci_enable_msix to request MSI-X interrupts. All service drivers
+are not permitted to switch interrupt mode on its device. The PCI
+Express Port Bus driver is responsible for determining the interrupt
+mode and this should be transparent to service drivers. Any attempt
+by service driver to call pci_enable_msix/pci_disable_msix may
+result unpredictable behavior. Service drivers should use
+(struct pcie_device*)dev->irq and call request_irq/free_irq.
+
+6.3 PCI Memory/IO Mapped Regions
+
+Service drivers for PCI Express Power Management (PME), Advanced
+Error Reporting (AER), Hot-Plug (HP) and Virtual Channel (VC) access
+PCI configuration space on the PCI Express port. In all cases the
+registers accessed are independent of each other. This patch assumes
+that all service drivers will be well behaved and not overwrite
+other service driver's configuration settings.
+
+6.4 PCI Config Registers
+
+Each service driver runs its PCI config operations on its own
+capability structure except the PCI Express capability structure, in
+which Root Control register and Device Control register are shared
+between PME and AER. This patch assumes that all service drivers
+will be well behaved and not overwrite other service driver's
+configuration settings.
diff -urN malta/linux/Documentation/README.cycladesZ 
malta/linux/Documentation/README.cycladesZ
--- malta/linux/Documentation/README.cycladesZ  1970/01/01 00:00:00
+++ malta/linux/Documentation/README.cycladesZ  2005-06-21 14:20:31.012119000 
+0100     1.1.1000.1
@@ -0,0 +1,8 @@
+
+The Cyclades-Z must have firmware loaded onto the card before it will
+operate.  This operation should be performed during system startup,
+
+The firmware, loader program and the latest device driver code are
+available from Cyclades at
+    ftp://ftp.cyclades.com/pub/cyclades/cyclades-z/linux/
+
diff -urN malta/linux/Documentation/SecurityBugs 
malta/linux/Documentation/SecurityBugs
--- malta/linux/Documentation/SecurityBugs      1970/01/01 00:00:00
+++ malta/linux/Documentation/SecurityBugs      2005-06-21 14:20:31.027768000 
+0100     1.1.1000.1
@@ -0,0 +1,38 @@
+Linux kernel developers take security very seriously.  As such, we'd
+like to know when a security bug is found so that it can be fixed and
+disclosed as quickly as possible.  Please report security bugs to the
+Linux kernel security team.
+
+1) Contact
+
+The Linux kernel security team can be contacted by email at
+<security@kernel.org>.  This is a private list of security officers
+who will help verify the bug report and develop and release a fix.
+It is possible that the security team will bring in extra help from
+area maintainers to understand and fix the security vulnerability.
+
+As it is with any bug, the more information provided the easier it
+will be to diagnose and fix.  Please review the procedure outlined in
+REPORTING-BUGS if you are unclear about what information is helpful.
+Any exploit code is very helpful and will not be released without
+consent from the reporter unless it has already been made public.
+
+2) Disclosure
+
+The goal of the Linux kernel security team is to work with the
+bug submitter to bug resolution as well as disclosure.  We prefer
+to fully disclose the bug as soon as possible.  It is reasonable to
+delay disclosure when the bug or the fix is not yet fully understood,
+the solution is not well-tested or for vendor coordination.  However, we
+expect these delays to be short, measurable in days, not weeks or months.
+A disclosure date is negotiated by the security team working with the
+bug submitter as well as vendors.  However, the kernel security team
+holds the final say when setting a disclosure date.  The timeframe for
+disclosure is from immediate (esp. if it's already publically known)
+to a few weeks.  As a basic default policy, we expect report date to
+disclosure date to be on the order of 7 days.
+
+3) Non-disclosure agreements
+
+The Linux kernel security team is not a formal body and therefore unable
+to enter any non-disclosure agreements.
diff -urN malta/linux/Documentation/atomic_ops.txt 
malta/linux/Documentation/atomic_ops.txt
--- malta/linux/Documentation/atomic_ops.txt    1970/01/01 00:00:00
+++ malta/linux/Documentation/atomic_ops.txt    2005-06-21 14:20:31.038756000 
+0100     1.1.1000.1
@@ -0,0 +1,456 @@
+               Semantics and Behavior of Atomic and
+                        Bitmask Operations
+
+                         David S. Miller        
+
+       This document is intended to serve as a guide to Linux port
+maintainers on how to implement atomic counter, bitops, and spinlock
+interfaces properly.
+
+       The atomic_t type should be defined as a signed integer.
+Also, it should be made opaque such that any kind of cast to a normal
+C integer type will fail.  Something like the following should
+suffice:
+
+       typedef struct { volatile int counter; } atomic_t;
+
+       The first operations to implement for atomic_t's are the
+initializers and plain reads.
+
+       #define ATOMIC_INIT(i)          { (i) }
+       #define atomic_set(v, i)        ((v)->counter = (i))
+
+The first macro is used in definitions, such as:
+
+static atomic_t my_counter = ATOMIC_INIT(1);
+
+The second interface can be used at runtime, as in:
+
+       struct foo { atomic_t counter; };
+       ...
+
+       struct foo *k;
+
+       k = kmalloc(sizeof(*k), GFP_KERNEL);
+       if (!k)
+               return -ENOMEM;
+       atomic_set(&k->counter, 0);
+
+Next, we have:
+
+       #define atomic_read(v)  ((v)->counter)
+
+which simply reads the current value of the counter.
+
+Now, we move onto the actual atomic operation interfaces.
+
+       void atomic_add(int i, atomic_t *v);
+       void atomic_sub(int i, atomic_t *v);
+       void atomic_inc(atomic_t *v);
+       void atomic_dec(atomic_t *v);
+
+These four routines add and subtract integral values to/from the given
+atomic_t value.  The first two routines pass explicit integers by
+which to make the adjustment, whereas the latter two use an implicit
+adjustment value of "1".
+
+One very important aspect of these two routines is that they DO NOT
+require any explicit memory barriers.  They need only perform the
+atomic_t counter update in an SMP safe manner.
+
+Next, we have:
+
+       int atomic_inc_return(atomic_t *v);
+       int atomic_dec_return(atomic_t *v);
+
+These routines add 1 and subtract 1, respectively, from the given
+atomic_t and return the new counter value after the operation is
+performed.
+
+Unlike the above routines, it is required that explicit memory
+barriers are performed before and after the operation.  It must be
+done such that all memory operations before and after the atomic
+operation calls are strongly ordered with respect to the atomic
+operation itself.
+
+For example, it should behave as if a smp_mb() call existed both
+before and after the atomic operation.
+
+If the atomic instructions used in an implementation provide explicit
+memory barrier semantics which satisfy the above requirements, that is
+fine as well.
+
+Let's move on:
+
+       int atomic_add_return(int i, atomic_t *v);
+       int atomic_sub_return(int i, atomic_t *v);
+
+These behave just like atomic_{inc,dec}_return() except that an
+explicit counter adjustment is given instead of the implicit "1".
+This means that like atomic_{inc,dec}_return(), the memory barrier
+semantics are required.
+
+Next:
+
+       int atomic_inc_and_test(atomic_t *v);
+       int atomic_dec_and_test(atomic_t *v);
+
+These two routines increment and decrement by 1, respectively, the
+given atomic counter.  They return a boolean indicating whether the
+resulting counter value was zero or not.
+
+It requires explicit memory barrier semantics around the operation as
+above.
+
+       int atomic_sub_and_test(int i, atomic_t *v);
+
+This is identical to atomic_dec_and_test() except that an explicit
+decrement is given instead of the implicit "1".  It requires explicit
+memory barrier semantics around the operation.
+
+       int atomic_add_negative(int i, atomic_t *v);
+
+The given increment is added to the given atomic counter value.  A
+boolean is return which indicates whether the resulting counter value
+is negative.  It requires explicit memory barrier semantics around the
+operation.
+
+If a caller requires memory barrier semantics around an atomic_t
+operation which does not return a value, a set of interfaces are
+defined which accomplish this:
+
+       void smp_mb__before_atomic_dec(void);
+       void smp_mb__after_atomic_dec(void);
+       void smp_mb__before_atomic_inc(void);
+       void smp_mb__after_atomic_dec(void);
+
+For example, smp_mb__before_atomic_dec() can be used like so:
+
+       obj->dead = 1;
+       smp_mb__before_atomic_dec();
+       atomic_dec(&obj->ref_count);
+
+It makes sure that all memory operations preceeding the atomic_dec()
+call are strongly ordered with respect to the atomic counter
+operation.  In the above example, it guarentees that the assignment of
+"1" to obj->dead will be globally visible to other cpus before the
+atomic counter decrement.
+
+Without the explicitl smp_mb__before_atomic_dec() call, the
+implementation could legally allow the atomic counter update visible
+to other cpus before the "obj->dead = 1;" assignment.
+
+The other three interfaces listed are used to provide explicit
+ordering with respect to memory operations after an atomic_dec() call
+(smp_mb__after_atomic_dec()) and around atomic_inc() calls
+(smp_mb__{before,after}_atomic_inc()).
+
+A missing memory barrier in the cases where they are required by the
+atomic_t implementation above can have disasterous results.  Here is
+an example, which follows a pattern occuring frequently in the Linux
+kernel.  It is the use of atomic counters to implement reference
+counting, and it works such that once the counter falls to zero it can
+be guarenteed that no other entity can be accessing the object:
+
+static void obj_list_add(struct obj *obj)
+{
+       obj->active = 1;
+       list_add(&obj->list);
+}
+
+static void obj_list_del(struct obj *obj)
+{
+       list_del(&obj->list);
+       obj->active = 0;
+}
+
+static void obj_destroy(struct obj *obj)
+{
+       BUG_ON(obj->active);
+       kfree(obj);
+}
+
+struct obj *obj_list_peek(struct list_head *head)
+{
+       if (!list_empty(head)) {
+               struct obj *obj;
+
+               obj = list_entry(head->next, struct obj, list);
+               atomic_inc(&obj->refcnt);
+               return obj;
+       }
+       return NULL;
+}
+
+void obj_poke(void)
+{
+       struct obj *obj;
+
+       spin_lock(&global_list_lock);
+       obj = obj_list_peek(&global_list);
+       spin_unlock(&global_list_lock);
+
+       if (obj) {
+               obj->ops->poke(obj);
+               if (atomic_dec_and_test(&obj->refcnt))
+                       obj_destroy(obj);
+       }
+}
+
+void obj_timeout(struct obj *obj)
+{
+       spin_lock(&global_list_lock);
+       obj_list_del(obj);
+       spin_unlock(&global_list_lock);
+
+       if (atomic_dec_and_test(&obj->refcnt))
+               obj_destroy(obj);
+}
+
+(This is a simplification of the ARP queue management in the
+ generic neighbour discover code of the networking.  Olaf Kirch
+ found a bug wrt. memory barriers in kfree_skb() that exposed
+ the atomic_t memory barrier requirements quite clearly.)
+
+Given the above scheme, it must be the case that the obj->active
+update done by the obj list deletion be visible to other processors
+before the atomic counter decrement is performed.
+
+Otherwise, the counter could fall to zero, yet obj->active would still
+be set, thus triggering the assertion in obj_destroy().  The error
+sequence looks like this:
+
+       cpu 0                           cpu 1
+       obj_poke()                      obj_timeout()
+       obj = obj_list_peek();
+       ... gains ref to obj, refcnt=2
+                                       obj_list_del(obj);
+                                       obj->active = 0 ...
+                                       ... visibility delayed ...
+                                       atomic_dec_and_test()
+                                       ... refcnt drops to 1 ...
+       atomic_dec_and_test()
+       ... refcount drops to 0 ...
+       obj_destroy()
+       BUG() triggers since obj->active
+       still seen as one
+                                       obj->active update visibility occurs
+
+With the memory barrier semantics required of the atomic_t operations
+which return values, the above sequence of memory visibility can never
+happen.  Specifically, in the above case the atomic_dec_and_test()
+counter decrement would not become globally visible until the
+obj->active update does.
+
+As a historical note, 32-bit Sparc used to only allow usage of
+24-bits of it's atomic_t type.  This was because it used 8 bits
+as a spinlock for SMP safety.  Sparc32 lacked a "compare and swap"
+type instruction.  However, 32-bit Sparc has since been moved over
+to a "hash table of spinlocks" scheme, that allows the full 32-bit
+counter to be realized.  Essentially, an array of spinlocks are
+indexed into based upon the address of the atomic_t being operated
+on, and that lock protects the atomic operation.  Parisc uses the
+same scheme.
+
+Another note is that the atomic_t operations returning values are
+extremely slow on an old 386.
+
+We will now cover the atomic bitmask operations.  You will find that
+their SMP and memory barrier semantics are similar in shape and scope
+to the atomic_t ops above.
+
+Native atomic bit operations are defined to operate on objects aligned
+to the size of an "unsigned long" C data type, and are least of that
+size.  The endianness of the bits within each "unsigned long" are the
+native endianness of the cpu.
+
+       void set_bit(unsigned long nr, volatils unsigned long *addr);
+       void clear_bit(unsigned long nr, volatils unsigned long *addr);
+       void change_bit(unsigned long nr, volatils unsigned long *addr);
+
+These routines set, clear, and change, respectively, the bit number
+indicated by "nr" on the bit mask pointed to by "ADDR".
+
+They must execute atomically, yet there are no implicit memory barrier
+semantics required of these interfaces.
+
+       int test_and_set_bit(unsigned long nr, volatils unsigned long *addr);
+       int test_and_clear_bit(unsigned long nr, volatils unsigned long *addr);
+       int test_and_change_bit(unsigned long nr, volatils unsigned long *addr);
+
+Like the above, except that these routines return a boolean which
+indicates whether the changed bit was set _BEFORE_ the atomic bit
+operation.
+
+WARNING! It is incredibly important that the value be a boolean,
+ie. "0" or "1".  Do not try to be fancy and save a few instructions by
+declaring the above to return "long" and just returning something like
+"old_val & mask" because that will not work.
+
+For one thing, this return value gets truncated to int in many code
+paths using these interfaces, so on 64-bit if the bit is set in the
+upper 32-bits then testers will never see that.
+
+One great example of where this problem crops up are the thread_info
+flag operations.  Routines such as test_and_set_ti_thread_flag() chop
+the return value into an int.  There are other places where things
+like this occur as well.
+
+These routines, like the atomic_t counter operations returning values,
+require explicit memory barrier semantics around their execution.  All
+memory operations before the atomic bit operation call must be made
+visible globally before the atomic bit operation is made visible.
+Likewise, the atomic bit operation must be visible globally before any
+subsequent memory operation is made visible.  For example:
+
+       obj->dead = 1;
+       if (test_and_set_bit(0, &obj->flags))
+               /* ... */;
+       obj->killed = 1;
+
+The implementation of test_and_set_bit() must guarentee that
+"obj->dead = 1;" is visible to cpus before the atomic memory operation
+done by test_and_set_bit() becomes visible.  Likewise, the atomic
+memory operation done by test_and_set_bit() must become visible before
+"obj->killed = 1;" is visible.
+
+Finally there is the basic operation:
+
+       int test_bit(unsigned long nr, __const__ volatile unsigned long *addr);
+
+Which returns a boolean indicating if bit "nr" is set in the bitmask
+pointed to by "addr".
+
+If explicit memory barriers are required around clear_bit() (which
+does not return a value, and thus does not need to provide memory
+barrier semantics), two interfaces are provided:
+
+       void smp_mb__before_clear_bit(void);
+       void smp_mb__after_clear_bit(void);
+
+They are used as follows, and are akin to their atomic_t operation
+brothers:
+
+       /* All memory operations before this call will
+        * be globally visible before the clear_bit().
+        */
+       smp_mb__before_clear_bit();
+       clear_bit( ... );
+
+       /* The clear_bit() will be visible before all
+        * subsequent memory operations.
+        */
+        smp_mb__after_clear_bit();
+
+Finally, there are non-atomic versions of the bitmask operations
+provided.  They are used in contexts where some other higher-level SMP
+locking scheme is being used to protect the bitmask, and thus less
+expensive non-atomic operations may be used in the implementation.
+They have names similar to the above bitmask operation interfaces,
+except that two underscores are prefixed to the interface name.
+
+       void __set_bit(unsigned long nr, volatile unsigned long *addr);
+       void __clear_bit(unsigned long nr, volatile unsigned long *addr);
+       void __change_bit(unsigned long nr, volatile unsigned long *addr);
+       int __test_and_set_bit(unsigned long nr, volatile unsigned long *addr);
+       int __test_and_clear_bit(unsigned long nr, volatile unsigned long 
*addr);
+       int __test_and_change_bit(unsigned long nr, volatile unsigned long 
*addr);
+
+These non-atomic variants also do not require any special memory
+barrier semantics.
+
+The routines xchg() and cmpxchg() need the same exact memory barriers
+as the atomic and bit operations returning values.
+
+Spinlocks and rwlocks have memory barrier expectations as well.
+The rule to follow is simple:
+
+1) When acquiring a lock, the implementation must make it globally
+   visible before any subsequent memory operation.
+
+2) When releasing a lock, the implementation must make it such that
+   all previous memory operations are globally visible before the
+   lock release.
+
+Which finally brings us to _atomic_dec_and_lock().  There is an
+architecture-neutral version implemented in lib/dec_and_lock.c,
+but most platforms will wish to optimize this in assembler.
+
+       int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock);
+
+Atomically decrement the given counter, and if will drop to zero
+atomically acquire the given spinlock and perform the decrement
+of the counter to zero.  If it does not drop to zero, do nothing
+with the spinlock.
+
+It is actually pretty simple to get the memory barrier correct.
+Simply satisfy the spinlock grab requirements, which is make
+sure the spinlock operation is globally visible before any
+subsequent memory operation.
+
+We can demonstrate this operation more clearly if we define
+an abstract atomic operation:
+
+       long cas(long *mem, long old, long new);
+
+"cas" stands for "compare and swap".  It atomically:
+
+1) Compares "old" with the value currently at "mem".
+2) If they are equal, "new" is written to "mem".
+3) Regardless, the current value at "mem" is returned.
+
+As an example usage, here is what an atomic counter update
+might look like:
+
+void example_atomic_inc(long *counter)
+{
+       long old, new, ret;
+
+       while (1) {
+               old = *counter;
+               new = old + 1;
+
+               ret = cas(counter, old, new);
+               if (ret == old)
+                       break;
+       }
+}
+
+Let's use cas() in order to build a pseudo-C atomic_dec_and_lock():
+
+int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock)
+{
+       long old, new, ret;
+       int went_to_zero;
+
+       went_to_zero = 0;
+       while (1) {
+               old = atomic_read(atomic);
+               new = old - 1;
+               if (new == 0) {
+                       went_to_zero = 1;
+                       spin_lock(lock);
+               }
+               ret = cas(atomic, old, new);
+               if (ret == old)
+                       break;
+               if (went_to_zero) {
+                       spin_unlock(lock);
+                       went_to_zero = 0;
+               }
+       }
+
+       return went_to_zero;
+}
+
+Now, as far as memory barriers go, as long as spin_lock()
+strictly orders all subsequent memory operations (including
+the cas()) with respect to itself, things will be fine.
+
+Said another way, _atomic_dec_and_lock() must guarentee that
+a counter dropping to zero is never made visible before the
+spinlock being acquired.
+
+Note that this also means that for the case where the counter
+is not dropping to zero, there are no memory ordering
+requirements.
diff -urN malta/linux/Documentation/cpusets.txt 
malta/linux/Documentation/cpusets.txt
--- malta/linux/Documentation/cpusets.txt       1970/01/01 00:00:00
+++ malta/linux/Documentation/cpusets.txt       2005-06-21 14:20:31.053624000 
+0100     1.3.1000.1
@@ -0,0 +1,414 @@
+                               CPUSETS
+                               -------
+
+Copyright (C) 2004 BULL SA.
+Written by Simon.Derr@bull.net
+
+Portions Copyright (c) 2004 Silicon Graphics, Inc.
+Modified by Paul Jackson <pj@sgi.com>
+
+CONTENTS:
+=========
+
+1. Cpusets
+  1.1 What are cpusets ?
+  1.2 Why are cpusets needed ?
+  1.3 How are cpusets implemented ?
+  1.4 How do I use cpusets ?
+2. Usage Examples and Syntax
+  2.1 Basic Usage
+  2.2 Adding/removing cpus
+  2.3 Setting flags
+  2.4 Attaching processes
+3. Questions
+4. Contact
+
+1. Cpusets
+==========
+
+1.1 What are cpusets ?
+----------------------
+
+Cpusets provide a mechanism for assigning a set of CPUs and Memory
+Nodes to a set of tasks.
+
+Cpusets constrain the CPU and Memory placement of tasks to only
+the resources within a tasks current cpuset.  They form a nested
+hierarchy visible in a virtual file system.  These are the essential
+hooks, beyond what is already present, required to manage dynamic
+job placement on large systems.
+
+Each task has a pointer to a cpuset.  Multiple tasks may reference
+the same cpuset.  Requests by a task, using the sched_setaffinity(2)
+system call to include CPUs in its CPU affinity mask, and using the
+mbind(2) and set_mempolicy(2) system calls to include Memory Nodes
+in its memory policy, are both filtered through that tasks cpuset,
+filtering out any CPUs or Memory Nodes not in that cpuset.  The
+scheduler will not schedule a task on a CPU that is not allowed in
+its cpus_allowed vector, and the kernel page allocator will not
+allocate a page on a node that is not allowed in the requesting tasks
+mems_allowed vector.
+
+If a cpuset is cpu or mem exclusive, no other cpuset, other than a direct
+ancestor or descendent, may share any of the same CPUs or Memory Nodes.
+
+User level code may create and destroy cpusets by name in the cpuset
+virtual file system, manage the attributes and permissions of these
+cpusets and which CPUs and Memory Nodes are assigned to each cpuset,
+specify and query to which cpuset a task is assigned, and list the
+task pids assigned to a cpuset.
+
+
+1.2 Why are cpusets needed ?
+----------------------------
+
+The management of large computer systems, with many processors (CPUs),
+complex memory cache hierarchies and multiple Memory Nodes having
+non-uniform access times (NUMA) presents additional challenges for
+the efficient scheduling and memory placement of processes.
+
+Frequently more modest sized systems can be operated with adequate
+efficiency just by letting the operating system automatically share
+the available CPU and Memory resources amongst the requesting tasks.
+
+But larger systems, which benefit more from careful processor and
+memory placement to reduce memory access times and contention,
+and which typically represent a larger investment for the customer,
+can benefit from explictly placing jobs on properly sized subsets of
+the system.
+
+This can be especially valuable on:
+
+    * Web Servers running multiple instances of the same web application,
+    * Servers running different applications (for instance, a web server
+      and a database), or
+    * NUMA systems running large HPC applications with demanding
+      performance characteristics.
+
+These subsets, or "soft partitions" must be able to be dynamically
+adjusted, as the job mix changes, without impacting other concurrently
+executing jobs.
+
+The kernel cpuset patch provides the minimum essential kernel
+mechanisms required to efficiently implement such subsets.  It
+leverages existing CPU and Memory Placement facilities in the Linux
+kernel to avoid any additional impact on the critical scheduler or
+memory allocator code.
+
+
+1.3 How are cpusets implemented ?
+---------------------------------
+
+Cpusets provide a Linux kernel (2.6.7 and above) mechanism to constrain
+which CPUs and Memory Nodes are used by a process or set of processes.
+
+The Linux kernel already has a pair of mechanisms to specify on which
+CPUs a task may be scheduled (sched_setaffinity) and on which Memory
+Nodes it may obtain memory (mbind, set_mempolicy).
+
+Cpusets extends these two mechanisms as follows:
+
+ - Cpusets are sets of allowed CPUs and Memory Nodes, known to the
+   kernel.
+ - Each task in the system is attached to a cpuset, via a pointer
+   in the task structure to a reference counted cpuset structure.
+ - Calls to sched_setaffinity are filtered to just those CPUs
+   allowed in that tasks cpuset.
+ - Calls to mbind and set_mempolicy are filtered to just
+   those Memory Nodes allowed in that tasks cpuset.
+ - The root cpuset contains all the systems CPUs and Memory
+   Nodes.
+ - For any cpuset, one can define child cpusets containing a subset
+   of the parents CPU and Memory Node resources.
+ - The hierarchy of cpusets can be mounted at /dev/cpuset, for
+   browsing and manipulation from user space.
+ - A cpuset may be marked exclusive, which ensures that no other
+   cpuset (except direct ancestors and descendents) may contain
+   any overlapping CPUs or Memory Nodes.
+ - You can list all the tasks (by pid) attached to any cpuset.
+
+The implementation of cpusets requires a few, simple hooks
+into the rest of the kernel, none in performance critical paths:
+
+ - in main/init.c, to initialize the root cpuset at system boot.
+ - in fork and exit, to attach and detach a task from its cpuset.
+ - in sched_setaffinity, to mask the requested CPUs by what's
+   allowed in that tasks cpuset.
+ - in sched.c migrate_all_tasks(), to keep migrating tasks within
+   the CPUs allowed by their cpuset, if possible.
+ - in the mbind and set_mempolicy system calls, to mask the requested
+   Memory Nodes by what's allowed in that tasks cpuset.
+ - in page_alloc, to restrict memory to allowed nodes.
+ - in vmscan.c, to restrict page recovery to the current cpuset.
+
+In addition a new file system, of type "cpuset" may be mounted,
+typically at /dev/cpuset, to enable browsing and modifying the cpusets
+presently known to the kernel.  No new system calls are added for
+cpusets - all support for querying and modifying cpusets is via
+this cpuset file system.
+
+Each task under /proc has an added file named 'cpuset', displaying
+the cpuset name, as the path relative to the root of the cpuset file
+system.
+
+The /proc/<pid>/status file for each task has two added lines,
+displaying the tasks cpus_allowed (on which CPUs it may be scheduled)
+and mems_allowed (on which Memory Nodes it may obtain memory),
+in the format seen in the following example:
+
+  Cpus_allowed:   ffffffff,ffffffff,ffffffff,ffffffff
+  Mems_allowed:   ffffffff,ffffffff
+
+Each cpuset is represented by a directory in the cpuset file system
+containing the following files describing that cpuset:
+
+ - cpus: list of CPUs in that cpuset
+ - mems: list of Memory Nodes in that cpuset
+ - cpu_exclusive flag: is cpu placement exclusive?
+ - mem_exclusive flag: is memory placement exclusive?
+ - tasks: list of tasks (by pid) attached to that cpuset
+
+New cpusets are created using the mkdir system call or shell
+command.  The properties of a cpuset, such as its flags, allowed
+CPUs and Memory Nodes, and attached tasks, are modified by writing
+to the appropriate file in that cpusets directory, as listed above.
+
+The named hierarchical structure of nested cpusets allows partitioning
+a large system into nested, dynamically changeable, "soft-partitions".
+
+The attachment of each task, automatically inherited at fork by any
+children of that task, to a cpuset allows organizing the work load
+on a system into related sets of tasks such that each set is constrained
+to using the CPUs and Memory Nodes of a particular cpuset.  A task
+may be re-attached to any other cpuset, if allowed by the permissions
+on the necessary cpuset file system directories.
+
+Such management of a system "in the large" integrates smoothly with
+the detailed placement done on individual tasks and memory regions
+using the sched_setaffinity, mbind and set_mempolicy system calls.
+
+The following rules apply to each cpuset:
+
+ - Its CPUs and Memory Nodes must be a subset of its parents.
+ - It can only be marked exclusive if its parent is.
+ - If its cpu or memory is exclusive, they may not overlap any sibling.
+
+These rules, and the natural hierarchy of cpusets, enable efficient
+enforcement of the exclusive guarantee, without having to scan all
+cpusets every time any of them change to ensure nothing overlaps a
+exclusive cpuset.  Also, the use of a Linux virtual file system (vfs)
+to represent the cpuset hierarchy provides for a familiar permission
+and name space for cpusets, with a minimum of additional kernel code.
+
+1.4 How do I use cpusets ?
+--------------------------
+
+In order to minimize the impact of cpusets on critical kernel
+code, such as the scheduler, and due to the fact that the kernel
+does not support one task updating the memory placement of another
+task directly, the impact on a task of changing its cpuset CPU
+or Memory Node placement, or of changing to which cpuset a task
+is attached, is subtle.
+
+If a cpuset has its Memory Nodes modified, then for each task attached
+to that cpuset, the next time that the kernel attempts to allocate
+a page of memory for that task, the kernel will notice the change
+in the tasks cpuset, and update its per-task memory placement to
+remain within the new cpusets memory placement.  If the task was using
+mempolicy MPOL_BIND, and the nodes to which it was bound overlap with
+its new cpuset, then the task will continue to use whatever subset
+of MPOL_BIND nodes are still allowed in the new cpuset.  If the task
+was using MPOL_BIND and now none of its MPOL_BIND nodes are allowed
+in the new cpuset, then the task will be essentially treated as if it
+was MPOL_BIND bound to the new cpuset (even though its numa placement,
+as queried by get_mempolicy(), doesn't change).  If a task is moved
+from one cpuset to another, then the kernel will adjust the tasks
+memory placement, as above, the next time that the kernel attempts
+to allocate a page of memory for that task.
+
+If a cpuset has its CPUs modified, then each task using that
+cpuset does _not_ change its behavior automatically.  In order to
+minimize the impact on the critical scheduling code in the kernel,
+tasks will continue to use their prior CPU placement until they
+are rebound to their cpuset, by rewriting their pid to the 'tasks'
+file of their cpuset.  If a task had been bound to some subset of its
+cpuset using the sched_setaffinity() call, and if any of that subset
+is still allowed in its new cpuset settings, then the task will be
+restricted to the intersection of the CPUs it was allowed on before,
+and its new cpuset CPU placement.  If, on the other hand, there is
+no overlap between a tasks prior placement and its new cpuset CPU
+placement, then the task will be allowed to run on any CPU allowed
+in its new cpuset.  If a task is moved from one cpuset to another,
+its CPU placement is updated in the same way as if the tasks pid is
+rewritten to the 'tasks' file of its current cpuset.
+
+In summary, the memory placement of a task whose cpuset is changed is
+updated by the kernel, on the next allocation of a page for that task,
+but the processor placement is not updated, until that tasks pid is
+rewritten to the 'tasks' file of its cpuset.  This is done to avoid
+impacting the scheduler code in the kernel with a check for changes
+in a tasks processor placement.
+
+There is an exception to the above.  If hotplug funtionality is used
+to remove all the CPUs that are currently assigned to a cpuset,
+then the kernel will automatically update the cpus_allowed of all
+tasks attached to CPUs in that cpuset to allow all CPUs.  When memory
+hotplug functionality for removing Memory Nodes is available, a
+similar exception is expected to apply there as well.  In general,
+the kernel prefers to violate cpuset placement, over starving a task
+that has had all its allowed CPUs or Memory Nodes taken offline.  User
+code should reconfigure cpusets to only refer to online CPUs and Memory
+Nodes when using hotplug to add or remove such resources.
+
+There is a second exception to the above.  GFP_ATOMIC requests are
+kernel internal allocations that must be satisfied, immediately.
+The kernel may drop some request, in rare cases even panic, if a
+GFP_ATOMIC alloc fails.  If the request cannot be satisfied within
+the current tasks cpuset, then we relax the cpuset, and look for
+memory anywhere we can find it.  It's better to violate the cpuset
+than stress the kernel.
+
+To start a new job that is to be contained within a cpuset, the steps are:
+
+ 1) mkdir /dev/cpuset
+ 2) mount -t cpuset none /dev/cpuset
+ 3) Create the new cpuset by doing mkdir's and write's (or echo's) in
+    the /dev/cpuset virtual file system.
+ 4) Start a task that will be the "founding father" of the new job.
+ 5) Attach that task to the new cpuset by writing its pid to the
+    /dev/cpuset tasks file for that cpuset.
+ 6) fork, exec or clone the job tasks from this founding father task.
+
+For example, the following sequence of commands will setup a cpuset
+named "Charlie", containing just CPUs 2 and 3, and Memory Node 1,
+and then start a subshell 'sh' in that cpuset:
+
+  mount -t cpuset none /dev/cpuset
+  cd /dev/cpuset
+  mkdir Charlie
+  cd Charlie
+  /bin/echo 2-3 > cpus
+  /bin/echo 1 > mems
+  /bin/echo $$ > tasks
+  sh
+  # The subshell 'sh' is now running in cpuset Charlie
+  # The next line should display '/Charlie'
+  cat /proc/self/cpuset
+
+In the case that a change of cpuset includes wanting to move already
+allocated memory pages, consider further the work of IWAMOTO
+Toshihiro <iwamoto@valinux.co.jp> for page remapping and memory
+hotremoval, which can be found at:
+
+  http://people.valinux.co.jp/~iwamoto/mh.html
+
+The integration of cpusets with such memory migration is not yet
+available.
+
+In the future, a C library interface to cpusets will likely be
+available.  For now, the only way to query or modify cpusets is
+via the cpuset file system, using the various cd, mkdir, echo, cat,
+rmdir commands from the shell, or their equivalent from C.
+
+The sched_setaffinity calls can also be done at the shell prompt using
+SGI's runon or Robert Love's taskset.  The mbind and set_mempolicy
+calls can be done at the shell prompt using the numactl command
+(part of Andi Kleen's numa package).
+
+2. Usage Examples and Syntax
+============================
+
+2.1 Basic Usage
+---------------
+
+Creating, modifying, using the cpusets can be done through the cpuset
+virtual filesystem.
+
+To mount it, type:
+# mount -t cpuset none /dev/cpuset
+
+Then under /dev/cpuset you can find a tree that corresponds to the
+tree of the cpusets in the system. For instance, /dev/cpuset
+is the cpuset that holds the whole system.
+
+If you want to create a new cpuset under /dev/cpuset:
+# cd /dev/cpuset
+# mkdir my_cpuset
+
+Now you want to do something with this cpuset.
+# cd my_cpuset
+
+In this directory you can find several files:
+# ls
+cpus  cpu_exclusive  mems  mem_exclusive  tasks
+
+Reading them will give you information about the state of this cpuset:
+the CPUs and Memory Nodes it can use, the processes that are using
+it, its properties.  By writing to these files you can manipulate
+the cpuset.
+
+Set some flags:
+# /bin/echo 1 > cpu_exclusive
+
+Add some cpus:
+# /bin/echo 0-7 > cpus
+
+Now attach your shell to this cpuset:
+# /bin/echo $$ > tasks
+
+You can also create cpusets inside your cpuset by using mkdir in this
+directory.
+# mkdir my_sub_cs
+
+To remove a cpuset, just use rmdir:
+# rmdir my_sub_cs
+This will fail if the cpuset is in use (has cpusets inside, or has
+processes attached).
+
+2.2 Adding/removing cpus
+------------------------
+
+This is the syntax to use when writing in the cpus or mems files
+in cpuset directories:
+
+# /bin/echo 1-4 > cpus         -> set cpus list to cpus 1,2,3,4
+# /bin/echo 1,2,3,4 > cpus     -> set cpus list to cpus 1,2,3,4
+
+2.3 Setting flags
+-----------------
+
+The syntax is very simple:
+
+# /bin/echo 1 > cpu_exclusive  -> set flag 'cpu_exclusive'
+# /bin/echo 0 > cpu_exclusive  -> unset flag 'cpu_exclusive'
+
+2.4 Attaching processes
+-----------------------
+
+# /bin/echo PID > tasks
+
+Note that it is PID, not PIDs. You can only attach ONE task at a time.
+If you have several tasks to attach, you have to do it one after another:
+
+# /bin/echo PID1 > tasks
+# /bin/echo PID2 > tasks
+       ...
+# /bin/echo PIDn > tasks
+
+
+3. Questions
+============
+
+Q: what's up with this '/bin/echo' ?
+A: bash's builtin 'echo' command does not check calls to write() against
+   errors. If you use it in the cpuset file system, you won't be
+   able to tell whether a command succeeded or failed.
+
+Q: When I attach processes, only the first of the line gets really attached !
+A: We can only return one error code per call to write(). So you should also
+   put only ONE pid.
+
+4. Contact
+==========
+
+Web: http://www.bullopensource.org/cpuset
diff -urN malta/linux/Documentation/dontdiff malta/linux/Documentation/dontdiff
--- malta/linux/Documentation/dontdiff  1970/01/01 00:00:00
+++ malta/linux/Documentation/dontdiff  2005-06-21 14:20:31.067853000 +0100     
1.2.1000.1
@@ -0,0 +1,140 @@
+*.a
+*.aux
+*.bin
+*.cpio
+*.css
+*.dvi
+*.eps
+*.gif
+*.grep
+*.grp
+*.gz
+*.html
+*.jpeg
+*.ko
+*.log
+*.lst
+*.mod.c
+*.o
+*.orig
+*.out
+*.pdf
+*.png
+*.ps
+*.rej
+*.s
+*.sgml
+*.so
+*.tex
+*.ver
+*.xml
+*_MODULES
+*_vga16.c
+*cscope*
+*~
+.*
+.cscope
+53c700_d.h
+53c8xx_d.h*
+BitKeeper
+COPYING
+CREDITS
+CVS
+ChangeSet
+Kerntypes
+MODS.txt
+Module.symvers
+PENDING
+SCCS
+System.map*
+TAGS
+aic7*reg.h*
+aic7*reg_print.c*
+aic7*seq.h*
+aicasm
+aicdb.h*
+asm
+asm_offsets.*
+autoconf.h*
+bbootsect
+bin2c
+binkernel.spec
+bootsect
+bsetup
+btfixupprep
+build
+bvmlinux
+bzImage*
+classlist.h*
+comp*.log
+compile.h*
+config
+config-*
+config_data.h*
+conmakehash
+consolemap_deftbl.c*
+crc32table.h*
+cscope.*
+defkeymap.c*
+devlist.h*
+docproc
+dummy_sym.c*
+elfconfig.h*
+filelist
+fixdep
+fore200e_mkfirm
+fore200e_pca_fw.c*
+gen-devlist
+gen-kdb_cmds.c*
+gen_crc32table
+gen_init_cpio
+genksyms
+gentbl
+ikconfig.h*
+initramfs_list
+kallsyms
+kconfig
+kconfig.tk
+keywords.c*
+ksym.c*
+ksym.h*
+lex.c*
+logo_*.c
+logo_*_clut224.c
+logo_*_mono.c
+lxdialog
+make_times_h
+map
+maui_boot.h
+mk_elfconfig
+mkdep
+mktables
+modpost
+modversions.h*
+offsets.h
+oui.c*
+parse.c*
+parse.h*
+pnmtologo
+ppc_defs.h*
+promcon_tbl.c*
+pss_boot.h
+raid6altivec*.c
+raid6int*.c
+raid6tables.c
+setup
+sim710_d.h*
+sm_tbl*
+split-include
+tags
+times.h*
+tkparse
+trix_boot.h
+version.h*
+vmlinux
+vmlinux-*
+vmlinux.lds
+vsyscall.lds
+wanxlfw.inc
+uImage
+zImage
diff -urN malta/linux/Documentation/feature-removal-schedule.txt 
malta/linux/Documentation/feature-removal-schedule.txt
--- malta/linux/Documentation/feature-removal-schedule.txt      1970/01/01 
00:00:00
+++ malta/linux/Documentation/feature-removal-schedule.txt      2005-06-21 
14:20:31.079687000 +0100     1.7.1000.1
@@ -0,0 +1,85 @@
+The following is a list of files and features that are going to be
+removed in the kernel source tree.  Every entry should contain what
+exactly is going away, why it is happening, and who is going to be doing
+the work.  When the feature is removed from the kernel, it should also
+be removed from this file.
+
+---------------------------
+
+What:  devfs
+When:  July 2005
+Files: fs/devfs/*, include/linux/devfs_fs*.h and assorted devfs
+       function calls throughout the kernel tree
+Why:   It has been unmaintained for a number of years, has unfixable
+       races, contains a naming policy within the kernel that is
+       against the LSB, and can be replaced by using udev.
+Who:   Greg Kroah-Hartman <greg@kroah.com>
+
+---------------------------
+
+What:  ACPI S4bios support
+When:  May 2005
+Why:   Noone uses it, and it probably does not work, anyway. swsusp is
+       faster, more reliable, and people are actually using it.
+Who:   Pavel Machek <pavel@suse.cz>
+
+---------------------------
+
+What:  PCI Name Database (CONFIG_PCI_NAMES)
+When:  July 2005
+Why:   It bloats the kernel unnecessarily, and is handled by userspace better
+       (pciutils supports it.)  Will eliminate the need to try to keep the
+       pci.ids file in sync with the sf.net database all of the time.
+Who:   Greg Kroah-Hartman <gregkh@suse.de>
+
+---------------------------
+
+What:  io_remap_page_range() (macro or function)
+When:  September 2005
+Why:   Replaced by io_remap_pfn_range() which allows more memory space
+       addressabilty (by using a pfn) and supports sparc & sparc64
+       iospace as part of the pfn.
+Who:   Randy Dunlap <rddunlap@osdl.org>
+
+---------------------------
+
+What:  register_ioctl32_conversion() / unregister_ioctl32_conversion()
+When:  April 2005
+Why:   Replaced by ->compat_ioctl in file_operations and other method
+       vecors.
+Who:   Andi Kleen <ak@muc.de>, Christoph Hellwig <hch@lst.de>
+
+---------------------------
+
+What:  RCU API moves to EXPORT_SYMBOL_GPL
+When:  April 2006
+Files: include/linux/rcupdate.h, kernel/rcupdate.c
+Why:   Outside of Linux, the only implementations of anything even
+       vaguely resembling RCU that I am aware of are in DYNIX/ptx,
+       VM/XA, Tornado, and K42.  I do not expect anyone to port binary
+       drivers or kernel modules from any of these, since the first two
+       are owned by IBM and the last two are open-source research OSes.
+       So these will move to GPL after a grace period to allow
+       people, who might be using implementations that I am not aware
+       of, to adjust to this upcoming change.
+Who:   Paul E. McKenney <paulmck@us.ibm.com>
+
+---------------------------
+
+What:  IEEE1394 Audio and Music Data Transmission Protocol driver,
+       Connection Management Procedures driver
+When:  November 2005
+Files: drivers/ieee1394/{amdtp,cmp}*
+Why:   These are incomplete, have never worked, and are better implemented
+       in userland via raw1394 (see http://freebob.sourceforge.net/ for
+       example.)
+Who:   Jody McIntyre <scjody@steamballoon.com>
+
+---------------------------
+
+What:  raw1394: requests of type RAW1394_REQ_ISO_SEND, RAW1394_REQ_ISO_LISTEN
+When:  November 2005
+Why:   Deprecated in favour of the new ioctl-based rawiso interface, which is
+       more efficient.  You should really be using libraw1394 for raw1394
+       access anyway.
+Who:   Jody McIntyre <scjody@steamballoon.com>
diff -urN malta/linux/Documentation/ibm-acpi.txt 
malta/linux/Documentation/ibm-acpi.txt
--- malta/linux/Documentation/ibm-acpi.txt      1970/01/01 00:00:00
+++ malta/linux/Documentation/ibm-acpi.txt      2005-06-21 14:20:31.090846000 
+0100     1.1.1000.1
@@ -0,0 +1,474 @@
+                   IBM ThinkPad ACPI Extras Driver
+
+                            Version 0.8
+                          8 November 2004
+
+               Borislav Deianov <borislav@users.sf.net>
+                     http://ibm-acpi.sf.net/
+
+
+This is a Linux ACPI driver for the IBM ThinkPad laptops. It aims to
+support various features of these laptops which are accessible through
+the ACPI framework but not otherwise supported by the generic Linux
+ACPI drivers.
+
+
+Status
+------
+
+The features currently supported are the following (see below for
+detailed description):
+
+       - Fn key combinations
+       - Bluetooth enable and disable
+       - video output switching, expansion control     
+       - ThinkLight on and off
+       - limited docking and undocking
+       - UltraBay eject
+       - Experimental: CMOS control
+       - Experimental: LED control
+       - Experimental: ACPI sounds
+
+A compatibility table by model and feature is maintained on the web
+site, http://ibm-acpi.sf.net/. I appreciate any success or failure
+reports, especially if they add to or correct the compatibility table.
+Please include the following information in your report:
+
+       - ThinkPad model name
+       - a copy of your DSDT, from /proc/acpi/dsdt
+       - which driver features work and which don't
+       - the observed behavior of non-working features
+
+Any other comments or patches are also more than welcome.
+
+
+Installation
+------------
+
+If you are compiling this driver as included in the Linux kernel
+sources, simply enable the CONFIG_ACPI_IBM option (Power Management /
+ACPI / IBM ThinkPad Laptop Extras). The rest of this section describes
+how to install this driver when downloaded from the web site.
+
+First, you need to get a kernel with ACPI support up and running.
+Please refer to http://acpi.sourceforge.net/ for help with this
+step. How successful you will be depends a lot on you ThinkPad model,
+the kernel you are using and any additional patches applied. The
+kernel provided with your distribution may not be good enough. I
+needed to compile a 2.6.7 kernel with the 20040715 ACPI patch to get
+ACPI working reliably on my ThinkPad X40. Old ThinkPad models may not
+be supported at all.
+
+Assuming you have the basic ACPI support working (e.g. you can see the
+/proc/acpi directory), follow the following steps to install this
+driver:
+
+       - unpack the archive:
+
+               tar xzvf ibm-acpi-x.y.tar.gz; cd ibm-acpi-x.y
+
+       - compile the driver:
+
+               make
+
+       - install the module in your kernel modules directory:
+
+               make install
+
+       - load the module:
+
+               modprobe ibm_acpi
+
+After loading the module, check the "dmesg" output for any error messages.
+
+
+Features
+--------
+
+The driver creates the /proc/acpi/ibm directory. There is a file under
+that directory for each feature described below. Note that while the
+driver is still in the alpha stage, the exact proc file format and
+commands supported by the various features is guaranteed to change
+frequently.
+
+Driver Version -- /proc/acpi/ibm/driver
+--------------------------------------
+
+The driver name and version. No commands can be written to this file.
+
+Hot Keys -- /proc/acpi/ibm/hotkey
+---------------------------------
+
+Without this driver, only the Fn-F4 key (sleep button) generates an
+ACPI event. With the driver loaded, the hotkey feature enabled and the
+mask set (see below), the various hot keys generate ACPI events in the
+following format:
+
+       ibm/hotkey HKEY 00000080 0000xxxx
+
+The last four digits vary depending on the key combination pressed.
+All labeled Fn-Fx key combinations generate distinct events. In
+addition, the lid microswitch and some docking station buttons may
+also generate such events.
+
+The following commands can be written to this file:
+
+       echo enable > /proc/acpi/ibm/hotkey -- enable the hot keys feature
+       echo disable > /proc/acpi/ibm/hotkey -- disable the hot keys feature
+       echo 0xffff > /proc/acpi/ibm/hotkey -- enable all possible hot keys
+       echo 0x0000 > /proc/acpi/ibm/hotkey -- disable all possible hot keys
+       ... any other 4-hex-digit mask ...
+       echo reset > /proc/acpi/ibm/hotkey -- restore the original mask
+
+The bit mask allows some control over which hot keys generate ACPI
+events. Not all bits in the mask can be modified. Not all bits that
+can be modified do anything. Not all hot keys can be individually
+controlled by the mask. Most recent ThinkPad models honor the
+following bits (assuming the hot keys feature has been enabled):
+
+       key     bit     behavior when set       behavior when unset
+
+       Fn-F3                   always generates ACPI event
+       Fn-F4                   always generates ACPI event
+       Fn-F5   0010    generate ACPI event     enable/disable Bluetooth
+       Fn-F7   0040    generate ACPI event     switch LCD and external display
+       Fn-F8   0080    generate ACPI event     expand screen or none
+       Fn-F9   0100    generate ACPI event     none
+       Fn-F12                  always generates ACPI event
+
+Some models do not support all of the above. For example, the T30 does
+not support Fn-F5 and Fn-F9. Other models do not support the mask at
+all. On those models, hot keys cannot be controlled individually.
+
+Note that enabling ACPI events for some keys prevents their default
+behavior. For example, if events for Fn-F5 are enabled, that key will
+no longer enable/disable Bluetooth by itself. This can still be done
+from an acpid handler for the ibm/hotkey event.
+
+Note also that not all Fn key combinations are supported through
+ACPI. For example, on the X40, the brightness, volume and "Access IBM"
+buttons do not generate ACPI events even with this driver. They *can*
+be used through the "ThinkPad Buttons" utility, see
+http://www.nongnu.org/tpb/
+
+Bluetooth -- /proc/acpi/ibm/bluetooth
+-------------------------------------
+
+This feature shows the presence and current state of a Bluetooth
+device. If Bluetooth is installed, the following commands can be used:
+
+       echo enable > /proc/acpi/ibm/bluetooth
+       echo disable > /proc/acpi/ibm/bluetooth
+
+Video output control -- /proc/acpi/ibm/video
+--------------------------------------------
+
+This feature allows control over the devices used for video output -
+LCD, CRT or DVI (if available). The following commands are available:
+
+       echo lcd_enable > /proc/acpi/ibm/video
+       echo lcd_disable > /proc/acpi/ibm/video
+       echo crt_enable > /proc/acpi/ibm/video
+       echo crt_disable > /proc/acpi/ibm/video
+       echo dvi_enable > /proc/acpi/ibm/video
+       echo dvi_disable > /proc/acpi/ibm/video
+       echo auto_enable > /proc/acpi/ibm/video
+       echo auto_disable > /proc/acpi/ibm/video
+       echo expand_toggle > /proc/acpi/ibm/video
+       echo video_switch > /proc/acpi/ibm/video
+
+Each video output device can be enabled or disabled individually.
+Reading /proc/acpi/ibm/video shows the status of each device.
+
+Automatic video switching can be enabled or disabled.  When automatic
+video switching is enabled, certain events (e.g. opening the lid,
+docking or undocking) cause the video output device to change
+automatically. While this can be useful, it also causes flickering
+and, on the X40, video corruption. By disabling automatic switching,
+the flickering or video corruption can be avoided.
+
+The video_switch command cycles through the available video outputs
+(it sumulates the behavior of Fn-F7).
+
+Video expansion can be toggled through this feature. This controls
+whether the display is expanded to fill the entire LCD screen when a
+mode with less than full resolution is used. Note that the current
+video expansion status cannot be determined through this feature.
+
+Note that on many models (particularly those using Radeon graphics
+chips) the X driver configures the video card in a way which prevents
+Fn-F7 from working. This also disables the video output switching
+features of this driver, as it uses the same ACPI methods as
+Fn-F7. Video switching on the console should still work.
+
+ThinkLight control -- /proc/acpi/ibm/light
+------------------------------------------
+
+The current status of the ThinkLight can be found in this file. A few
+models which do not make the status available will show it as
+"unknown". The available commands are:
+
+       echo on  > /proc/acpi/ibm/light
+       echo off > /proc/acpi/ibm/light
+
+Docking / Undocking -- /proc/acpi/ibm/dock
+------------------------------------------
+
+Docking and undocking (e.g. with the X4 UltraBase) requires some
+actions to be taken by the operating system to safely make or break
+the electrical connections with the dock.
+
+The docking feature of this driver generates the following ACPI events:
+
+       ibm/dock GDCK 00000003 00000001 -- eject request
+       ibm/dock GDCK 00000003 00000002 -- undocked
+       ibm/dock GDCK 00000000 00000003 -- docked
+
+NOTE: These events will only be generated if the laptop was docked
+when originally booted. This is due to the current lack of support for
+hot plugging of devices in the Linux ACPI framework. If the laptop was
+booted while not in the dock, the following message is shown in the
+logs: "ibm_acpi: dock device not present". No dock-related events are
+generated but the dock and undock commands described below still
+work. They can be executed manually or triggered by Fn key
+combinations (see the example acpid configuration files included in
+the driver tarball package available on the web site).
+
+When the eject request button on the dock is pressed, the first event
+above is generated. The handler for this event should issue the
+following command:
+
+       echo undock > /proc/acpi/ibm/dock
+
+After the LED on the dock goes off, it is safe to eject the laptop.
+Note: if you pressed this key by mistake, go ahead and eject the
+laptop, then dock it back in. Otherwise, the dock may not function as
+expected.
+
+When the laptop is docked, the third event above is generated. The
+handler for this event should issue the following command to fully
+enable the dock:
+
+       echo dock > /proc/acpi/ibm/dock
+
+The contents of the /proc/acpi/ibm/dock file shows the current status
+of the dock, as provided by the ACPI framework.
+
+The docking support in this driver does not take care of enabling or
+disabling any other devices you may have attached to the dock. For
+example, a CD drive plugged into the UltraBase needs to be disabled or
+enabled separately. See the provided example acpid configuration files
+for how this can be accomplished.
+
+There is no support yet for PCI devices that may be attached to a
+docking station, e.g. in the ThinkPad Dock II. The driver currently
+does not recognize, enable or disable such devices. This means that
+the only docking stations currently supported are the X-series
+UltraBase docks and "dumb" port replicators like the Mini Dock (the
+latter don't need any ACPI support, actually).
+
+UltraBay Eject -- /proc/acpi/ibm/bay
+------------------------------------
+
+Inserting or ejecting an UltraBay device requires some actions to be
+taken by the operating system to safely make or break the electrical
+connections with the device.
+
+This feature generates the following ACPI events:
+
+       ibm/bay MSTR 00000003 00000000 -- eject request
+       ibm/bay MSTR 00000001 00000000 -- eject lever inserted
+
+NOTE: These events will only be generated if the UltraBay was present
+when the laptop was originally booted (on the X series, the UltraBay
+is in the dock, so it may not be present if the laptop was undocked).
+This is due to the current lack of support for hot plugging of devices
+in the Linux ACPI framework. If the laptop was booted without the
+UltraBay, the following message is shown in the logs: "ibm_acpi: bay
+device not present". No bay-related events are generated but the eject
+command described below still works. It can be executed manually or
+triggered by a hot key combination.
+
+Sliding the eject lever generates the first event shown above. The
+handler for this event should take whatever actions are necessary to
+shut down the device in the UltraBay (e.g. call idectl), then issue
+the following command:
+
+       echo eject > /proc/acpi/ibm/bay
+
+After the LED on the UltraBay goes off, it is safe to pull out the
+device.
+
+When the eject lever is inserted, the second event above is
+generated. The handler for this event should take whatever actions are
+necessary to enable the UltraBay device (e.g. call idectl).
+
+The contents of the /proc/acpi/ibm/bay file shows the current status
+of the UltraBay, as provided by the ACPI framework.
+
+Experimental Features
+---------------------
+
+The following features are marked experimental because using them
+involves guessing the correct values of some parameters. Guessing
+incorrectly may have undesirable effects like crashing your
+ThinkPad. USE THESE WITH CAUTION! To activate them, you'll need to
+supply the experimental=1 parameter when loading the module.
+
+Experimental: CMOS control - /proc/acpi/ibm/cmos
+------------------------------------------------
+
+This feature is used internally by the ACPI firmware to control the
+ThinkLight on most newer ThinkPad models. It appears that it can also
+control LCD brightness, sounds volume and more, but only on some
+models.
+
+The commands are non-negative integer numbers:
+
+       echo 0 >/proc/acpi/ibm/cmos
+       echo 1 >/proc/acpi/ibm/cmos
+       echo 2 >/proc/acpi/ibm/cmos
+       ...
+
+The range of numbers which are used internally by various models is 0
+to 21, but it's possible that numbers outside this range have
+interesting behavior. Here is the behavior on the X40 (tpb is the
+ThinkPad Buttons utility):
+
+       0 - no effect but tpb reports "Volume down"
+       1 - no effect but tpb reports "Volume up"
+       2 - no effect but tpb reports "Mute on"
+       3 - simulate pressing the "Access IBM" button
+       4 - LCD brightness up
+       5 - LCD brightness down
+       11 - toggle screen expansion
+       12 - ThinkLight on
+       13 - ThinkLight off
+       14 - no effect but tpb reports ThinkLight status change
+
+If you try this feature, please send me a report similar to the
+above. On models which allow control of LCD brightness or sound
+volume, I'd like to provide this functionality in an user-friendly
+way, but first I need a way to identify the models which this is
+possible.
+
+Experimental: LED control - /proc/acpi/ibm/LED
+----------------------------------------------
+
+Some of the LED indicators can be controlled through this feature. The
+available commands are:
+
+       echo <led number> on >/proc/acpi/ibm/led
+       echo <led number> off >/proc/acpi/ibm/led
+       echo <led number> blink >/proc/acpi/ibm/led
+
+The <led number> parameter is a non-negative integer. The range of LED
+numbers used internally by various models is 0 to 7 but it's possible
+that numbers outside this range are also valid. Here is the mapping on
+the X40:
+
+       0 - power
+       1 - battery (orange)
+       2 - battery (green)
+       3 - UltraBase
+       4 - UltraBay
+       7 - standby
+
+All of the above can be turned on and off and can be made to blink.
+
+If you try this feature, please send me a report similar to the
+above. I'd like to provide this functionality in an user-friendly way,
+but first I need to identify the which numbers correspond to which
+LEDs on various models.
+
+Experimental: ACPI sounds - /proc/acpi/ibm/beep
+-----------------------------------------------
+
+The BEEP method is used internally by the ACPI firmware to provide
+audible alerts in various situtation. This feature allows the same
+sounds to be triggered manually.
+
+The commands are non-negative integer numbers:
+
+       echo 0 >/proc/acpi/ibm/beep
+       echo 1 >/proc/acpi/ibm/beep
+       echo 2 >/proc/acpi/ibm/beep
+       ...
+
+The range of numbers which are used internally by various models is 0
+to 17, but it's possible that numbers outside this range are also
+valid. Here is the behavior on the X40:
+
+       2 - two beeps, pause, third beep
+       3 - single beep
+       4 - "unable"    
+       5 - single beep
+       6 - "AC/DC"
+       7 - high-pitched beep
+       9 - three short beeps
+       10 - very long beep
+       12 - low-pitched beep
+
+(I've only been able to identify a couple of them).
+
+If you try this feature, please send me a report similar to the
+above. I'd like to provide this functionality in an user-friendly way,
+but first I need to identify the which numbers correspond to which
+sounds on various models.
+
+
+Multiple Command, Module Parameters
+-----------------------------------
+
+Multiple commands can be written to the proc files in one shot by
+separating them with commas, for example:
+
+       echo enable,0xffff > /proc/acpi/ibm/hotkey
+       echo lcd_disable,crt_enable > /proc/acpi/ibm/video
+
+Commands can also be specified when loading the ibm_acpi module, for
+example:
+
+       modprobe ibm_acpi hotkey=enable,0xffff video=auto_disable
+
+
+Example Configuration
+---------------------
+
+The ACPI support in the kernel is intended to be used in conjunction
+with a user-space daemon, acpid. The configuration files for this
+daemon control what actions are taken in response to various ACPI
+events. An example set of configuration files are included in the
+config/ directory of the tarball package available on the web
+site. Note that these are provided for illustration purposes only and
+may need to be adapted to your particular setup.
+
+The following utility scripts are used by the example action
+scripts (included with ibm-acpi for completeness):
+
+       /usr/local/sbin/idectl -- from the hdparm source distribution,
+               see http://www.ibiblio.org/pub/Linux/system/hardware
+       /usr/local/sbin/laptop_mode -- from the Linux kernel source
+               distribution, see Documentation/laptop-mode.txt
+       /sbin/service -- comes with Redhat/Fedora distributions
+
+Toan T Nguyen <ntt@control.uchicago.edu> has written a SuSE powersave
+script for the X20, included in config/usr/sbin/ibm_hotkeys_X20
+
+Henrik Brix Andersen <brix@gentoo.org> has written a Gentoo ACPI event
+handler script for the X31. You can get the latest version from
+http://dev.gentoo.org/~brix/files/x31.sh
+
+David Schweikert <dws@ee.eth.ch> has written an alternative blank.sh
+script which works on Debian systems, included in
+configs/etc/acpi/actions/blank-debian.sh
+
+
+TODO
+----
+
+I'd like to implement the following features but haven't yet found the
+time and/or I don't yet know how to implement them:
+
+- UltraBay floppy drive support
+
diff -urN malta/linux/Documentation/keys.txt malta/linux/Documentation/keys.txt
--- malta/linux/Documentation/keys.txt  1970/01/01 00:00:00
+++ malta/linux/Documentation/keys.txt  2005-06-21 14:20:31.106070000 +0100     
1.2.1000.1
@@ -0,0 +1,869 @@
+                        ============================
+                        KERNEL KEY RETENTION SERVICE
+                        ============================
+
+This service allows cryptographic keys, authentication tokens, cross-domain
+user mappings, and similar to be cached in the kernel for the use of
+filesystems other kernel services.
+
+Keyrings are permitted; these are a special type of key that can hold links to
+other keys. Processes each have three standard keyring subscriptions that a
+kernel service can search for relevant keys.
+
+The key service can be configured on by enabling:
+
+       "Security options"/"Enable access key retention support" (CONFIG_KEYS)
+
+This document has the following sections:
+
+       - Key overview
+       - Key service overview
+       - Key access permissions
+       - New procfs files
+       - Userspace system call interface
+       - Kernel services
+       - Defining a key type
+       - Request-key callback service
+       - Key access filesystem
+
+
+============
+KEY OVERVIEW
+============
+
+In this context, keys represent units of cryptographic data, authentication
+tokens, keyrings, etc.. These are represented in the kernel by struct key.
+
+Each key has a number of attributes:
+
+       - A serial number.
+       - A type.
+       - A description (for matching a key in a search).
+       - Access control information.
+       - An expiry time.
+       - A payload.
+       - State.
+
+
+ (*) Each key is issued a serial number of type key_serial_t that is unique
+     for the lifetime of that key. All serial numbers are positive non-zero
+     32-bit integers.
+
+     Userspace programs can use a key's serial numbers as a way to gain access
+     to it, subject to permission checking.
+
+ (*) Each key is of a defined "type". Types must be registered inside the
+     kernel by a kernel service (such as a filesystem) before keys of that
+     type can be added or used. Userspace programs cannot define new types
+     directly.
+
+     Key types are represented in the kernel by struct key_type. This defines
+     a number of operations that can be performed on a key of that type.
+
+     Should a type be removed from the system, all the keys of that type will
+     be invalidated.
+
+ (*) Each key has a description. This should be a printable string. The key
+     type provides an operation to perform a match between the description on
+     a key and a criterion string.
+
+ (*) Each key has an owner user ID, a group ID and a permissions mask. These
+     are used to control what a process may do to a key from userspace, and
+     whether a kernel service will be able to find the key.
+
+ (*) Each key can be set to expire at a specific time by the key type's
+     instantiation function. Keys can also be immortal.
+
+ (*) Each key can have a payload. This is a quantity of data that represent
+     the actual "key". In the case of a keyring, this is a list of keys to
+     which the keyring links; in the case of a user-defined key, it's an
+     arbitrary blob of data.
+
+     Having a payload is not required; and the payload can, in fact, just be a
+     value stored in the struct key itself.
+
+     When a key is instantiated, the key type's instantiation function is
+     called with a blob of data, and that then creates the key's payload in
+     some way.
+
+     Similarly, when userspace wants to read back the contents of the key, if
+     permitted, another key type operation will be called to convert the key's
+     attached payload back into a blob of data.
+
+ (*) Each key can be in one of a number of basic states:
+
+     (*) Uninstantiated. The key exists, but does not have any data
+        attached. Keys being requested from userspace will be in this state.
+
+     (*) Instantiated. This is the normal state. The key is fully formed, and
+        has data attached.
+
+     (*) Negative. This is a relatively short-lived state. The key acts as a
+        note saying that a previous call out to userspace failed, and acts as
+        a throttle on key lookups. A negative key can be updated to a normal
+        state.
+
+     (*) Expired. Keys can have lifetimes set. If their lifetime is exceeded,
+        they traverse to this state. An expired key can be updated back to a
+        normal state.
+
+     (*) Revoked. A key is put in this state by userspace action. It can't be
+        found or operated upon (apart from by unlinking it).
+
+     (*) Dead. The key's type was unregistered, and so the key is now useless.
+
+
+====================
+KEY SERVICE OVERVIEW
+====================
+
+The key service provides a number of features besides keys:
+
+ (*) The key service defines two special key types:
+
+     (+) "keyring"
+
+        Keyrings are special keys that contain a list of other keys. Keyring
+        lists can be modified using various system calls. Keyrings should not
+        be given a payload when created.
+
+     (+) "user"
+
+        A key of this type has a description and a payload that are arbitrary
+        blobs of data. These can be created, updated and read by userspace,
+        and aren't intended for use by kernel services.
+
+ (*) Each process subscribes to three keyrings: a thread-specific keyring, a
+     process-specific keyring, and a session-specific keyring.
+
+     The thread-specific keyring is discarded from the child when any sort of
+     clone, fork, vfork or execve occurs. A new keyring is created only when
+     required.
+
+     The process-specific keyring is replaced with an empty one in the child
+     on clone, fork, vfork unless CLONE_THREAD is supplied, in which case it
+     is shared. execve also discards the process's process keyring and creates
+     a new one.
+
+     The session-specific keyring is persistent across clone, fork, vfork and
+     execve, even when the latter executes a set-UID or set-GID binary. A
+     process can, however, replace its current session keyring with a new one
+     by using PR_JOIN_SESSION_KEYRING. It is permitted to request an anonymous
+     new one, or to attempt to create or join one of a specific name.
+
+     The ownership of the thread keyring changes when the real UID and GID of
+     the thread changes.
+
+ (*) Each user ID resident in the system holds two special keyrings: a user
+     specific keyring and a default user session keyring. The default session
+     keyring is initialised with a link to the user-specific keyring.
+
+     When a process changes its real UID, if it used to have no session key, it
+     will be subscribed to the default session key for the new UID.
+
+     If a process attempts to access its session key when it doesn't have one,
+     it will be subscribed to the default for its current UID.
+
+ (*) Each user has two quotas against which the keys they own are tracked. One
+     limits the total number of keys and keyrings, the other limits the total
+     amount of description and payload space that can be consumed.
+
+     The user can view information on this and other statistics through procfs
+     files.
+
+     Process-specific and thread-specific keyrings are not counted towards a
+     user's quota.
+
+     If a system call that modifies a key or keyring in some way would put the
+     user over quota, the operation is refused and error EDQUOT is returned.
+
+ (*) There's a system call interface by which userspace programs can create
+     and manipulate keys and keyrings.
+
+ (*) There's a kernel interface by which services can register types and
+     search for keys.
+
+ (*) There's a way for the a search done from the kernel to call back to
+     userspace to request a key that can't be found in a process's keyrings.
+
+ (*) An optional filesystem is available through which the key database can be
+     viewed and manipulated.
+
+
+======================
+KEY ACCESS PERMISSIONS
+======================
+
+Keys have an owner user ID, a group access ID, and a permissions mask. The
+mask has up to eight bits each for user, group and other access. Only five of
+each set of eight bits are defined. These permissions granted are:
+
+ (*) View
+
+     This permits a key or keyring's attributes to be viewed - including key
+     type and description.
+
+ (*) Read
+
+     This permits a key's payload to be viewed or a keyring's list of linked
+     keys.
+
+ (*) Write
+
+     This permits a key's payload to be instantiated or updated, or it allows
+     a link to be added to or removed from a keyring.
+
+ (*) Search
+
+     This permits keyrings to be searched and keys to be found. Searches can
+     only recurse into nested keyrings that have search permission set.
+
+ (*) Link
+
+     This permits a key or keyring to be linked to. To create a link from a
+     keyring to a key, a process must have Write permission on the keyring and
+     Link permission on the key.
+
+For changing the ownership, group ID or permissions mask, being the owner of
+the key or having the sysadmin capability is sufficient.
+
+
+================
+NEW PROCFS FILES
+================
+
+Two files have been added to procfs by which an administrator can find out
+about the status of the key service:
+
+ (*) /proc/keys
+
+     This lists all the keys on the system, giving information about their
+     type, description and permissions. The payload of the key is not
+     available this way:
+
+       SERIAL   FLAGS  USAGE EXPY PERM   UID   GID   TYPE      DESCRIPTION: 
SUMMARY
+       00000001 I-----    39 perm 1f0000     0     0 keyring   _uid_ses.0: 1/4
+       00000002 I-----     2 perm 1f0000     0     0 keyring   _uid.0: empty
+       00000007 I-----     1 perm 1f0000     0     0 keyring   _pid.1: empty
+       0000018d I-----     1 perm 1f0000     0     0 keyring   _pid.412: empty
+       000004d2 I--Q--     1 perm 1f0000    32    -1 keyring   _uid.32: 1/4
+       000004d3 I--Q--     3 perm 1f0000    32    -1 keyring   _uid_ses.32: 
empty
+       00000892 I--QU-     1 perm 1f0000     0     0 user      metal:copper: 0
+       00000893 I--Q-N     1  35s 1f0000     0     0 user      metal:silver: 0
+       00000894 I--Q--     1  10h 1f0000     0     0 user      metal:gold: 0
+
+     The flags are:
+
+       I       Instantiated
+       R       Revoked
+       D       Dead
+       Q       Contributes to user's quota
+       U       Under contruction by callback to userspace
+       N       Negative key
+
+     This file must be enabled at kernel configuration time as it allows anyone
+     to list the keys database.
+
+ (*) /proc/key-users
+
+     This file lists the tracking data for each user that has at least one key
+     on the system. Such data includes quota information and statistics:
+
+       [root@andromeda root]# cat /proc/key-users
+       0:     46 45/45 1/100 13/10000
+       29:     2 2/2 2/100 40/10000
+       32:     2 2/2 2/100 40/10000
+       38:     2 2/2 2/100 40/10000
+
+     The format of each line is
+       <UID>:                  User ID to which this applies
+       <usage>                 Structure refcount
+       <inst>/<keys>           Total number of keys and number instantiated
+       <keys>/<max>            Key count quota
+       <bytes>/<max>           Key size quota
+
+
+===============================
+USERSPACE SYSTEM CALL INTERFACE
+===============================
+
+Userspace can manipulate keys directly through three new syscalls: add_key,
+request_key and keyctl. The latter provides a number of functions for
+manipulating keys.
+
+When referring to a key directly, userspace programs should use the key's
+serial number (a positive 32-bit integer). However, there are some special
+values available for referring to special keys and keyrings that relate to the
+process making the call:
+
+       CONSTANT                        VALUE   KEY REFERENCED
+       ==============================  ======  ===========================
+       KEY_SPEC_THREAD_KEYRING         -1      thread-specific keyring
+       KEY_SPEC_PROCESS_KEYRING        -2      process-specific keyring
+       KEY_SPEC_SESSION_KEYRING        -3      session-specific keyring
+       KEY_SPEC_USER_KEYRING           -4      UID-specific keyring
+       KEY_SPEC_USER_SESSION_KEYRING   -5      UID-session keyring
+       KEY_SPEC_GROUP_KEYRING          -6      GID-specific keyring
+
+
+The main syscalls are:
+
+ (*) Create a new key of given type, description and payload and add it to the
+     nominated keyring:
+
+       key_serial_t add_key(const char *type, const char *desc,
+                            const void *payload, size_t plen,
+                            key_serial_t keyring);
+
+     If a key of the same type and description as that proposed already exists
+     in the keyring, this will try to update it with the given payload, or it
+     will return error EEXIST if that function is not supported by the key
+     type. The process must also have permission to write to the key to be
+     able to update it. The new key will have all user permissions granted and
+     no group or third party permissions.
+
+     Otherwise, this will attempt to create a new key of the specified type
+     and description, and to instantiate it with the supplied payload and
+     attach it to the keyring. In this case, an error will be generated if the
+     process does not have permission to write to the keyring.
+
+     The payload is optional, and the pointer can be NULL if not required by
+     the type. The payload is plen in size, and plen can be zero for an empty
+     payload.
+
+     A new keyring can be generated by setting type "keyring", the keyring
+     name as the description (or NULL) and setting the payload to NULL.
+
+     User defined keys can be created by specifying type "user". It is
+     recommended that a user defined key's description by prefixed with a type
+     ID and a colon, such as "krb5tgt:" for a Kerberos 5 ticket granting
+     ticket.
+
+     Any other type must have been registered with the kernel in advance by a
+     kernel service such as a filesystem.
+
+     The ID of the new or updated key is returned if successful.
+
+
+ (*) Search the process's keyrings for a key, potentially calling out to
+     userspace to create it.
+
+       key_serial_t request_key(const char *type, const char *description,
+                                const char *callout_info,
+                                key_serial_t dest_keyring);
+
+     This function searches all the process's keyrings in the order thread,
+     process, session for a matching key. This works very much like
+     KEYCTL_SEARCH, including the optional attachment of the discovered key to
+     a keyring.
+
+     If a key cannot be found, and if callout_info is not NULL, then
+     /sbin/request-key will be invoked in an attempt to obtain a key. The
+     callout_info string will be passed as an argument to the program.
+
+
+The keyctl syscall functions are:
+
+ (*) Map a special key ID to a real key ID for this process:
+
+       key_serial_t keyctl(KEYCTL_GET_KEYRING_ID, key_serial_t id,
+                           int create);
+
+     The special key specified by "id" is looked up (with the key being
+     created if necessary) and the ID of the key or keyring thus found is
+     returned if it exists.
+
+     If the key does not yet exist, the key will be created if "create" is
+     non-zero; and the error ENOKEY will be returned if "create" is zero.
+
+
+ (*) Replace the session keyring this process subscribes to with a new one:
+
+       key_serial_t keyctl(KEYCTL_JOIN_SESSION_KEYRING, const char *name);
+
+     If name is NULL, an anonymous keyring is created attached to the process
+     as its session keyring, displacing the old session keyring.
+
+     If name is not NULL, if a keyring of that name exists, the process
+     attempts to attach it as the session keyring, returning an error if that
+     is not permitted; otherwise a new keyring of that name is created and
+     attached as the session keyring.
+
+     To attach to a named keyring, the keyring must have search permission for
+     the process's ownership.
+
+     The ID of the new session keyring is returned if successful.
+
+
+ (*) Update the specified key:
+
+       long keyctl(KEYCTL_UPDATE, key_serial_t key, const void *payload,
+                   size_t plen);
+
+     This will try to update the specified key with the given payload, or it
+     will return error EOPNOTSUPP if that function is not supported by the key
+     type. The process must also have permission to write to the key to be
+     able to update it.
+
+     The payload is of length plen, and may be absent or empty as for
+     add_key().
+
+
+ (*) Revoke a key:
+
+       long keyctl(KEYCTL_REVOKE, key_serial_t key);
+
+     This makes a key unavailable for further operations. Further attempts to
+     use the key will be met with error EKEYREVOKED, and the key will no longer
+     be findable.
+
+
+ (*) Change the ownership of a key:
+
+       long keyctl(KEYCTL_CHOWN, key_serial_t key, uid_t uid, gid_t gid);
+
+     This function permits a key's owner and group ID to be changed. Either
+     one of uid or gid can be set to -1 to suppress that change.
+
+     Only the superuser can change a key's owner to something other than the
+     key's current owner. Similarly, only the superuser can change a key's
+     group ID to something other than the calling process's group ID or one of
+     its group list members.
+
+
+ (*) Change the permissions mask on a key:
+
+       long keyctl(KEYCTL_SETPERM, key_serial_t key, key_perm_t perm);
+
+     This function permits the owner of a key or the superuser to change the
+     permissions mask on a key.
+
+     Only bits the available bits are permitted; if any other bits are set,
+     error EINVAL will be returned.
+
+
+ (*) Describe a key:
+
+       long keyctl(KEYCTL_DESCRIBE, key_serial_t key, char *buffer,
+                   size_t buflen);
+
+     This function returns a summary of the key's attributes (but not its
+     payload data) as a string in the buffer provided.
+
+     Unless there's an error, it always returns the amount of data it could
+     produce, even if that's too big for the buffer, but it won't copy more
+     than requested to userspace. If the buffer pointer is NULL then no copy
+     will take place.
+
+     A process must have view permission on the key for this function to be
+     successful.
+
+     If successful, a string is placed in the buffer in the following format:
+
+       <type>;<uid>;<gid>;<perm>;<description>
+
+     Where type and description are strings, uid and gid are decimal, and perm
+     is hexadecimal. A NUL character is included at the end of the string if
+     the buffer is sufficiently big.
+
+     This can be parsed with
+
+       sscanf(buffer, "%[^;];%d;%d;%o;%s", type, &uid, &gid, &mode, desc);
+
+
+ (*) Clear out a keyring:
+
+       long keyctl(KEYCTL_CLEAR, key_serial_t keyring);
+
+     This function clears the list of keys attached to a keyring. The calling
+     process must have write permission on the keyring, and it must be a
+     keyring (or else error ENOTDIR will result).
+
+
+ (*) Link a key into a keyring:
+
+       long keyctl(KEYCTL_LINK, key_serial_t keyring, key_serial_t key);
+
+     This function creates a link from the keyring to the key. The process
+     must have write permission on the keyring and must have link permission
+     on the key.
+
+     Should the keyring not be a keyring, error ENOTDIR will result; and if
+     the keyring is full, error ENFILE will result.
+
+     The link procedure checks the nesting of the keyrings, returning ELOOP if
+     it appears to deep or EDEADLK if the link would introduce a cycle.
+
+
+ (*) Unlink a key or keyring from another keyring:
+
+       long keyctl(KEYCTL_UNLINK, key_serial_t keyring, key_serial_t key);
+
+     This function looks through the keyring for the first link to the
+     specified key, and removes it if found. Subsequent links to that key are
+     ignored. The process must have write permission on the keyring.
+
+     If the keyring is not a keyring, error ENOTDIR will result; and if the
+     key is not present, error ENOENT will be the result.
+
+
+ (*) Search a keyring tree for a key:
+
+       key_serial_t keyctl(KEYCTL_SEARCH, key_serial_t keyring,
+                           const char *type, const char *description,
+                           key_serial_t dest_keyring);
+
+     This searches the keyring tree headed by the specified keyring until a
+     key is found that matches the type and description criteria. Each keyring
+     is checked for keys before recursion into its children occurs.
+
+     The process must have search permission on the top level keyring, or else
+     error EACCES will result. Only keyrings that the process has search
+     permission on will be recursed into, and only keys and keyrings for which
+     a process has search permission can be matched. If the specified keyring
+     is not a keyring, ENOTDIR will result.
+
+     If the search succeeds, the function will attempt to link the found key
+     into the destination keyring if one is supplied (non-zero ID). All the
+     constraints applicable to KEYCTL_LINK apply in this case too.
+
+     Error ENOKEY, EKEYREVOKED or EKEYEXPIRED will be returned if the search
+     fails. On success, the resulting key ID will be returned.
+
+
+ (*) Read the payload data from a key:
+
+       key_serial_t keyctl(KEYCTL_READ, key_serial_t keyring, char *buffer,
+                           size_t buflen);
+
+     This function attempts to read the payload data from the specified key
+     into the buffer. The process must have read permission on the key to
+     succeed.
+
+     The returned data will be processed for presentation by the key type. For
+     instance, a keyring will return an array of key_serial_t entries
+     representing the IDs of all the keys to which it is subscribed. The user
+     defined key type will return its data as is. If a key type does not
+     implement this function, error EOPNOTSUPP will result.
+
+     As much of the data as can be fitted into the buffer will be copied to
+     userspace if the buffer pointer is not NULL.
+
+     On a successful return, the function will always return the amount of
+     data available rather than the amount copied.
+
+
+ (*) Instantiate a partially constructed key.
+
+       key_serial_t keyctl(KEYCTL_INSTANTIATE, key_serial_t key,
+                           const void *payload, size_t plen,
+                           key_serial_t keyring);
+
+     If the kernel calls back to userspace to complete the instantiation of a
+     key, userspace should use this call to supply data for the key before the
+     invoked process returns, or else the key will be marked negative
+     automatically.
+
+     The process must have write access on the key to be able to instantiate
+     it, and the key must be uninstantiated.
+
+     If a keyring is specified (non-zero), the key will also be linked into
+     that keyring, however all the constraints applying in KEYCTL_LINK apply
+     in this case too.
+
+     The payload and plen arguments describe the payload data as for add_key().
+
+
+ (*) Negatively instantiate a partially constructed key.
+
+       key_serial_t keyctl(KEYCTL_NEGATE, key_serial_t key,
+                           unsigned timeout, key_serial_t keyring);
+
+     If the kernel calls back to userspace to complete the instantiation of a
+     key, userspace should use this call mark the key as negative before the
+     invoked process returns if it is unable to fulfil the request.
+
+     The process must have write access on the key to be able to instantiate
+     it, and the key must be uninstantiated.
+
+     If a keyring is specified (non-zero), the key will also be linked into
+     that keyring, however all the constraints applying in KEYCTL_LINK apply
+     in this case too.
+
+
+===============
+KERNEL SERVICES
+===============
+
+The kernel services for key managment are fairly simple to deal with. They can
+be broken down into two areas: keys and key types.
+
+Dealing with keys is fairly straightforward. Firstly, the kernel service
+registers its type, then it searches for a key of that type. It should retain
+the key as long as it has need of it, and then it should release it. For a
+filesystem or device file, a search would probably be performed during the
+open call, and the key released upon close. How to deal with conflicting keys
+due to two different users opening the same file is left to the filesystem
+author to solve.
+
+When accessing a key's payload data, key->lock should be at least read locked,
+or else the data may be changed by an update being performed from userspace
+whilst the driver or filesystem is trying to access it. If no update method is
+supplied, then the key's payload may be accessed without holding a lock as
+there is no way to change it, provided it can be guaranteed that the key's
+type definition won't go away.
+
+(*) To search for a key, call:
+
+       struct key *request_key(const struct key_type *type,
+                               const char *description,
+                               const char *callout_string);
+
+    This is used to request a key or keyring with a description that matches
+    the description specified according to the key type's match function. This
+    permits approximate matching to occur. If callout_string is not NULL, then
+    /sbin/request-key will be invoked in an attempt to obtain the key from
+    userspace. In that case, callout_string will be passed as an argument to
+    the program.
+
+    Should the function fail error ENOKEY, EKEYEXPIRED or EKEYREVOKED will be
+    returned.
+
+
+(*) When it is no longer required, the key should be released using:
+
+       void key_put(struct key *key);
+
+    This can be called from interrupt context. If CONFIG_KEYS is not set then
+    the argument will not be parsed.
+
+
+(*) Extra references can be made to a key by calling the following function:
+
+       struct key *key_get(struct key *key);
+
+    These need to be disposed of by calling key_put() when they've been
+    finished with. The key pointer passed in will be returned. If the pointer
+    is NULL or CONFIG_KEYS is not set then the key will not be dereferenced and
+    no increment will take place.
+
+
+(*) A key's serial number can be obtained by calling:
+
+       key_serial_t key_serial(struct key *key);
+
+    If key is NULL or if CONFIG_KEYS is not set then 0 will be returned (in the
+    latter case without parsing the argument).
+
+
+(*) If a keyring was found in the search, this can be further searched by:
+
+       struct key *keyring_search(struct key *keyring,
+                                  const struct key_type *type,
+                                  const char *description)
+
+    This searches the keyring tree specified for a matching key. Error ENOKEY
+    is returned upon failure. If successful, the returned key will need to be
+    released.
+
+
+(*) To check the validity of a key, this function can be called:
+
+       int validate_key(struct key *key);
+
+    This checks that the key in question hasn't expired or and hasn't been
+    revoked. Should the key be invalid, error EKEYEXPIRED or EKEYREVOKED will
+    be returned. If the key is NULL or if CONFIG_KEYS is not set then 0 will be
+    returned (in the latter case without parsing the argument).
+
+
+(*) To register a key type, the following function should be called:
+
+       int register_key_type(struct key_type *type);
+
+    This will return error EEXIST if a type of the same name is already
+    present.
+
+
+(*) To unregister a key type, call:
+
+       void unregister_key_type(struct key_type *type);
+
+
+===================
+DEFINING A KEY TYPE
+===================
+
+A kernel service may want to define its own key type. For instance, an AFS
+filesystem might want to define a Kerberos 5 ticket key type. To do this, it
+author fills in a struct key_type and registers it with the system.
+
+The structure has a number of fields, some of which are mandatory:
+
+ (*) const char *name
+
+     The name of the key type. This is used to translate a key type name
+     supplied by userspace into a pointer to the structure.
+
+
+ (*) size_t def_datalen
+
+     This is optional - it supplies the default payload data length as
+     contributed to the quota. If the key type's payload is always or almost
+     always the same size, then this is a more efficient way to do things.
+
+     The data length (and quota) on a particular key can always be changed
+     during instantiation or update by calling:
+
+       int key_payload_reserve(struct key *key, size_t datalen);
+
+     With the revised data length. Error EDQUOT will be returned if this is
+     not viable.
+
+
+ (*) int (*instantiate)(struct key *key, const void *data, size_t datalen);
+
+     This method is called to attach a payload to a key during construction.
+     The payload attached need not bear any relation to the data passed to
+     this function.
+
+     If the amount of data attached to the key differs from the size in
+     keytype->def_datalen, then key_payload_reserve() should be called.
+
+     This method does not have to lock the key in order to attach a payload.
+     The fact that KEY_FLAG_INSTANTIATED is not set in key->flags prevents
+     anything else from gaining access to the key.
+
+     This method may sleep if it wishes.
+
+
+ (*) int (*duplicate)(struct key *key, const struct key *source);
+
+     If this type of key can be duplicated, then this method should be
+     provided. It is called to copy the payload attached to the source into
+     the new key. The data length on the new key will have been updated and
+     the quota adjusted already.
+
+     This method will be called with the source key's semaphore read-locked to
+     prevent its payload from being changed. It is safe to sleep here.
+
+
+ (*) int (*update)(struct key *key, const void *data, size_t datalen);
+
+     If this type of key can be updated, then this method should be
+     provided. It is called to update a key's payload from the blob of data
+     provided.
+
+     key_payload_reserve() should be called if the data length might change
+     before any changes are actually made. Note that if this succeeds, the
+     type is committed to changing the key because it's already been altered,
+     so all memory allocation must be done first.
+
+     key_payload_reserve() should be called with the key->lock write locked,
+     and the changes to the key's attached payload should be made before the
+     key is locked.
+
+     The key will have its semaphore write-locked before this method is
+     called. Any changes to the key should be made with the key's rwlock
+     write-locked also. It is safe to sleep here.
+
+
+ (*) int (*match)(const struct key *key, const void *desc);
+
+     This method is called to match a key against a description. It should
+     return non-zero if the two match, zero if they don't.
+
+     This method should not need to lock the key in any way. The type and
+     description can be considered invariant, and the payload should not be
+     accessed (the key may not yet be instantiated).
+
+     It is not safe to sleep in this method; the caller may hold spinlocks.
+
+
+ (*) void (*destroy)(struct key *key);
+
+     This method is optional. It is called to discard the payload data on a
+     key when it is being destroyed.
+
+     This method does not need to lock the key; it can consider the key as
+     being inaccessible. Note that the key's type may have changed before this
+     function is called.
+
+     It is not safe to sleep in this method; the caller may hold spinlocks.
+
+
+ (*) void (*describe)(const struct key *key, struct seq_file *p);
+
+     This method is optional. It is called during /proc/keys reading to
+     summarise a key's description and payload in text form.
+
+     This method will be called with the key's rwlock read-locked. This will
+     prevent the key's payload and state changing; also the description should
+     not change. This also means it is not safe to sleep in this method.
+
+
+ (*) long (*read)(const struct key *key, char __user *buffer, size_t buflen);
+
+     This method is optional. It is called by KEYCTL_READ to translate the
+     key's payload into something a blob of data for userspace to deal
+     with. Ideally, the blob should be in the same format as that passed in to
+     the instantiate and update methods.
+
+     If successful, the blob size that could be produced should be returned
+     rather than the size copied.
+
+     This method will be called with the key's semaphore read-locked. This
+     will prevent the key's payload changing. It is not necessary to also
+     read-lock key->lock when accessing the key's payload. It is safe to sleep
+     in this method, such as might happen when the userspace buffer is
+     accessed.
+
+
+============================
+REQUEST-KEY CALLBACK SERVICE
+============================
+
+To create a new key, the kernel will attempt to execute the following command
+line:
+
+       /sbin/request-key create <key> <uid> <gid> \
+               <threadring> <processring> <sessionring> <callout_info>
+
+<key> is the key being constructed, and the three keyrings are the process
+keyrings from the process that caused the search to be issued. These are
+included for two reasons:
+
+  (1) There may be an authentication token in one of the keyrings that is
+      required to obtain the key, eg: a Kerberos Ticket-Granting Ticket.
+
+  (2) The new key should probably be cached in one of these rings.
+
+This program should set it UID and GID to those specified before attempting to
+access any more keys. It may then look around for a user specific process to
+hand the request off to (perhaps a path held in placed in another key by, for
+example, the KDE desktop manager).
+
+The program (or whatever it calls) should finish construction of the key by
+calling KEYCTL_INSTANTIATE, which also permits it to cache the key in one of
+the keyrings (probably the session ring) before returning. Alternatively, the
+key can be marked as negative with KEYCTL_NEGATE; this also permits the key to
+be cached in one of the keyrings.
+
+If it returns with the key remaining in the unconstructed state, the key will
+be marked as being negative, it will be added to the session keyring, and an
+error will be returned to the key requestor.
+
+Supplementary information may be provided from whoever or whatever invoked
+this service. This will be passed as the <callout_info> parameter. If no such
+information was made available, then "-" will be passed as this parameter
+instead.
+
+
+Similarly, the kernel may attempt to update an expired or a soon to expire key
+by executing:
+
+       /sbin/request-key update <key> <uid> <gid> \
+               <threadring> <processring> <sessionring>
+
+In this case, the program isn't required to actually attach the key to a ring;
+the rings are provided for reference.
diff -urN malta/linux/Documentation/kref.txt malta/linux/Documentation/kref.txt
--- malta/linux/Documentation/kref.txt  1970/01/01 00:00:00
+++ malta/linux/Documentation/kref.txt  2005-06-21 14:20:31.125758000 +0100     
1.1.1000.1
@@ -0,0 +1,216 @@
+
+krefs allow you to add reference counters to your objects.  If you
+have objects that are used in multiple places and passed around, and
+you don't have refcounts, your code is almost certainly broken.  If
+you want refcounts, krefs are the way to go.
+
+To use a kref, add one to your data structures like:
+
+struct my_data
+{
+       .
+       .
+       struct kref refcount;
+       .
+       .
+};
+
+The kref can occur anywhere within the data structure.
+
+You must initialize the kref after you allocate it.  To do this, call
+kref_init as so:
+
+     struct my_data *data;
+
+     data = kmalloc(sizeof(*data), GFP_KERNEL);
+     if (!data)
+            return -ENOMEM;
+     kref_init(&data->refcount);
+
+This sets the refcount in the kref to 1.
+
+Once you have an initialized kref, you must follow the following
+rules:
+
+1) If you make a non-temporary copy of a pointer, especially if
+   it can be passed to another thread of execution, you must
+   increment the refcount with kref_get() before passing it off:
+       kref_get(&data->refcount);
+   If you already have a valid pointer to a kref-ed structure (the
+   refcount cannot go to zero) you may do this without a lock.
+
+2) When you are done with a pointer, you must call kref_put():
+       kref_put(&data->refcount, data_release);
+   If this is the last reference to the pointer, the release
+   routine will be called.  If the code never tries to get
+   a valid pointer to a kref-ed structure without already
+   holding a valid pointer, it is safe to do this without
+   a lock.
+
+3) If the code attempts to gain a reference to a kref-ed structure
+   without already holding a valid pointer, it must serialize access
+   where a kref_put() cannot occur during the kref_get(), and the
+   structure must remain valid during the kref_get().
+
+For example, if you allocate some data and then pass it to another
+thread to process:
+
+void data_release(struct kref *ref)
+{
+       struct my_data *data = container_of(ref, struct my_data, refcount);
+       kfree(data);
+}
+
+void more_data_handling(void *cb_data)
+{
+       struct my_data *data = cb_data;
+       .
+       . do stuff with data here
+       .
+       kref_put(data, data_release);
+}
+
+int my_data_handler(void)
+{
+       int rv = 0;
+       struct my_data *data;
+       struct task_struct *task;
+       data = kmalloc(sizeof(*data), GFP_KERNEL);
+       if (!data)
+               return -ENOMEM;
+       kref_init(&data->refcount);
+
+       kref_get(&data->refcount);
+       task = kthread_run(more_data_handling, data, "more_data_handling");
+       if (task == ERR_PTR(-ENOMEM)) {
+               rv = -ENOMEM;
+               kref_put(&data->refcount, data_release);
+               goto out;
+       }
+
+       .
+       . do stuff with data here
+       .
+ out:
+       kref_put(&data->refcount, data_release);
+       return rv;
+}
+
+This way, it doesn't matter what order the two threads handle the
+data, the kref_put() handles knowing when the data is not referenced
+any more and releasing it.  The kref_get() does not require a lock,
+since we already have a valid pointer that we own a refcount for.  The
+put needs no lock because nothing tries to get the data without
+already holding a pointer.
+
+Note that the "before" in rule 1 is very important.  You should never
+do something like:
+
+       task = kthread_run(more_data_handling, data, "more_data_handling");
+       if (task == ERR_PTR(-ENOMEM)) {
+               rv = -ENOMEM;
+               goto out;
+       } else
+               /* BAD BAD BAD - get is after the handoff */
+               kref_get(&data->refcount);
+
+Don't assume you know what you are doing and use the above construct.
+First of all, you may not know what you are doing.  Second, you may
+know what you are doing (there are some situations where locking is
+involved where the above may be legal) but someone else who doesn't
+know what they are doing may change the code or copy the code.  It's
+bad style.  Don't do it.
+
+There are some situations where you can optimize the gets and puts.
+For instance, if you are done with an object and enqueuing it for
+something else or passing it off to something else, there is no reason
+to do a get then a put:
+
+       /* Silly extra get and put */
+       kref_get(&obj->ref);
+       enqueue(obj);
+       kref_put(&obj->ref, obj_cleanup);
+
+Just do the enqueue.  A comment about this is always welcome:
+
+       enqueue(obj);
+       /* We are done with obj, so we pass our refcount off
+          to the queue.  DON'T TOUCH obj AFTER HERE! */
+
+The last rule (rule 3) is the nastiest one to handle.  Say, for
+instance, you have a list of items that are each kref-ed, and you wish
+to get the first one.  You can't just pull the first item off the list
+and kref_get() it.  That violates rule 3 because you are not already
+holding a valid pointer.  You must add locks or semaphores.  For
+instance:
+
+static DECLARE_MUTEX(sem);
+static LIST_HEAD(q);
+struct my_data
+{
+       struct kref      refcount;
+       struct list_head link;
+};
+
+static struct my_data *get_entry()
+{
+       struct my_data *entry = NULL;
+       down(&sem);
+       if (!list_empty(&q)) {
+               entry = container_of(q.next, struct my_q_entry, link);
+               kref_get(&entry->refcount);
+       }
+       up(&sem);
+       return entry;
+}
+
+static void release_entry(struct kref *ref)
+{
+       struct my_data *entry = container_of(ref, struct my_data, refcount);
+
+       list_del(&entry->link);
+       kfree(entry);
+}
+
+static void put_entry(struct my_data *entry)
+{
+       down(&sem);
+       kref_put(&entry->refcount, release_entry);
+       up(&sem);
+}
+
+The kref_put() return value is useful if you do not want to hold the
+lock during the whole release operation.  Say you didn't want to call
+kfree() with the lock held in the example above (since it is kind of
+pointless to do so).  You could use kref_put() as follows:
+
+static void release_entry(struct kref *ref)
+{
+       /* All work is done after the return from kref_put(). */
+}
+
+static void put_entry(struct my_data *entry)
+{
+       down(&sem);
+       if (kref_put(&entry->refcount, release_entry)) {
+               list_del(&entry->link);
+               up(&sem);
+               kfree(entry);
+       } else
+               up(&sem);
+}
+
+This is really more useful if you have to call other routines as part
+of the free operations that could take a long time or might claim the
+same lock.  Note that doing everything in the release routine is still
+preferred as it is a little neater.
+
+
+Corey Minyard <minyard@acm.org>
+
+A lot of this was lifted from Greg Kroah-Hartman's 2004 OLS paper and
+presentation on krefs, which can be found at:
+  
http://www.kroah.com/linux/talks/ols_2004_kref_paper/Reprint-Kroah-Hartman-OLS2004.pdf
+and:
+  http://www.kroah.com/linux/talks/ols_2004_kref_talk/
+
diff -urN malta/linux/Documentation/nommu-mmap.txt 
malta/linux/Documentation/nommu-mmap.txt
--- malta/linux/Documentation/nommu-mmap.txt    1970/01/01 00:00:00
+++ malta/linux/Documentation/nommu-mmap.txt    2005-06-21 14:20:31.138114000 
+0100     1.2.1000.1
@@ -0,0 +1,198 @@
+                        =============================
+                        NO-MMU MEMORY MAPPING SUPPORT
+                        =============================
+
+The kernel has limited support for memory mapping under no-MMU conditions, such
+as are used in uClinux environments. From the userspace point of view, memory
+mapping is made use of in conjunction with the mmap() system call, the shmat()
+call and the execve() system call. From the kernel's point of view, execve()
+mapping is actually performed by the binfmt drivers, which call back into the
+mmap() routines to do the actual work.
+
+Memory mapping behaviour also involves the way fork(), vfork(), clone() and
+ptrace() work. Under uClinux there is no fork(), and clone() must be supplied
+the CLONE_VM flag.
+
+The behaviour is similar between the MMU and no-MMU cases, but not identical;
+and it's also much more restricted in the latter case:
+
+ (*) Anonymous mapping, MAP_PRIVATE
+
+       In the MMU case: VM regions backed by arbitrary pages; copy-on-write
+       across fork.
+
+       In the no-MMU case: VM regions backed by arbitrary contiguous runs of
+       pages.
+
+ (*) Anonymous mapping, MAP_SHARED
+
+       These behave very much like private mappings, except that they're
+       shared across fork() or clone() without CLONE_VM in the MMU case. Since
+       the no-MMU case doesn't support these, behaviour is identical to
+       MAP_PRIVATE there.
+
+ (*) File, MAP_PRIVATE, PROT_READ / PROT_EXEC, !PROT_WRITE
+
+       In the MMU case: VM regions backed by pages read from file; changes to
+       the underlying file are reflected in the mapping; copied across fork.
+
+       In the no-MMU case:
+
+         - If one exists, the kernel will re-use an existing mapping to the
+           same segment of the same file if that has compatible permissions,
+           even if this was created by another process.
+
+         - If possible, the file mapping will be directly on the backing device
+           if the backing device has the BDI_CAP_MAP_DIRECT capability and
+           appropriate mapping protection capabilities. Ramfs, romfs, cramfs
+           and mtd might all permit this.
+
+        - If the backing device device can't or won't permit direct sharing,
+           but does have the BDI_CAP_MAP_COPY capability, then a copy of the
+           appropriate bit of the file will be read into a contiguous bit of
+           memory and any extraneous space beyond the EOF will be cleared
+
+        - Writes to the file do not affect the mapping; writes to the mapping
+          are visible in other processes (no MMU protection), but should not
+          happen.
+
+ (*) File, MAP_PRIVATE, PROT_READ / PROT_EXEC, PROT_WRITE
+
+       In the MMU case: like the non-PROT_WRITE case, except that the pages in
+       question get copied before the write actually happens. From that point
+       on writes to the file underneath that page no longer get reflected into
+       the mapping's backing pages. The page is then backed by swap instead.
+
+       In the no-MMU case: works much like the non-PROT_WRITE case, except
+       that a copy is always taken and never shared.
+
+ (*) Regular file / blockdev, MAP_SHARED, PROT_READ / PROT_EXEC / PROT_WRITE
+
+       In the MMU case: VM regions backed by pages read from file; changes to
+       pages written back to file; writes to file reflected into pages backing
+       mapping; shared across fork.
+
+       In the no-MMU case: not supported.
+
+ (*) Memory backed regular file, MAP_SHARED, PROT_READ / PROT_EXEC / PROT_WRITE
+
+       In the MMU case: As for ordinary regular files.
+
+       In the no-MMU case: The filesystem providing the memory-backed file
+       (such as ramfs or tmpfs) may choose to honour an open, truncate, mmap
+       sequence by providing a contiguous sequence of pages to map. In that
+       case, a shared-writable memory mapping will be possible. It will work
+       as for the MMU case. If the filesystem does not provide any such
+       support, then the mapping request will be denied.
+
+ (*) Memory backed blockdev, MAP_SHARED, PROT_READ / PROT_EXEC / PROT_WRITE
+
+       In the MMU case: As for ordinary regular files.
+
+       In the no-MMU case: As for memory backed regular files, but the
+       blockdev must be able to provide a contiguous run of pages without
+       truncate being called. The ramdisk driver could do this if it allocated
+       all its memory as a contiguous array upfront.
+
+ (*) Memory backed chardev, MAP_SHARED, PROT_READ / PROT_EXEC / PROT_WRITE
+
+       In the MMU case: As for ordinary regular files.
+
+       In the no-MMU case: The character device driver may choose to honour
+       the mmap() by providing direct access to the underlying device if it
+       provides memory or quasi-memory that can be accessed directly. Examples
+       of such are frame buffers and flash devices. If the driver does not
+       provide any such support, then the mapping request will be denied.
+
+
+============================
+FURTHER NOTES ON NO-MMU MMAP
+============================
+
+ (*) A request for a private mapping of less than a page in size may not return
+     a page-aligned buffer. This is because the kernel calls kmalloc() to
+     allocate the buffer, not get_free_page().
+
+ (*) A list of all the mappings on the system is visible through /proc/maps in
+     no-MMU mode.
+
+ (*) Supplying MAP_FIXED or a requesting a particular mapping address will
+     result in an error.
+
+ (*) Files mapped privately usually have to have a read method provided by the
+     driver or filesystem so that the contents can be read into the memory
+     allocated if mmap() chooses not to map the backing device directly. An
+     error will result if they don't. This is most likely to be encountered
+     with character device files, pipes, fifos and sockets.
+
+============================================
+PROVIDING SHAREABLE CHARACTER DEVICE SUPPORT
+============================================
+
+To provide shareable character device support, a driver must provide a
+file->f_op->get_unmapped_area() operation. The mmap() routines will call this
+to get a proposed address for the mapping. This may return an error if it
+doesn't wish to honour the mapping because it's too long, at a weird offset,
+under some unsupported combination of flags or whatever.
+
+The driver should also provide backing device information with capabilities set
+to indicate the permitted types of mapping on such devices. The default is
+assumed to be readable and writable, not executable, and only shareable
+directly (can't be copied).
+
+The file->f_op->mmap() operation will be called to actually inaugurate the
+mapping. It can be rejected at that point. Returning the ENOSYS error will
+cause the mapping to be copied instead if BDI_CAP_MAP_COPY is specified.
+
+The vm_ops->close() routine will be invoked when the last mapping on a chardev
+is removed. An existing mapping will be shared, partially or not, if possible
+without notifying the driver.
+
+It is permitted also for the file->f_op->get_unmapped_area() operation to
+return -ENOSYS. This will be taken to mean that this operation just doesn't
+want to handle it, despite the fact it's got an operation. For instance, it
+might try directing the call to a secondary driver which turns out not to
+implement it. Such is the case for the framebuffer driver which attempts to
+direct the call to the device-specific driver. Under such circumstances, the
+mapping request will be rejected if BDI_CAP_MAP_COPY is not specified, and a
+copy mapped otherwise.
+
+IMPORTANT NOTE:
+
+       Some types of device may present a different appearance to anyone
+       looking at them in certain modes. Flash chips can be like this; for
+       instance if they're in programming or erase mode, you might see the
+       status reflected in the mapping, instead of the data.
+
+       In such a case, care must be taken lest userspace see a shared or a
+       private mapping showing such information when the driver is busy
+       controlling the device. Remember especially: private executable
+       mappings may still be mapped directly off the device under some
+       circumstances!
+
+
+==============================================
+PROVIDING SHAREABLE MEMORY-BACKED FILE SUPPORT
+==============================================
+
+Provision of shared mappings on memory backed files is similar to the provision
+of support for shared mapped character devices. The main difference is that the
+filesystem providing the service will probably allocate a contiguous collection
+of pages and permit mappings to be made on that.
+
+It is recommended that a truncate operation applied to such a file that
+increases the file size, if that file is empty, be taken as a request to gather
+enough pages to honour a mapping. This is required to support POSIX shared
+memory.
+
+Memory backed devices are indicated by the mapping's backing device info having
+the memory_backed flag set.
+
+
+========================================
+PROVIDING SHAREABLE BLOCK DEVICE SUPPORT
+========================================
+
+Provision of shared mappings on block device files is exactly the same as for
+character devices. If there isn't a real device underneath, then the driver
+should allocate sufficient contiguous memory to honour any supported mapping.
diff -urN malta/linux/Documentation/prio_tree.txt 
malta/linux/Documentation/prio_tree.txt
--- malta/linux/Documentation/prio_tree.txt     1970/01/01 00:00:00
+++ malta/linux/Documentation/prio_tree.txt     2005-06-21 14:20:31.154050000 
+0100     1.1.1000.1
@@ -0,0 +1,107 @@
+The prio_tree.c code indexes vmas using 3 different indexes:
+       * heap_index  = vm_pgoff + vm_size_in_pages : end_vm_pgoff
+       * radix_index = vm_pgoff : start_vm_pgoff
+       * size_index = vm_size_in_pages
+
+A regular radix-priority-search-tree indexes vmas using only heap_index and
+radix_index. The conditions for indexing are:
+       * ->heap_index >= ->left->heap_index &&
+               ->heap_index >= ->right->heap_index
+       * if (->heap_index == ->left->heap_index)
+               then ->radix_index < ->left->radix_index;
+       * if (->heap_index == ->right->heap_index)
+               then ->radix_index < ->right->radix_index;
+       * nodes are hashed to left or right subtree using radix_index
+         similar to a pure binary radix tree.
+
+A regular radix-priority-search-tree helps to store and query
+intervals (vmas). However, a regular radix-priority-search-tree is only
+suitable for storing vmas with different radix indices (vm_pgoff).
+
+Therefore, the prio_tree.c extends the regular radix-priority-search-tree
+to handle many vmas with the same vm_pgoff. Such vmas are handled in
+2 different ways: 1) All vmas with the same radix _and_ heap indices are
+linked using vm_set.list, 2) if there are many vmas with the same radix
+index, but different heap indices and if the regular radix-priority-search
+tree cannot index them all, we build an overflow-sub-tree that indexes such
+vmas using heap and size indices instead of heap and radix indices. For
+example, in the figure below some vmas with vm_pgoff = 0 (zero) are
+indexed by regular radix-priority-search-tree whereas others are pushed
+into an overflow-subtree. Note that all vmas in an overflow-sub-tree have
+the same vm_pgoff (radix_index) and if necessary we build different
+overflow-sub-trees to handle each possible radix_index. For example,
+in figure we have 3 overflow-sub-trees corresponding to radix indices
+0, 2, and 4.
+
+In the final tree the first few (prio_tree_root->index_bits) levels
+are indexed using heap and radix indices whereas the overflow-sub-trees below
+those levels (i.e. levels prio_tree_root->index_bits + 1 and higher) are
+indexed using heap and size indices. In overflow-sub-trees the size_index
+is used for hashing the nodes to appropriate places.
+
+Now, an example prio_tree:
+
+  vmas are represented [radix_index, size_index, heap_index]
+                 i.e., [start_vm_pgoff, vm_size_in_pages, end_vm_pgoff]
+
+level  prio_tree_root->index_bits = 3
+-----
+                                                                               
                _
+  0                                                    [0,7,7]                 
                 |
+                                                       /     \                 
                 |
+                                     ------------------       ------------     
                 |     Regular
+                                    /                                     \    
                 |  radix priority
+  1                            [1,6,7]                                   
[4,3,7]                |   search tree
+                               /     \                                   /     
\                |
+                        -------       -----                        ------      
 -----           |  heap-and-radix
+                       /                   \                      /            
      \          |      indexed
+  2                [0,6,6]                [2,5,7]              [5,2,7]         
    [6,1,7]      |
+                   /     \                /     \              /     \         
    /     \      |
+  3            [0,5,5] [1,5,6]         [2,4,6] [3,4,7]     [4,2,6] [5,1,6]     
[6,0,6] [7,0,7]  |
+                  /                       /                   /                
                _
+                  /                      /                   /                 
                _
+  4          [0,4,4]                 [2,3,5]              [4,1,5]              
                 |
+                /                       /                    /                 
                 |
+  5         [0,3,3]                 [2,2,4]              [4,0,4]               
                 |  Overflow-sub-trees
+               /                       /                                       
                 |
+  6        [0,2,2]                 [2,1,3]                                     
                 |    heap-and-size
+              /                       /                                        
                 |       indexed
+  7       [0,1,1]                 [2,0,2]                                      
                 |
+             /                                                                 
                 |
+  8      [0,0,0]                                                               
                 |
+                                                                               
                _
+
+Note that we use prio_tree_root->index_bits to optimize the height
+of the heap-and-radix indexed tree. Since prio_tree_root->index_bits is
+set according to the maximum end_vm_pgoff mapped, we are sure that all
+bits (in vm_pgoff) above prio_tree_root->index_bits are 0 (zero). Therefore,
+we only use the first prio_tree_root->index_bits as radix_index.
+Whenever index_bits is increased in prio_tree_expand, we shuffle the tree
+to make sure that the first prio_tree_root->index_bits levels of the tree
+is indexed properly using heap and radix indices.
+
+We do not optimize the height of overflow-sub-trees using index_bits.
+The reason is: there can be many such overflow-sub-trees and all of
+them have to be suffled whenever the index_bits increases. This may involve
+walking the whole prio_tree in prio_tree_insert->prio_tree_expand code
+path which is not desirable. Hence, we do not optimize the height of the
+heap-and-size indexed overflow-sub-trees using prio_tree->index_bits.
+Instead the overflow sub-trees are indexed using full BITS_PER_LONG bits
+of size_index. This may lead to skewed sub-trees because most of the
+higher significant bits of the size_index are likely to be be 0 (zero). In
+the example above, all 3 overflow-sub-trees are skewed. This may marginally
+affect the performance. However, processes rarely map many vmas with the
+same start_vm_pgoff but different end_vm_pgoffs. Therefore, we normally
+do not require overflow-sub-trees to index all vmas.
+
+From the above discussion it is clear that the maximum height of
+a prio_tree can be prio_tree_root->index_bits + BITS_PER_LONG.
+However, in most of the common cases we do not need overflow-sub-trees,
+so the tree height in the common cases will be prio_tree_root->index_bits.
+
+It is fair to mention here that the prio_tree_root->index_bits
+is increased on demand, however, the index_bits is not decreased when
+vmas are removed from the prio_tree. That's tricky to do. Hence, it's
+left as a home work problem.
+
+
diff -urN malta/linux/Documentation/sched-stats.txt 
malta/linux/Documentation/sched-stats.txt
--- malta/linux/Documentation/sched-stats.txt   1970/01/01 00:00:00
+++ malta/linux/Documentation/sched-stats.txt   2005-06-21 14:20:31.169806000 
+0100     1.1.1000.1
@@ -0,0 +1,153 @@
+Version 10 of schedstats includes support for sched_domains, which
+hit the mainline kernel in 2.6.7.  Some counters make more sense to be
+per-runqueue; other to be per-domain.  Note that domains (and their associated
+information) will only be pertinent and available on machines utilizing
+CONFIG_SMP.
+
+In version 10 of schedstat, there is at least one level of domain
+statistics for each cpu listed, and there may well be more than one
+domain.  Domains have no particular names in this implementation, but
+the highest numbered one typically arbitrates balancing across all the
+cpus on the machine, while domain0 is the most tightly focused domain,
+sometimes balancing only between pairs of cpus.  At this time, there
+are no architectures which need more than three domain levels. The first
+field in the domain stats is a bit map indicating which cpus are affected
+by that domain.
+
+These fields are counters, and only increment.  Programs which make use
+of these will need to start with a baseline observation and then calculate
+the change in the counters at each subsequent observation.  A perl script
+which does this for many of the fields is available at
+
+    http://eaglet.rain.com/rick/linux/schedstat/
+
+Note that any such script will necessarily be version-specific, as the main
+reason to change versions is changes in the output format.  For those wishing
+to write their own scripts, the fields are described here.
+
+CPU statistics
+--------------
+cpu<N> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 
28
+
+NOTE: In the sched_yield() statistics, the active queue is considered empty
+    if it has only one process in it, since obviously the process calling
+    sched_yield() is that process.
+
+First four fields are sched_yield() statistics:
+     1) # of times both the active and the expired queue were empty
+     2) # of times just the active queue was empty
+     3) # of times just the expired queue was empty
+     4) # of times sched_yield() was called
+
+Next four are schedule() statistics:
+     5) # of times the active queue had at least one other process on it
+     6) # of times we switched to the expired queue and reused it
+     7) # of times schedule() was called
+     8) # of times schedule() left the processor idle
+
+Next four are active_load_balance() statistics:
+     9) # of times active_load_balance() was called
+    10) # of times active_load_balance() caused this cpu to gain a task
+    11) # of times active_load_balance() caused this cpu to lose a task
+    12) # of times active_load_balance() tried to move a task and failed
+
+Next three are try_to_wake_up() statistics:
+    13) # of times try_to_wake_up() was called
+    14) # of times try_to_wake_up() successfully moved the awakening task
+    15) # of times try_to_wake_up() attempted to move the awakening task
+
+Next two are wake_up_new_task() statistics:
+    16) # of times wake_up_new_task() was called
+    17) # of times wake_up_new_task() successfully moved the new task
+
+Next one is a sched_migrate_task() statistic:
+    18) # of times sched_migrate_task() was called
+
+Next one is a sched_balance_exec() statistic:
+    19) # of times sched_balance_exec() was called
+
+Next three are statistics describing scheduling latency:
+    20) sum of all time spent running by tasks on this processor (in ms)
+    21) sum of all time spent waiting to run by tasks on this processor (in ms)
+    22) # of tasks (not necessarily unique) given to the processor
+
+The last six are statistics dealing with pull_task():
+    23) # of times pull_task() moved a task to this cpu when newly idle
+    24) # of times pull_task() stole a task from this cpu when another cpu
+       was newly idle
+    25) # of times pull_task() moved a task to this cpu when idle
+    26) # of times pull_task() stole a task from this cpu when another cpu
+       was idle
+    27) # of times pull_task() moved a task to this cpu when busy
+    28) # of times pull_task() stole a task from this cpu when another cpu
+       was busy
+
+
+Domain statistics
+-----------------
+One of these is produced per domain for each cpu described. (Note that if
+CONFIG_SMP is not defined, *no* domains are utilized and these lines
+will not appear in the output.)
+
+domain<N> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+
+The first field is a bit mask indicating what cpus this domain operates over.
+
+The next fifteen are a variety of load_balance() statistics:
+
+     1) # of times in this domain load_balance() was called when the cpu
+       was idle
+     2) # of times in this domain load_balance() was called when the cpu
+       was busy
+     3) # of times in this domain load_balance() was called when the cpu
+       was just becoming idle
+     4) # of times in this domain load_balance() tried to move one or more
+       tasks and failed, when the cpu was idle
+     5) # of times in this domain load_balance() tried to move one or more
+       tasks and failed, when the cpu was busy
+     6) # of times in this domain load_balance() tried to move one or more
+       tasks and failed, when the cpu was just becoming idle
+     7) sum of imbalances discovered (if any) with each call to
+       load_balance() in this domain when the cpu was idle
+     8) sum of imbalances discovered (if any) with each call to
+       load_balance() in this domain when the cpu was busy
+     9) sum of imbalances discovered (if any) with each call to
+       load_balance() in this domain when the cpu was just becoming idle
+    10) # of times in this domain load_balance() was called but did not find
+       a busier queue while the cpu was idle
+    11) # of times in this domain load_balance() was called but did not find
+       a busier queue while the cpu was busy
+    12) # of times in this domain load_balance() was called but did not find
+       a busier queue while the cpu was just becoming idle
+    13) # of times in this domain a busier queue was found while the cpu was
+       idle but no busier group was found
+    14) # of times in this domain a busier queue was found while the cpu was
+       busy but no busier group was found
+    15) # of times in this domain a busier queue was found while the cpu was
+       just becoming idle but no busier group was found
+
+Next two are sched_balance_exec() statistics:
+    17) # of times in this domain sched_balance_exec() successfully pushed
+       a task to a new cpu
+    18) # of times in this domain sched_balance_exec() tried but failed to
+       push a task to a new cpu
+
+Next two are try_to_wake_up() statistics:
+    19) # of times in this domain try_to_wake_up() tried to move a task based
+       on affinity and cache warmth
+    20) # of times in this domain try_to_wake_up() tried to move a task based
+       on load balancing
+
+
+/proc/<pid>/schedstat
+----------------
+schedstats also adds a new /proc/<pid/schedstat file to include some of
+the same information on a per-process level.  There are three fields in
+this file correlating to fields 20, 21, and 22 in the CPU fields, but
+they only apply for that process.
+
+A program could be easily written to make use of these extra fields to
+report on how well a particular process or set of processes is faring
+under the scheduler's policies.  A simple version of such a program is
+available at
+    http://eaglet.rain.com/rick/linux/schedstat/v10/latency.c
diff -urN malta/linux/Documentation/seclvl.txt 
malta/linux/Documentation/seclvl.txt
--- malta/linux/Documentation/seclvl.txt        1970/01/01 00:00:00
+++ malta/linux/Documentation/seclvl.txt        2005-06-21 14:20:31.186009000 
+0100     1.1.1000.1
@@ -0,0 +1,97 @@
+BSD Secure Levels Linux Security Module
+Michael A. Halcrow <mike@halcrow.us>
+
+
+Introduction
+
+Under the BSD Secure Levels security model, sets of policies are
+associated with levels. Levels range from -1 to 2, with -1 being the
+weakest and 2 being the strongest. These security policies are
+enforced at the kernel level, so not even the superuser is able to
+disable or circumvent them. This hardens the machine against attackers
+who gain root access to the system.
+
+
+Levels and Policies
+
+Level -1 (Permanently Insecure):
+ - Cannot increase the secure level
+
+Level 0 (Insecure):
+ - Cannot ptrace the init process
+
+Level 1 (Default):
+ - /dev/mem and /dev/kmem are read-only
+ - IMMUTABLE and APPEND extended attributes, if set, may not be unset
+ - Cannot load or unload kernel modules
+ - Cannot write directly to a mounted block device
+ - Cannot perform raw I/O operations
+ - Cannot perform network administrative tasks
+ - Cannot setuid any file
+
+Level 2 (Secure):
+ - Cannot decrement the system time
+ - Cannot write to any block device, whether mounted or not
+ - Cannot unmount any mounted filesystems
+
+
+Compilation
+
+To compile the BSD Secure Levels LSM, seclvl.ko, enable the
+SECURITY_SECLVL configuration option.  This is found under Security
+options -> BSD Secure Levels in the kernel configuration menu.
+
+
+Basic Usage
+
+Once the machine is in a running state, with all the necessary modules
+loaded and all the filesystems mounted, you can load the seclvl.ko
+module:
+
+# insmod seclvl.ko
+
+The module defaults to secure level 1, except when compiled directly
+into the kernel, in which case it defaults to secure level 0. To raise
+the secure level to 2, the administrator writes ``2'' to the
+seclvl/seclvl file under the sysfs mount point (assumed to be /sys in
+these examples):
+
+# echo -n "2" > /sys/seclvl/seclvl
+
+Alternatively, you can initialize the module at secure level 2 with
+the initlvl module parameter:
+
+# insmod seclvl.ko initlvl=2
+
+At this point, it is impossible to remove the module or reduce the
+secure level.  If the administrator wishes to have the option of doing
+so, he must provide a module parameter, sha1_passwd, that specifies
+the SHA1 hash of the password that can be used to reduce the secure
+level to 0.
+
+To generate this SHA1 hash, the administrator can use OpenSSL:
+
+# echo -n "boogabooga" | openssl sha1
+abeda4e0f33defa51741217592bf595efb8d289c
+
+In order to use password-instigated secure level reduction, the SHA1
+crypto module must be loaded or compiled into the kernel:
+
+# insmod sha1.ko
+
+The administrator can then insmod the seclvl module, including the
+SHA1 hash of the password:
+
+# insmod seclvl.ko
+         sha1_passwd=abeda4e0f33defa51741217592bf595efb8d289c
+
+To reduce the secure level, write the password to seclvl/passwd under
+your sysfs mount point:
+
+# echo -n "boogabooga" > /sys/seclvl/passwd
+
+The September 2004 edition of Sys Admin Magazine has an article about
+the BSD Secure Levels LSM.  I encourage you to refer to that article
+for a more in-depth treatment of this security module:
+
+http://www.samag.com/documents/s=9304/sam0409a/0409a.htm
diff -urN malta/linux/Documentation/sparse.txt 
malta/linux/Documentation/sparse.txt
--- malta/linux/Documentation/sparse.txt        1970/01/01 00:00:00
+++ malta/linux/Documentation/sparse.txt        2005-06-21 14:20:31.200823000 
+0100     1.1.1000.1
@@ -0,0 +1,72 @@
+Copyright 2004 Linus Torvalds
+Copyright 2004 Pavel Machek <pavel@suse.cz>
+
+Using sparse for typechecking
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+"__bitwise" is a type attribute, so you have to do something like this:
+
+        typedef int __bitwise pm_request_t;
+
+        enum pm_request {
+                PM_SUSPEND = (__force pm_request_t) 1,
+                PM_RESUME = (__force pm_request_t) 2
+        };
+
+which makes PM_SUSPEND and PM_RESUME "bitwise" integers (the "__force" is
+there because sparse will complain about casting to/from a bitwise type,
+but in this case we really _do_ want to force the conversion). And because
+the enum values are all the same type, now "enum pm_request" will be that
+type too.
+
+And with gcc, all the __bitwise/__force stuff goes away, and it all ends
+up looking just like integers to gcc.
+
+Quite frankly, you don't need the enum there. The above all really just
+boils down to one special "int __bitwise" type.
+
+So the simpler way is to just do
+
+        typedef int __bitwise pm_request_t;
+
+        #define PM_SUSPEND ((__force pm_request_t) 1)
+        #define PM_RESUME ((__force pm_request_t) 2)
+
+and you now have all the infrastructure needed for strict typechecking.
+
+One small note: the constant integer "0" is special. You can use a
+constant zero as a bitwise integer type without sparse ever complaining.
+This is because "bitwise" (as the name implies) was designed for making
+sure that bitwise types don't get mixed up (little-endian vs big-endian
+vs cpu-endian vs whatever), and there the constant "0" really _is_
+special.
+
+Modify top-level Makefile to say
+
+CHECK           = sparse -Wbitwise
+
+or you don't get any checking at all.
+
+
+Where to get sparse
+~~~~~~~~~~~~~~~~~~~
+
+With BK, you can just get it from
+
+        bk://sparse.bkbits.net/sparse
+
+and DaveJ has tar-balls at
+
+       http://www.codemonkey.org.uk/projects/bitkeeper/sparse/
+
+
+Once you have it, just do
+
+        make
+        make install
+
+as your regular user, and it will install sparse in your ~/bin directory.
+After that, doing a kernel make with "make C=1" will run sparse on all the
+C files that get recompiled, or with "make C=2" will run sparse on the
+files whether they need to be recompiled or not (ie the latter is fast way
+to check the whole tree if you have already built it).
diff -urN malta/linux/Documentation/stable_api_nonsense.txt 
malta/linux/Documentation/stable_api_nonsense.txt
--- malta/linux/Documentation/stable_api_nonsense.txt   1970/01/01 00:00:00
+++ malta/linux/Documentation/stable_api_nonsense.txt   2005-06-21 
14:20:31.215581000 +0100     1.2.1000.1
@@ -0,0 +1,193 @@
+The Linux Kernel Driver Interface
+(all of your questions answered and then some)
+
+Greg Kroah-Hartman <greg@kroah.com>
+
+This is being written to try to explain why Linux does not have a binary
+kernel interface, nor does it have a stable kernel interface.  Please
+realize that this article describes the _in kernel_ interfaces, not the
+kernel to userspace interfaces.  The kernel to userspace interface is
+the one that application programs use, the syscall interface.  That
+interface is _very_ stable over time, and will not break.  I have old
+programs that were built on a pre 0.9something kernel that still work
+just fine on the latest 2.6 kernel release.  This interface is the one
+that users and application programmers can count on being stable.
+
+
+Executive Summary
+-----------------
+You think you want a stable kernel interface, but you really do not, and
+you don't even know it.  What you want is a stable running driver, and
+you get that only if your driver is in the main kernel tree.  You also
+get lots of other good benefits if your driver is in the main kernel
+tree, all of which has made Linux into such a strong, stable, and mature
+operating system which is the reason you are using it in the first
+place.
+
+
+Intro
+-----
+
+It's only the odd person who wants to write a kernel driver that needs
+to worry about the in-kernel interfaces changing.  For the majority of
+the world, they neither see this interface, nor do they care about it at
+all.
+
+First off, I'm not going to address _any_ legal issues about closed
+source, hidden source, binary blobs, source wrappers, or any other term
+that describes kernel drivers that do not have their source code
+released under the GPL.  Please consult a lawyer if you have any legal
+questions, I'm a programmer and hence, I'm just going to be describing
+the technical issues here (not to make light of the legal issues, they
+are real, and you do need to be aware of them at all times.)
+
+So, there are two main topics here, binary kernel interfaces and stable
+kernel source interfaces.  They both depend on each other, but we will
+discuss the binary stuff first to get it out of the way.
+
+
+Binary Kernel Interface
+-----------------------
+Assuming that we had a stable kernel source interface for the kernel, a
+binary interface would naturally happen too, right?  Wrong.  Please
+consider the following facts about the Linux kernel:
+  - Depending on the version of the C compiler you use, different kernel
+    data structures will contain different alignment of structures, and
+    possibly include different functions in different ways (putting
+    functions inline or not.)  The individual function organization
+    isn't that important, but the different data structure padding is
+    very important.
+  - Depending on what kernel build options you select, a wide range of
+    different things can be assumed by the kernel:
+      - different structures can contain different fields
+      - Some functions may not be implemented at all, (i.e. some locks
+       compile away to nothing for non-SMP builds.)
+      - Parameter passing of variables from function to function can be
+       done in different ways (the CONFIG_REGPARM option controls
+       this.)
+      - Memory within the kernel can be aligned in different ways,
+       depending on the build options.
+  - Linux runs on a wide range of different processor architectures.
+    There is no way that binary drivers from one architecture will run
+    on another architecture properly.
+
+Now a number of these issues can be addressed by simply compiling your
+module for the exact specific kernel configuration, using the same exact
+C compiler that the kernel was built with.  This is sufficient if you
+want to provide a module for a specific release version of a specific
+Linux distribution.  But multiply that single build by the number of
+different Linux distributions and the number of different supported
+releases of the Linux distribution and you quickly have a nightmare of
+different build options on different releases.  Also realize that each
+Linux distribution release contains a number of different kernels, all
+tuned to different hardware types (different processor types and
+different options), so for even a single release you will need to create
+multiple versions of your module.
+
+Trust me, you will go insane over time if you try to support this kind
+of release, I learned this the hard way a long time ago...
+
+
+Stable Kernel Source Interfaces
+-------------------------------
+
+This is a much more "volatile" topic if you talk to people who try to
+keep a Linux kernel driver that is not in the main kernel tree up to
+date over time.
+
+Linux kernel development is continuous and at a rapid pace, never
+stopping to slow down.  As such, the kernel developers find bugs in
+current interfaces, or figure out a better way to do things.  If they do
+that, they then fix the current interfaces to work better.  When they do
+so, function names may change, structures may grow or shrink, and
+function parameters may be reworked.  If this happens, all of the
+instances of where this interface is used within the kernel are fixed up
+at the same time, ensuring that everything continues to work properly.
+
+As a specific examples of this, the in-kernel USB interfaces have
+undergone at least three different reworks over the lifetime of this
+subsystem.  These reworks were done to address a number of different
+issues:
+  - A change from a synchronous model of data streams to an asynchronous
+    one.  This reduced the complexity of a number of drivers and
+    increased the throughput of all USB drivers such that we are now
+    running almost all USB devices at their maximum speed possible.
+  - A change was made in the way data packets were allocated from the
+    USB core by USB drivers so that all drivers now needed to provide
+    more information to the USB core to fix a number of documented
+    deadlocks.
+
+This is in stark contrast to a number of closed source operating systems
+which have had to maintain their older USB interfaces over time.  This
+provides the ability for new developers to accidentally use the old
+interfaces and do things in improper ways, causing the stability of the
+operating system to suffer.
+
+In both of these instances, all developers agreed that these were
+important changes that needed to be made, and they were made, with
+relatively little pain.  If Linux had to ensure that it preserve a
+stable source interface, a new interface would have been created, and
+the older, broken one would have had to be maintained over time, leading
+to extra work for the USB developers.  Since all Linux USB developers do
+their work on their own time, asking programmers to do extra work for no
+gain, for free, is not a possibility.
+
+Security issues are also a very important for Linux.  When a
+security issue is found, it is fixed in a very short amount of time.  A
+number of times this has caused internal kernel interfaces to be
+reworked to prevent the security problem from occurring.  When this
+happens, all drivers that use the interfaces were also fixed at the
+same time, ensuring that the security problem was fixed and could not
+come back at some future time accidentally.  If the internal interfaces
+were not allowed to change, fixing this kind of security problem and
+insuring that it could not happen again would not be possible.
+
+Kernel interfaces are cleaned up over time.  If there is no one using a
+current interface, it is deleted.  This ensures that the kernel remains
+as small as possible, and that all potential interfaces are tested as
+well as they can be (unused interfaces are pretty much impossible to
+test for validity.)
+
+
+What to do
+----------
+
+So, if you have a Linux kernel driver that is not in the main kernel
+tree, what are you, a developer, supposed to do?  Releasing a binary
+driver for every different kernel version for every distribution is a
+nightmare, and trying to keep up with an ever changing kernel interface
+is also a rough job.
+
+Simple, get your kernel driver into the main kernel tree (remember we
+are talking about GPL released drivers here, if your code doesn't fall
+under this category, good luck, you are on your own here, you leech
+<insert link to leech comment from Andrew and Linus here>.)  If your
+driver is in the tree, and a kernel interface changes, it will be fixed
+up by the person who did the kernel change in the first place.  This
+ensures that your driver is always buildable, and works over time, with
+very little effort on your part.
+
+The very good side effects of having your driver in the main kernel tree
+are:
+  - The quality of the driver will rise as the maintenance costs (to the
+    original developer) will decrease.
+  - Other developers will add features to your driver.
+  - Other people will find and fix bugs in your driver.
+  - Other people will find tuning opportunities in your driver.
+  - Other people will update the driver for you when external interface
+    changes require it.
+  - The driver automatically gets shipped in all Linux distributions
+    without having to ask the distros to add it.
+    
+As Linux supports a larger number of different devices "out of the box"
+than any other operating system, and it supports these devices on more
+different processor architectures than any other operating system, this
+proven type of development model must be doing something right :)
+
+
+
+------
+
+Thanks to Randy Dunlap, Andrew Morton, David Brownell, Hanna Linder,
+Robert Love, and Nishanth Aravamudan for their review and comments on
+early drafts of this paper.
diff -urN malta/linux/Documentation/time_interpolators.txt 
malta/linux/Documentation/time_interpolators.txt
--- malta/linux/Documentation/time_interpolators.txt    1970/01/01 00:00:00
+++ malta/linux/Documentation/time_interpolators.txt    2005-06-21 
14:20:31.232632000 +0100     1.2.1000.1
@@ -0,0 +1,41 @@
+Time Interpolators
+------------------
+
+Time interpolators are a base of time calculation between timer ticks and
+allow an accurate determination of time down to the accuracy of the time
+source in nanoseconds.
+
+The architecture specific code typically provides gettimeofday and
+settimeofday under Linux. The time interpolator provides both if an arch
+defines CONFIG_TIME_INTERPOLATION. The arch still must set up timer tick
+operations and call the necessary functions to advance the clock.
+
+With the time interpolator a standardized interface exists for time
+interpolation between ticks. The provided logic is highly scalable
+and has been tested in SMP situations of up to 512 CPUs.
+
+If CONFIG_TIME_INTERPOLATION is defined then the architecture specific code
+(or the device drivers - like HPET) may register time interpolators.
+These are typically defined in the following way:
+
+static struct time_interpolator my_interpolator {
+       .frequency = MY_FREQUENCY,
+       .source = TIME_SOURCE_MMIO32,
+       .shift = 8,             /* scaling for higher accuracy */
+       .drift = -1,            /* Unknown drift */
+       .jitter = 0             /* time source is stable */
+};
+
+void time_init(void)
+{
+       ....
+       /* Initialization of the timer *.
+       my_interpolator.address = &my_timer;
+       register_time_interpolator(&my_interpolator);
+       ....
+}
+
+For more details see include/linux/timex.h and kernel/timer.c.
+
+Christoph Lameter <christoph@lameter.com>, October 31, 2004
+
diff -urN malta/linux/Documentation/tty.txt malta/linux/Documentation/tty.txt
--- malta/linux/Documentation/tty.txt   1970/01/01 00:00:00
+++ malta/linux/Documentation/tty.txt   2005-06-21 14:20:31.244414000 +0100     
1.4.1000.1
@@ -0,0 +1,198 @@
+
+                       The Lockronomicon
+
+Your guide to the ancient and twisted locking policies of the tty layer and
+the warped logic behind them. Beware all ye who read on.
+
+FIXME: still need to work out the full set of BKL assumptions and document
+them so they can eventually be killed off.
+
+
+Line Discipline
+---------------
+
+Line disciplines are registered with tty_register_ldisc() passing the
+discipline number and the ldisc structure. At the point of registration the 
+discipline must be ready to use and it is possible it will get used before
+the call returns success. If the call returns an error then it won't get
+called. Do not re-use ldisc numbers as they are part of the userspace ABI
+and writing over an existing ldisc will cause demons to eat your computer.
+After the return the ldisc data has been copied so you may free your own 
+copy of the structure. You must not re-register over the top of the line
+discipline even with the same data or your computer again will be eaten by
+demons.
+
+In order to remove a line discipline call tty_register_ldisc passing NULL.
+In ancient times this always worked. In modern times the function will
+return -EBUSY if the ldisc is currently in use. Since the ldisc referencing
+code manages the module counts this should not usually be a concern.
+
+Heed this warning: the reference count field of the registered copies of the
+tty_ldisc structure in the ldisc table counts the number of lines using this
+discipline. The reference count of the tty_ldisc structure within a tty 
+counts the number of active users of the ldisc at this instant. In effect it
+counts the number of threads of execution within an ldisc method (plus those
+about to enter and exit although this detail matters not).
+
+Line Discipline Methods
+-----------------------
+
+TTY side interfaces:
+
+close()                -       This is called on a terminal when the line
+                       discipline is being unplugged. At the point of
+                       execution no further users will enter the
+                       ldisc code for this tty. Can sleep.
+
+open()         -       Called when the line discipline is attached to
+                       the terminal. No other call into the line
+                       discipline for this tty will occur until it
+                       completes successfully. Can sleep.
+
+write()                -       A process is writing data through the line
+                       discipline.  Multiple write calls are serialized
+                       by the tty layer for the ldisc.  May sleep. 
+
+flush_buffer() -       May be called at any point between open and close.
+
+chars_in_buffer() -    Report the number of bytes in the buffer.
+
+set_termios()  -       Called on termios structure changes. The caller
+                       passes the old termios data and the current data
+                       is in the tty. Called under the termios semaphore so
+                       allowed to sleep. Serialized against itself only.
+
+read()         -       Move data from the line discipline to the user.
+                       Multiple read calls may occur in parallel and the
+                       ldisc must deal with serialization issues. May 
+                       sleep.
+
+poll()         -       Check the status for the poll/select calls. Multiple
+                       poll calls may occur in parallel. May sleep.
+
+ioctl()                -       Called when an ioctl is handed to the tty layer
+                       that might be for the ldisc. Multiple ioctl calls
+                       may occur in parallel. May sleep. 
+
+Driver Side Interfaces:
+
+receive_buf()  -       Hand buffers of bytes from the driver to the ldisc
+                       for processing. Semantics currently rather
+                       mysterious 8(
+
+receive_room() -       Can be called by the driver layer at any time when
+                       the ldisc is opened. The ldisc must be able to
+                       handle the reported amount of data at that instant.
+                       Synchronization between active receive_buf and
+                       receive_room calls is down to the driver not the
+                       ldisc. Must not sleep.
+
+write_wakeup() -       May be called at any point between open and close.
+                       The TTY_DO_WRITE_WAKEUP flag indicates if a call
+                       is needed but always races versus calls. Thus the
+                       ldisc must be careful about setting order and to
+                       handle unexpected calls. Must not sleep.
+
+                       The driver is forbidden from calling this directly
+                       from the ->write call from the ldisc as the ldisc
+                       is permitted to call the driver write method from
+                       this function. In such a situation defer it.
+
+
+Locking
+
+Callers to the line discipline functions from the tty layer are required to
+take line discipline locks. The same is true of calls from the driver side
+but not yet enforced.
+
+Three calls are now provided
+
+       ldisc = tty_ldisc_ref(tty);
+
+takes a handle to the line discipline in the tty and returns it. If no ldisc
+is currently attached or the ldisc is being closed and re-opened at this
+point then NULL is returned. While this handle is held the ldisc will not
+change or go away.
+
+       tty_ldisc_deref(ldisc)
+
+Returns the ldisc reference and allows the ldisc to be closed. Returning the
+reference takes away your right to call the ldisc functions until you take
+a new reference.
+
+       ldisc = tty_ldisc_ref_wait(tty);
+
+Performs the same function as tty_ldisc_ref except that it will wait for an
+ldisc change to complete and then return a reference to the new ldisc. 
+
+While these functions are slightly slower than the old code they should have
+minimal impact as most receive logic uses the flip buffers and they only
+need to take a reference when they push bits up through the driver.
+
+A caution: The ldisc->open(), ldisc->close() and driver->set_ldisc 
+functions are called with the ldisc unavailable. Thus tty_ldisc_ref will
+fail in this situation if used within these functions. Ldisc and driver
+code calling its own functions must be careful in this case. 
+
+
+Driver Interface
+----------------
+
+open()         -       Called when a device is opened. May sleep
+
+close()                -       Called when a device is closed. At the point of
+                       return from this call the driver must make no 
+                       further ldisc calls of any kind. May sleep
+
+write()                -       Called to write bytes to the device. May not
+                       sleep. May occur in parallel in special cases. 
+                       Because this includes panic paths drivers generally
+                       shouldn't try and do clever locking here.
+
+put_char()     -       Stuff a single character onto the queue. The
+                       driver is guaranteed following up calls to
+                       flush_chars.
+
+flush_chars()  -       Ask the kernel to write put_char queue
+
+write_room()   -       Return the number of characters tht can be stuffed
+                       into the port buffers without overflow (or less).
+                       The ldisc is responsible for being intelligent
+                       about multi-threading of write_room/write calls
+
+ioctl()                -       Called when an ioctl may be for the driver
+
+set_termios()  -       Called on termios change, serialized against
+                       itself by a semaphore. May sleep.
+
+set_ldisc()    -       Notifier for discipline change. At the point this 
+                       is done the discipline is not yet usable. Can now
+                       sleep (I think)
+
+throttle()     -       Called by the ldisc to ask the driver to do flow
+                       control.  Serialization including with unthrottle
+                       is the job of the ldisc layer.
+
+unthrottle()   -       Called by the ldisc to ask the driver to stop flow
+                       control.
+
+stop()         -       Ldisc notifier to the driver to stop output. As with
+                       throttle the serializations with start() are down
+                       to the ldisc layer.
+
+start()                -       Ldisc notifier to the driver to start output.
+
+hangup()       -       Ask the tty driver to cause a hangup initiated
+                       from the host side. [Can sleep ??]
+
+break_ctl()    -       Send RS232 break. Can sleep. Can get called in
+                       parallel, driver must serialize (for now), and
+                       with write calls.
+
+wait_until_sent() -    Wait for characters to exit the hardware queue
+                       of the driver. Can sleep
+
+send_xchar()     -     Send XON/XOFF and if possible jump the queue with
+                       it in order to get fast flow control responses.
+                       Cannot sleep ??
+
diff -urN malta/linux/Documentation/00-INDEX malta/linux/Documentation/00-INDEX
--- malta/linux/Documentation/00-INDEX  2004/03/11 16:46:39     1.24
+++ malta/linux/Documentation/00-INDEX  2005/06/21 13:20:27     1.24.1000.1
@@ -12,14 +12,14 @@
 
 00-INDEX
        - this file.
-BK-usage/
-       - directory with info on BitKeeper.
 BUG-HUNTING
        - brute force method of doing binary search of patches to find bug.
 Changes
        - list of changes that break older software packages.
 CodingStyle
        - how the boss likes the C code in the kernel to look.
+DMA-API.txt
+       - DMA API, pci_ API & extensions for non-consistent memory machines.
 DMA-mapping.txt
        - info for PCI drivers using DMA portably across all platforms.
 DocBook/
@@ -30,12 +30,14 @@
        - info on Linux Intelligent Platform Management Interface (IPMI) Driver.
 IRQ-affinity.txt
        - how to select which CPU(s) handle which interrupt events on SMP.
+ManagementStyle
+       - how to (attempt to) manage kernel hackers.
 MSI-HOWTO.txt
        - the Message Signaled Interrupts (MSI) Driver Guide HOWTO and FAQ.
+RCU/
+       - directory with info on RCU (read-copy update).
 README.DAC960
        - info on Mylex DAC960/DAC1100 PCI RAID Controller Driver for Linux.
-README.moxa
-       - release notes for Moxa mutiport serial card.
 SAK.txt
        - info on Secure Attention Keys.
 SubmittingDrivers
@@ -46,8 +48,6 @@
        - how to change your VGA cursor from a blinking underscore.
 arm/
        - directory with info about Linux on the ARM architecture.
-as-iosched.txt
-       - info on anticipatory IO scheduler.
 basic_profiling.txt
        - basic instructions for those who wants to profile Linux kernel.
 binfmt_misc.txt
@@ -60,20 +60,24 @@
        - info, major/minor #'s for Compaq's SMART Array Controllers.
 cdrom/
        - directory with information on the CD-ROM drivers that Linux has.
+cli-sti-removal.txt
+       - cli()/sti() removal guide.
 computone.txt
        - info on Computone Intelliport II/Plus Multiport Serial Driver.
 cpqarray.txt
        - info on using Compaq's SMART2 Intelligent Disk Array Controllers.
-cpufreq/
+cpu-freq/
        - info on CPU frequency and voltage scaling.
 cris/
        - directory with info about Linux on CRIS architecture.
+crypto/
+       - directory with info on the Crypto API.
 debugging-modules.txt
        - some notes on debugging modules after Linux 2.6.3.
+device-mapper/
+       - directory with info on Device Mapper.
 devices.txt
        - plain ASCII listing of all the nodes in /dev/ with major minor #'s.
-digiboard.txt
-       - info on the Digiboard PC/X{i,e,eve} multiport boards.
 digiepca.txt
        - info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards.
 dnotify.txt
@@ -92,6 +96,8 @@
        - directory with info on the frame buffer graphics abstraction layer.
 filesystems/
        - directory with info on the various filesystems that Linux supports.
+firmware_class/
+       - request_firmware() hotplug interface info.
 floppy.txt
        - notes and driver options for the floppy disk driver.
 ftape.txt
@@ -100,10 +106,14 @@
        - info on using the Hayes ESP serial driver.
 highuid.txt
        - notes on the change from 16 bit to 32 bit user/group IDs.
+hpet.txt
+       - High Precision Event Timer Driver for Linux.
 hw_random.txt
        - info on Linux support for random number generator in i8xx chipsets.
 i2c/
        - directory with info about the I2C bus/protocol (2 wire, kHz speed).
+i2o/
+       - directory with info about the Linux I2O subsystem.
 i386/
        - directory with info about Linux on Intel 32 bit architecture.
 ia64/
@@ -114,6 +124,8 @@
        - how to use the RAM disk as an initial/temporary root filesystem.
 input/
        - info on Linux input device support.
+io_ordering.txt
+       - info on ordering I/O writes to memory-mapped addresses.
 ioctl-number.txt
        - how to implement and register device/driver ioctl calls.
 iostats.txt
@@ -134,6 +146,8 @@
        - summary listing of command line / boot prompt args for the kernel.
 kobject.txt
        - info of the kobject infrastructure of the Linux kernel.
+laptop-mode.txt
+       - How to conserve battery power using laptop-mode.
 ldm.txt
        - a brief description of LDM (Windows Dynamic Disks).
 locks.txt
@@ -156,10 +170,8 @@
        - info on typical Linux memory problems.
 mips/
        - directory with info about Linux on MIPS architecture.
-mkdev.cciss
-       - script to make /dev entries for SMART controllers (see cciss.txt).
-mkdev.ida
-       - script to make /dev entries for Intelligent Disk Array Controllers.
+mono.txt
+       - how to execute Mono-based .NET binaries with the help of BINFMT_MISC.
 moxa-smartio
        - info on installing/using Moxa multiport serial driver.
 mtrr.txt
@@ -172,6 +184,8 @@
        - short guide on setting up a diskless box with NFS root filesystem.
 nmi_watchdog.txt
        - info on NMI watchdog for SMP systems.
+numastat.txt
+       - info on how to read Numa policy hit/miss statistics in sysfs.
 oops-tracing.txt
        - how to decode those nasty internal kernel error dump messages.
 paride.txt
@@ -199,17 +213,25 @@
 riscom8.txt
        - notes on using the RISCom/8 multi-port serial driver.
 rocket.txt
-       - info on installing/using the Comtrol RocketPort multiport serial 
driver.
+       - info on the Comtrol RocketPort multiport serial driver.
 rpc-cache.txt
        - introduction to the caching mechanisms in the sunrpc layer.
 rtc.txt
        - notes on how to use the Real Time Clock (aka CMOS clock) driver.
 s390/
        - directory with info on using Linux on the IBM S390.
+sched-coding.txt
+       - reference for various scheduler-related methods in the O(1) scheduler.
 sched-design.txt
        - goals, design and implementation of the Linux O(1) scheduler.
+sched-domains.txt
+       - information on scheduling domains.
+sched-stats.txt
+       - information on schedstats (Linux Scheduler Statistics).
 scsi/
        - directory with info on Linux scsi support.
+serial/
+       - directory with info on the low level serial API.
 serial-console.txt
        - how to set up Linux with a serial line console as the default.
 sgi-visws.txt
@@ -242,14 +264,24 @@
        - info on the magic SysRq key.
 telephony/
        - directory with info on telephony (e.g. voice over IP) support.
+time_interpolators.txt
+       - info on time interpolators.
+tipar.txt
+       - information about Parallel link cable for Texas Instruments handhelds.
+tty.txt
+       - guide to the locking policies of the tty layer.
 unicode.txt
        - info on the Unicode character/font mapping used in Linux.
+uml/
+       - directory with infomation about User Mode Linux.
 usb/
        - directory with info regarding the Universal Serial Bus.
 video4linux/
        - directory with info regarding video/TV/radio cards and linux.
 vm/
        - directory with info on the Linux vm code.
+voyager.txt
+       - guide to running Linux on the Voyager architecture.
 watchdog/
        - how to auto-reboot Linux if it has "fallen and can't get up". ;-)
 x86_64/
diff -urN malta/linux/Documentation/Changes malta/linux/Documentation/Changes
--- malta/linux/Documentation/Changes   2004/05/12 17:14:19     1.79.1000.1
+++ malta/linux/Documentation/Changes   2005/06/21 13:20:27     1.79.1000.2
@@ -223,6 +223,11 @@
 version v0.99.0 or higher. Running old versions may cause problems
 with programs using shared memory.
 
+udev
+----
+udev is a userspace application for populating /dev dynamically with
+only entries for devices actually present. udev replaces devfs.
+
 Networking
 ==========
 
@@ -334,7 +339,7 @@
 
 JFSutils
 --------
-o  <http://oss.software.ibm.com/jfs>
+o  <http://jfs.sourceforge.net/>
 
 Reiserfsprogs
 -------------
@@ -352,14 +357,14 @@
 ----------
 o  <http://sourceforge.net/projects/linuxquota/>
 
-Jade
-----
-o  <ftp://ftp.jclark.com/pub/jade/jade-1.2.1.tar.gz>
-
 DocBook Stylesheets
 -------------------
 o  <http://nwalsh.com/docbook/dsssl/>
 
+XMLTO XSLT Frontend
+-------------------
+o  <http://cyberelk.net/tim/xmlto/>
+
 Intel P6 microcode
 ------------------
 o  <http://www.urbanmyth.org/microcode/>
@@ -368,6 +373,10 @@
 ----------
 o  <http://powertweak.sourceforge.net/>
 
+udev
+----
+o <http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html>
+
 Networking
 **********
 
@@ -399,4 +408,3 @@
 ---------
 o  <http://nfs.sourceforge.net/>
 
-
diff -urN malta/linux/Documentation/CodingStyle 
malta/linux/Documentation/CodingStyle
--- malta/linux/Documentation/CodingStyle       2004/05/12 17:14:19     
1.7.1000.1
+++ malta/linux/Documentation/CodingStyle       2005/06/21 13:20:27     
1.7.1000.2
@@ -356,10 +356,10 @@
 
 Macros with multiple statements should be enclosed in a do - while block:
 
-#define macrofun(a,b,c)                        \
+#define macrofun(a, b, c)                      \
        do {                                    \
                if (a == 5)                     \
-                       do_this(b,c);           \
+                       do_this(b, c);          \
        } while (0)
 
 Things to avoid when using macros:
diff -urN malta/linux/Documentation/DMA-API.txt 
malta/linux/Documentation/DMA-API.txt
--- malta/linux/Documentation/DMA-API.txt       2004/09/14 16:27:37     
1.4.1000.2
+++ malta/linux/Documentation/DMA-API.txt       2005/06/21 13:20:27     
1.4.1000.3
@@ -160,7 +160,7 @@
 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)
@@ -444,4 +444,83 @@
 continuing on for size.  Again, you *must* observe the cache line
 boundaries when doing this.
 
+int
+dma_declare_coherent_memory(struct device *dev, dma_addr_t bus_addr,
+                           dma_addr_t device_addr, size_t size, int
+                           flags)
+
+
+Declare region of memory to be handed out by dma_alloc_coherent when
+it's asked for coherent memory for this device.
+
+bus_addr is the physical address to which the memory is currently
+assigned in the bus responding region (this will be used by the
+platform to perform the mapping)
+
+device_addr is the physical address the device needs to be programmed
+with actually to address this memory (this will be handed out as the
+dma_addr_t in dma_alloc_coherent())
+
+size is the size of the area (must be multiples of PAGE_SIZE).
+
+flags can be or'd together and are
+
+DMA_MEMORY_MAP - request that the memory returned from
+dma_alloc_coherent() be directly writeable.
+
+DMA_MEMORY_IO - request that the memory returned from
+dma_alloc_coherent() be addressable using read/write/memcpy_toio etc.
+
+One or both of these flags must be present
+
+DMA_MEMORY_INCLUDES_CHILDREN - make the declared memory be allocated by
+dma_alloc_coherent of any child devices of this one (for memory residing
+on a bridge).
+
+DMA_MEMORY_EXCLUSIVE - only allocate memory from the declared regions. 
+Do not allow dma_alloc_coherent() to fall back to system memory when
+it's out of memory in the declared region.
+
+The return value will be either DMA_MEMORY_MAP or DMA_MEMORY_IO and
+must correspond to a passed in flag (i.e. no returning DMA_MEMORY_IO
+if only DMA_MEMORY_MAP were passed in) for success or zero for
+failure.
+
+Note, for DMA_MEMORY_IO returns, all subsequent memory returned by
+dma_alloc_coherent() may no longer be accessed directly, but instead
+must be accessed using the correct bus functions.  If your driver
+isn't prepared to handle this contingency, it should not specify
+DMA_MEMORY_IO in the input flags.
+
+As a simplification for the platforms, only *one* such region of
+memory may be declared per device.
+
+For reasons of efficiency, most platforms choose to track the declared
+region only at the granularity of a page.  For smaller allocations,
+you should use the dma_pool() API.
+
+void
+dma_release_declared_memory(struct device *dev)
+
+Remove the memory region previously declared from the system.  This
+API performs *no* in-use checking for this region and will return
+unconditionally having removed all the required structures.  It is the
+drivers job to ensure that no parts of this memory region are
+currently in use.
+
+void *
+dma_mark_declared_memory_occupied(struct device *dev,
+                                 dma_addr_t device_addr, size_t size)
+
+This is used to occupy specific regions of the declared space
+(dma_alloc_coherent() will hand out the first free region it finds).
+
+device_addr is the *device* address of the region requested
+
+size is the size (and should be a page sized multiple).
+
+The return value will be either a pointer to the processor virtual
+address of the memory, or an error (via PTR_ERR()) if any part of the
+region is occupied.
+
 
diff -urN malta/linux/Documentation/DMA-mapping.txt 
malta/linux/Documentation/DMA-mapping.txt
--- malta/linux/Documentation/DMA-mapping.txt   2004/09/14 16:27:37     
1.21.1000.2
+++ malta/linux/Documentation/DMA-mapping.txt   2005/06/21 13:20:27     
1.21.1000.3
@@ -443,15 +443,9 @@
 implicitly have a direction attribute setting of
 PCI_DMA_BIDIRECTIONAL.
 
-The SCSI subsystem provides mechanisms for you to easily obtain
-the direction to use, in the SCSI command:
-
-       scsi_to_pci_dma_dir(SCSI_DIRECTION)
-
-Where SCSI_DIRECTION is obtained from the 'sc_data_direction'
-member of the SCSI command your driver is working on.  The
-mentioned interface above returns a value suitable for passing
-into the streaming DMA mapping interfaces below.
+The SCSI subsystem tells you the direction to use in the
+'sc_data_direction' member of the SCSI command your driver is
+working on.
 
 For Networking drivers, it's a rather simple affair.  For transmit
 packets, map/unmap them with the PCI_DMA_TODEVICE direction
diff -urN malta/linux/Documentation/IO-mapping.txt 
malta/linux/Documentation/IO-mapping.txt
--- malta/linux/Documentation/IO-mapping.txt    2001/01/11 04:02:41     1.5
+++ malta/linux/Documentation/IO-mapping.txt    2005/06/21 13:20:27     
1.5.1000.1
@@ -119,9 +119,10 @@
 So why do we care about the physical address at all? We do need the physical
 address in some cases, it's just not very often in normal code.  The physical
 address is needed if you use memory mappings, for example, because the
-"remap_page_range()" mm function wants the physical address of the memory to
-be remapped (the memory management layer doesn't know about devices outside
-the CPU, so it shouldn't need to know about "bus addresses" etc). 
+"remap_pfn_range()" mm function wants the physical address of the memory to
+be remapped as measured in units of pages, a.k.a. the pfn (the memory
+management layer doesn't know about devices outside the CPU, so it
+shouldn't need to know about "bus addresses" etc).
 
 NOTE NOTE NOTE! The above is only one part of the whole equation. The above
 only talks about "real memory", that is, CPU memory (RAM). 
diff -urN malta/linux/Documentation/IPMI.txt malta/linux/Documentation/IPMI.txt
--- malta/linux/Documentation/IPMI.txt  2004/09/14 16:27:37     1.3.1000.2
+++ malta/linux/Documentation/IPMI.txt  2005/06/21 13:20:27     1.3.1000.3
@@ -342,6 +342,7 @@
        irqs=<irq1>,<irq2>... trydefaults=[0|1]
        regspacings=<sp1>,<sp2>,... regsizes=<size1>,<size2>,...
        regshifts=<shift1>,<shift2>,...
+       slave_addrs=<addr1>,<addr2>,...
 
 Each of these except si_trydefaults is a list, the first item for the
 first interface, second item for the second interface, etc.
@@ -383,6 +384,10 @@
 be in the lower 8 bits.  The regshifts parameter give the amount to shift
 the data to get to the actual IPMI data.
 
+The slave_addrs specifies the IPMI address of the local BMC.  This is
+usually 0x20 and the driver defaults to that, but in case it's not, it
+can be specified when the driver starts up.
+
 When compiled into the kernel, the addresses can be specified on the
 kernel command line as:
 
@@ -392,6 +397,7 @@
        ipmi_si.regspacings=<sp1>,<sp2>,...
        ipmi_si.regsizes=<size1>,<size2>,...
        ipmi_si.regshifts=<shift1>,<shift2>,...
+       ipmi_si.slave_addrs=<addr1>,<addr2>,...
 
 It works the same as the module parameters of the same names.
 
diff -urN malta/linux/Documentation/SAK.txt malta/linux/Documentation/SAK.txt
--- malta/linux/Documentation/SAK.txt   2001/04/05 04:56:06     1.1
+++ malta/linux/Documentation/SAK.txt   2005/06/21 13:20:27     1.1.1000.1
@@ -1,5 +1,5 @@
 Linux 2.4.2 Secure Attention Key (SAK) handling
-18 March 2001, Andrew Morton <andrewm@uow.edu.au>
+18 March 2001, Andrew Morton <akpm@osdl.org>
 
 An operating system's Secure Attention Key is a security tool which is
 provided as protection against trojan password capturing programs.  It
@@ -44,7 +44,7 @@
    /dev/console opened.
 
    Unfortunately this includes a number of things which you don't
-   actually want killed.  This is because these appliccaitons are
+   actually want killed.  This is because these applications are
    incorrectly holding /dev/console open.  Be sure to complain to your
    Linux distributor about this!
 
diff -urN malta/linux/Documentation/SubmittingDrivers 
malta/linux/Documentation/SubmittingDrivers
--- malta/linux/Documentation/SubmittingDrivers 2004/09/14 16:27:37     
1.10.1000.2
+++ malta/linux/Documentation/SubmittingDrivers 2005/06/21 13:20:28     
1.10.1000.3
@@ -118,13 +118,18 @@
        linux-kernel@vger.kernel.org
        [mail majordomo@vger.kernel.org to subscribe]
 
+Linux Device Drivers, Third Edition (covers 2.6.10):
+       http://lwn.net/Kernel/LDD3/  (free version)
+
 Kernel traffic:
        Weekly summary of kernel list activity (much easier to read)
        http://www.kerneltraffic.org/kernel-traffic/
 
 LWN.net:
        Weekly summary of kernel development activity - http://lwn.net/
-       2.6 driver porting information:
+       2.6 API changes:
+               http://lwn.net/Articles/2.6-kernel-api/
+       Porting drivers from prior kernels to 2.6:
                http://lwn.net/Articles/driver-porting/
 
 KernelTrap:
diff -urN malta/linux/Documentation/cachetlb.txt 
malta/linux/Documentation/cachetlb.txt
--- malta/linux/Documentation/cachetlb.txt      2004/09/14 16:27:37     
1.13.1000.1
+++ malta/linux/Documentation/cachetlb.txt      2005/06/21 13:20:28     
1.13.1000.2
@@ -142,6 +142,11 @@
        The ia64 sn2 platform is one example of a platform
        that uses this interface.
 
+8) void lazy_mmu_prot_update(pte_t pte)
+       This interface is called whenever the protection on
+       any user PTEs change.  This interface provides a notification
+       to architecture specific code to take appropiate action.
+
 
 Next, we have the cache flushing interfaces.  In general, when Linux
 is changing an existing virtual-->physical mapping to a new value,
@@ -155,7 +160,7 @@
           change_range_of_page_tables(mm, start, end);
           flush_tlb_range(vma, start, end);
 
-       3) flush_cache_page(vma, addr);
+       3) flush_cache_page(vma, addr, pfn);
           set_pte(pte_pointer, new_pte_val);
           flush_tlb_page(vma, addr);
 
@@ -203,7 +208,7 @@
        call flush_cache_page (see below) for each entry which may be
        modified.
 
-3) void flush_cache_page(struct vm_area_struct *vma, unsigned long addr)
+3) void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, 
unsigned long pfn)
 
        This time we need to remove a PAGE_SIZE sized range
        from the cache.  The 'vma' is the backing structure used by
@@ -213,8 +218,14 @@
        executable (and thus could be in the 'instruction cache' in
        "Harvard" type cache layouts).
 
+       The 'pfn' indicates the physical page frame (shift this value
+       left by PAGE_SHIFT to get the physical address) that 'addr'
+       translates to.  It is this mapping which should be removed from
+       the cache.
+
        After running, there will be no entries in the cache for
-       'vma->vm_mm' for virtual address 'addr'.
+       'vma->vm_mm' for virtual address 'addr' which translates
+       to 'pfn'.
 
        This is used primarily during fault processing.
 
@@ -354,10 +365,6 @@
        of arbitrary user pages (f.e. for ptrace()) it will use
        these two routines.
 
-       The page has been kmap()'d, and flush_cache_page() has
-       just been called for the user mapping of this page (if
-       necessary).
-
        Any necessary cache flushing or other coherency operations
        that need to occur should happen here.  If the processor's
        instruction cache does not snoop cpu stores, it is very
diff -urN malta/linux/Documentation/cciss.txt 
malta/linux/Documentation/cciss.txt
--- malta/linux/Documentation/cciss.txt 2004/05/12 17:14:19     1.8.1000.1
+++ malta/linux/Documentation/cciss.txt 2005/06/21 13:20:28     1.8.1000.2
@@ -14,28 +14,31 @@
        * SA 6400
        * SA 6400 U320 Expansion Module
        * SA 6i
-       * SA 6422
-       * SA V100
+       * SA P600
+       * SA P800
+       * SA E400
 
-If nodes are not already created in the /dev/cciss directory
+If nodes are not already created in the /dev/cciss directory, run as root:
 
-# mkdev.cciss [ctlrs]
-
-Where ctlrs is the number of controllers you have (defaults to 1 if not
-specified).
+# cd /dev
+# ./MAKEDEV cciss
 
 Device Naming:
 --------------
 
-You need some entries in /dev for the cciss device.  The mkdev.cciss script
+You need some entries in /dev for the cciss device.  The MAKEDEV script
 can make device nodes for you automatically.  Currently the device setup
 is as follows:
 
 Major numbers:
        104     cciss0  
        105     cciss1  
-       106     cciss2 
-       etc...
+       106     cciss2
+       105     cciss3
+       108     cciss4
+       109     cciss5
+       110     cciss6
+       111     cciss7
 
 Minor numbers:
         b7 b6 b5 b4 b3 b2 b1 b0
@@ -45,7 +48,7 @@
              |
              +-------------------- Logical Volume number
 
-The suggested device naming scheme is:
+The device naming scheme is:
 /dev/cciss/c0d0                        Controller 0, disk 0, whole device
 /dev/cciss/c0d0p1              Controller 0, disk 0, partition 1
 /dev/cciss/c0d0p2              Controller 0, disk 0, partition 2
@@ -117,16 +120,13 @@
 
 Note that the naming convention of the /proc filesystem entries 
 contains a number in addition to the driver name.  (E.g. "cciss0" 
-instead of just "cciss" which you might expect.)   This is because 
-of changes to the 2.4 kernel PCI interface related to PCI hot plug
-that imply the driver must register with the SCSI mid layer once per
-adapter instance rather than once per driver.
+instead of just "cciss" which you might expect.)
 
 Note: ONLY sequential access devices and medium changers are presented 
 as SCSI devices to the SCSI mid layer by the cciss driver.  Specifically, 
 physical SCSI disk drives are NOT presented to the SCSI mid layer.  The 
 physical SCSI disk drives are controlled directly by the array controller 
-hardware and it is important to prevent the OS from attempting to directly 
+hardware and it is important to prevent the kernel from attempting to directly
 access these devices too, as if the array controller were merely a SCSI 
 controller in the same way that we are allowing it to access SCSI tape drives.
 
diff -urN malta/linux/Documentation/computone.txt 
malta/linux/Documentation/computone.txt
--- malta/linux/Documentation/computone.txt     2004/09/14 16:27:37     
1.10.1000.2
+++ malta/linux/Documentation/computone.txt     2005/06/21 13:20:28     
1.10.1000.3
@@ -1,3 +1,13 @@
+NOTE: This is an unmaintained driver.  It is not guaranteed to work due to
+changes made in the tty layer in 2.6.  If you wish to take over maintenance of
+this driver, contact Michael Warfield <mhw@wittsend.com>.
+
+Changelog:
+----------
+11-01-2001:    Original Document
+
+10-29-2004:    Minor misspelling & format fix, update status of driver.
+               James Nelson <james4765@gmail.com>
 
 Computone Intelliport II/Plus Multiport Serial Driver
 -----------------------------------------------------
@@ -146,7 +156,7 @@
 ip2.c are used. If you are autoloading the driver module with kerneld or
 kmod the base addresses and interrupt number must also be set in ip2.c
 and recompile or just insert and options line in /etc/modprobe.conf or both.
-The options line is equivalent to the command line and takes precidence over 
+The options line is equivalent to the command line and takes precedence over
 what is in ip2.c. 
 
 /etc/modprobe.conf sample:
@@ -166,7 +176,8 @@
 
 
 Note:  Both io and irq should be updated to reflect YOUR system.  An "io"
-       address of 1 or 2 indicates a PCI or EISA card in the board table.      
        The PCI or EISA irq will be assigned automatically.
+       address of 1 or 2 indicates a PCI or EISA card in the board table.
+       The PCI or EISA irq will be assigned automatically.
 
 Specifying an invalid or in-use irq will default the driver into
 running in polled mode for that card.  If all irq entries are 0 then
diff -urN malta/linux/Documentation/cpqarray.txt 
malta/linux/Documentation/cpqarray.txt
--- malta/linux/Documentation/cpqarray.txt      2003/06/05 00:04:28     1.6
+++ malta/linux/Documentation/cpqarray.txt      2005/06/21 13:20:28     
1.6.1000.1
@@ -26,31 +26,13 @@
        * IDA-2
        * IAES
 
-Installing:
------------
-
-You need to build a new kernel to use this device, even if you want to
-use a loadable module.  
-
-Apply the patch to a 2.2.x kernel:
-
-# cd linux
-# patch -p1 <smart2.patch
-
-Then build a new kernel and turn on Compaq SMART2 Disk Array support.
-Create device nodes for the diskarray device:
-
-# mkdev.ida [ctlrs]
-
-Where ctlrs is the number of controllers you have (defaults to 1 if not
-specified).
 
 EISA Controllers:
 -----------------
 
 If you want to use an EISA controller you'll have to supply some
-insmod/lilo parameters.  If the driver is compiled into the kernel, must
-give it the controller's IO port address at boot time (it is no longer
+modprobe/lilo parameters.  If the driver is compiled into the kernel, must
+give it the controller's IO port address at boot time (it is not
 necessary to specify the IRQ).  For example, if you had two SMART-2/E
 controllers, in EISA slots 1 and 2 you'd give it a boot argument like
 this:
@@ -59,29 +41,27 @@
 
 If you were loading the driver as a module, you'd give load it like this:
 
-       insmod cpqarray.o eisa=0x1000,0x2000
+       modprobe cpqarray eisa=0x1000,0x2000
 
 You can use EISA and PCI adapters at the same time.
 
-Booting:
---------
-
-You'll need to use a modified lilo if you want to boot from a disk array.
-Its simply a version of lilo with some code added to tell it how to
-understand Compaq diskarray devices.
 
 Device Naming:
 --------------
 
-You need some entries in /dev for the ida device.  The mkdev.ida script
-can make device nodes for you automatically.  Currently the device setup
-is as follows:
+You need some entries in /dev for the ida device.  MAKEDEV in the /dev
+directory can make device nodes for you automatically.  The device setup is
+as follows:
 
 Major numbers:
        72      ida0
        73      ida1
        74      ida2
-       etc...
+       75      ida3
+       76      ida4
+       77      ida5
+       78      ida6
+       79      ida7
 
 Minor numbers:
         b7 b6 b5 b4 b3 b2 b1 b0
@@ -91,7 +71,7 @@
              |
              +-------------------- Logical Volume number
 
-The suggested device naming scheme is:
+The device naming scheme is:
 /dev/ida/c0d0          Controller 0, disk 0, whole device
 /dev/ida/c0d0p1                Controller 0, disk 0, partition 1
 /dev/ida/c0d0p2                Controller 0, disk 0, partition 2
@@ -101,3 +81,13 @@
 /dev/ida/c1d1p1                Controller 1, disk 1, partition 1
 /dev/ida/c1d1p2                Controller 1, disk 1, partition 2
 /dev/ida/c1d1p3                Controller 1, disk 1, partition 3
+
+
+Changelog:
+==========
+
+10-28-2004 :   General cleanup, syntax fixes for in-kernel driver version.
+               James Nelson <james4765@gmail.com>
+
+
+1999 :         Original Document
diff -urN malta/linux/Documentation/devices.txt 
malta/linux/Documentation/devices.txt
--- malta/linux/Documentation/devices.txt       2004/09/14 16:27:37     
1.23.1000.2
+++ malta/linux/Documentation/devices.txt       2005/06/21 13:20:28     
1.23.1000.3
@@ -1,9 +1,9 @@
 
-                      LINUX ALLOCATED DEVICES
+                   LINUX ALLOCATED DEVICES (2.6+ version)
 
-            Maintained by John Cagle <device@lanana.org>
+            Maintained by Torben Mathiasen <device@lanana.org>
 
-                     Last revised: 15 March 2004
+                     Last revised: 25 January 2005
 
 This list is the Linux Device List, the official registry of allocated
 device numbers and /dev directory nodes for the Linux operating
@@ -24,7 +24,8 @@
 the Atari platform only.
 
 The symbol {2.6} means the allocation is obsolete and scheduled for
-removal once kernel version 2.6 (or equivalent) is released.
+removal once kernel version 2.6 (or equivalent) is released. Some of these
+allocations have already been removed.
 
 This document is in the public domain. The author requests, however,
 that semantically altered versions are not distributed without
@@ -41,13 +42,6 @@
 
          **** DEVICE DRIVERS AUTHORS PLEASE READ THIS ****
 
-THE DEVICE REGISTRY IS OFFICIALLY FROZEN FOR LINUS TORVALDS' KERNEL
-TREE.  At Linus' request, no more allocations will be made official
-for Linus' kernel tree; the 3 June 2001 version of this list is the
-official final version of this registry.  At Alan Cox' request,
-however, the registry will continue to be maintained for the -ac
-series of kernels, and registrations will be accepted.
-
 To have a major number allocated, or a minor number in situations
 where that applies (e.g. busmice), please contact me with the
 appropriate device information.         Also, if you have additional
@@ -410,6 +404,7 @@
                199 = /dev/scanners/cuecat :CueCat barcode scanner
                200 = /dev/net/tun      TAP/TUN network device
                201 = /dev/button/gulpb Transmeta GULP-B buttons
+               202 = /dev/emd/ctl      Enhanced Metadisk RAID (EMD) control
                204 = /dev/video/em8300         EM8300 DVD decoder control
                205 = /dev/video/em8300_mv      EM8300 DVD decoder video
                206 = /dev/video/em8300_ma      EM8300 DVD decoder audio
@@ -435,6 +430,8 @@
                226 = /dev/systrace     Systrace device
                227 = /dev/mcelog       X86_64 Machine Check Exception driver
                228 = /dev/hpet         HPET driver
+               229 = /dev/fuse         Fuse (virtual filesystem in user-space)
+               230 = /dev/midishare    MidiShare driver
                240-254                 Reserved for local use
                255                     Reserved for MISC_DYNAMIC_MINOR
 
@@ -1175,7 +1172,7 @@
 
                Requested by: andy@scramdisklinux.org
 
- 65 char       Sundance "plink" Transputer boards
+ 65 char       Sundance "plink" Transputer boards (obsolete, unused)
                  0 = /dev/plink0       First plink device
                  1 = /dev/plink1       Second plink device
                  2 = /dev/plink2       Third plink device
@@ -1525,12 +1522,12 @@
                disks (see major number 3) except that the limit on
                partitions is 15.
 
- 83 char       Teletext/videotext interfaces {2.6}
-                 0 = /dev/vtx          Teletext decoder
-                16 = /dev/vttuner      TV tuner on teletext interface
-
-               Devices for the driver contained in the VideoteXt package.
-               More information on http://home.pages.de/~videotext/
+ 83 char       Matrox mga_vid video driver
+                0 = /dev/mga_vid0      1st video card
+                1 = /dev/mga_vid1      2nd video card
+                2 = /dev/mga_vid2      3rd video card
+                 ...
+               15 = /dev/mga_vid15     16th video card
 
  83 block      I2O hard disk
                  0 = /dev/i2o/hdaw     49th I2O hard disk, whole disk
@@ -1682,11 +1679,16 @@
                  1 = /dev/dcxx1        Second capture card
                    ...
 
- 94 block      Inverse NAND Flash Translation Layer
-                 0 = /dev/inftla       First INFTL layer
-                16 = /dev/inftlb       Second INFTL layer
+ 94 block IBM S/390 DASD block storage
+                 0 = /dev/dasda First DASD device, major
+                 1 = /dev/dasda1 First DASD device, block 1
+                 2 = /dev/dasda2 First DASD device, block 2
+                 3 = /dev/dasda3 First DASD device, block 3
+                 4 = /dev/dasdb Second DASD device, major
+                 5 = /dev/dasdb1 Second DASD device, block 1
+                 6 = /dev/dasdb2 Second DASD device, block 2
+                 7 = /dev/dasdb3 Second DASD device, block 3
                    ...
-               240 = /dev/inftlp       16th INTFL layer
 
  95 char       IP filter
                  0 = /dev/ipl          Filter control device/log file
@@ -1695,17 +1697,6 @@
                  3 = /dev/ipauth       Authentication control device/log file
                    ...         
 
- 95 block      IBM S/390 DASD block storage
-                 0 = /dev/dasd0        First DASD device, major
-                 1 = /dev/dasd0a       First DASD device, block 1
-                 2 = /dev/dasd0b       First DASD device, block 2
-                 3 = /dev/dasd0c       First DASD device, block 3
-                 4 = /dev/dasd1        Second DASD device, major
-                 5 = /dev/dasd1a       Second DASD device, block 1
-                 6 = /dev/dasd1b       Second DASD device, block 2
-                 7 = /dev/dasd1c       Second DASD device, block 3
-                   ...
-
  96 char       Parallel port ATAPI tape devices
                  0 = /dev/pt0          First parallel port ATAPI tape
                  1 = /dev/pt1          Second parallel port ATAPI tape
@@ -1714,10 +1705,11 @@
                129 = /dev/npt1         Second p.p. ATAPI tape, no rewind
                    ...
 
- 96 block      IBM S/390 VM/ESA minidisk
-                 0 = /dev/msd0         First VM/ESA minidisk
-                 1 = /dev/msd1         Second VM/ESA minidisk
+ 96 block Inverse NAND Flash Translation Layer
+                 0 = /dev/inftla First INFTL layer
+                16 = /dev/inftlb Second INFTL layer
                    ...
+               240 = /dev/inftlp       16th INTFL layer
 
  97 char       Parallel port generic ATAPI interface
                  0 = /dev/pg0          First parallel port ATAPI device
@@ -1741,10 +1733,14 @@
                See http://stm.lbl.gov/comedi or http://www.llp.fu-berlin.de/.
 
  98 block      User-mode virtual block device
-                 0 = /dev/ubd0         First user-mode block device
-                 1 = /dev/ubd1         Second user-mode block device
+                 0 = /dev/ubda         First user-mode block device
+                16 = /dev/udbb         Second user-mode block device
                    ...
 
+               Partitions are handled in the same way as for IDE
+               disks (see major number 3) except that the limit on
+               partitions is 15.
+
                This device is used by the user-mode virtual kernel port.
 
  99 char       Raw parallel ports
@@ -1796,14 +1792,15 @@
                partitions is 15.
 
 103 char       Arla network file system
-                 0 = /dev/xfs0         Arla XFS
+                 0 = /dev/nnpfs0       First NNPFS device
+                 1 = /dev/nnpfs1       Second NNPFS device
 
                Arla is a free clone of the Andrew File System, AFS.
-               Any resemblance with the Swedish milk producer is
-               coincidental.  For more information about the project,
-               write to <arla-drinkers@stacken.kth.se> or subscribe
-               to the arla announce mailing list by sending a mail to
-               <arla-announce-request@stacken.kth.se>.
+               The NNPFS device gives user mode filesystem
+               implementations a kernel presence for caching and easy
+               mounting.  For more information about the project,
+               write to <arla-drinkers@stacken.kth.se> or see
+               http://www.stacken.kth.se/project/arla/
 
 103 block      Audit device
                  0 = /dev/audit        Audit device
@@ -2060,12 +2057,10 @@
                 device names.  For example, /dev/hda5 would become
                 /dev/evms/hda5.
 
-118 char       Solidum ???
-                 0 = /dev/solnp0
-                 1 = /dev/solnp1
-                   ...
-               128 = /dev/solnpctl0
-               129 = /dev/solnpctl1
+118 char       IBM Cryptographic Accelerator
+                 0 = /dev/ica  Virtual interface to all IBM Crypto Accelerators
+                 1 = /dev/ica0 IBMCA Device 0
+                 2 = /dev/ica1 IBMCA Device 1
                    ...
 
 119 char       VMware virtual network control
@@ -2109,6 +2104,7 @@
                disks (see major number 3) except that the limit on
                partitions is 15.
 
+130 char       (Misc devices)
 
 130 block       SCSI disk devices (160-175)
                   0 = /dev/sdfe         161st SCSI disk whole disk
@@ -2310,6 +2306,11 @@
                  1 = /dev/aureal1      Second Aureal Vortex
                    ...
 
+147 block      Distributed Replicated Block Device (DRBD)
+                 0 = /dev/drbd0        First DRBD device
+                 1 = /dev/drbd1        Second DRBD device
+                   ...
+
 148 char       Technology Concepts serial card
                  0 = /dev/ttyT0        First TCL port
                  1 = /dev/ttyT1        Second TCL port
@@ -2346,6 +2347,22 @@
                    ...
                 15 = /dev/spi15        Sixteenth SPI device on the bus
 
+153 block      Enhanced Metadisk RAID (EMD) storage units
+                 0 = /dev/emd/0        First unit
+                 1 = /dev/emd/0p1      Partition 1 on First unit
+                 2 = /dev/emd/0p2      Partition 2 on First unit
+                   ...
+                15 = /dev/emd/0p15     Partition 15 on First unit
+
+                16 = /dev/emd/1        Second unit
+                32 = /dev/emd/2        Third unit
+                   ...
+               240 = /dev/emd/15       Sixteenth unit
+
+               Partitions are handled in the same way as for IDE
+               disks (see major number 3) except that the limit on
+               partitions is 15.
+
 154 char       Specialix RIO serial card
                  0 = /dev/ttySR0       First RIO port
                    ...
@@ -2371,23 +2388,24 @@
                  1 = /dev/gfax1        GammaLink channel 1
                    ...
 
-159            RESERVED
+159 char       RESERVED
+159 block      RESERVED
 
 160 char       General Purpose Instrument Bus (GPIB)
                  0 = /dev/gpib0        First GPIB bus
                  1 = /dev/gpib1        Second GPIB bus
                    ...
 
-160 block       Promise SX8 8-port SATA Disks on First Controller
-                 0 = /dev/sx8/0     SATA disk 0 whole disk
-                 1 = /dev/sx8/0p1   SATA disk 0 partition 1
+160 block       Carmel 8-port SATA Disks on First Controller
+                 0 = /dev/carmel/0     SATA disk 0 whole disk
+                 1 = /dev/carmel/0p1   SATA disk 0 partition 1
                    ...
-                31 = /dev/sx8/0p31  SATA disk 0 partition 31
+                31 = /dev/carmel/0p31  SATA disk 0 partition 31
 
-                32 = /dev/sx8/1     SATA disk 1 whole disk
-                64 = /dev/sx8/2     SATA disk 2 whole disk
+                32 = /dev/carmel/1     SATA disk 1 whole disk
+                64 = /dev/carmel/2     SATA disk 2 whole disk
                    ...
-               224 = /dev/sx8/7     SATA disk 7 whole disk
+               224 = /dev/carmel/7     SATA disk 7 whole disk
 
                Partitions are handled in the same way as for IDE
                disks (see major number 3) except that the limit on
@@ -2401,16 +2419,16 @@
                 17 = /dev/irlpt1       Second IrLPT device
                    ...
 
-161 block       Promise SX8 8-port SATA Disks on Second Controller
-                 0 = /dev/sx8/8     SATA disk 8 whole disk
-                 1 = /dev/sx8/8p1   SATA disk 8 partition 1
+161 block       Carmel 8-port SATA Disks on Second Controller
+                 0 = /dev/carmel/8     SATA disk 8 whole disk
+                 1 = /dev/carmel/8p1   SATA disk 8 partition 1
                    ...
-                31 = /dev/sx8/8p31  SATA disk 8 partition 31
+                31 = /dev/carmel/8p31  SATA disk 8 partition 31
 
-                32 = /dev/sx8/9     SATA disk 9 whole disk
-                64 = /dev/sx8/10    SATA disk 10 whole disk
+                32 = /dev/carmel/9     SATA disk 9 whole disk
+                64 = /dev/carmel/10    SATA disk 10 whole disk
                    ...
-               224 = /dev/sx8/15    SATA disk 15 whole disk
+               224 = /dev/carmel/15    SATA disk 15 whole disk
 
                Partitions are handled in the same way as for IDE
                disks (see major number 3) except that the limit on
@@ -2537,6 +2555,11 @@
                 65 = /dev/usb/usblcd   USBLCD Interface (info@usblcd.de)
                 66 = /dev/usb/cpad0    Synaptics cPad (mouse/LCD)
 
+180 block      USB block devices
+               0 = /dev/uba            First USB block device
+               8 = /dev/ubb            Second USB block device
+               16 = /dev/ubc           Thrid USB block device
+               ...
 
 181 char       Conrad Electronic parallel port radio clocks
                  0 = /dev/pcfclock0    First Conrad radio clock
@@ -2720,6 +2743,19 @@
                    ...
                 39 = /dev/ttyDB7               DataBooster serial port 7
                 40 = /dev/ttySG0               SGI Altix console port
+                41 = /dev/ttySMX0              Motorola i.MX - port 0
+                42 = /dev/ttySMX1              Motorola i.MX - port 1
+                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
+                   ...
+                47 = /dev/ttyCPM5              PPC CPM (SCC or SMC) - port 5
+                50 = /dev/ttyIOC40             Altix serial card
+                   ...
+                81 = /dev/ttyIOC431            Altix serial card
+                82 = /dev/ttyVR0               NEC VR4100 series SIU
+                83 = /dev/ttyVR1               NEC VR4100 series DSIU
 
 205 char       Low-density serial ports (alternate device)
                  0 = /dev/culu0                Callout device for ttyLU0
@@ -2745,6 +2781,18 @@
                    ...
                 39 = /dev/cudb7                Callout device for ttyDB7
                 40 = /dev/cusg0                Callout device for ttySG0
+                41 = /dev/ttycusmx0            Callout device for ttySMX0
+                42 = /dev/ttycusmx1            Callout device for ttySMX1
+                43 = /dev/ttycusmx2            Callout device for ttySMX2
+                46 = /dev/cucpm0               Callout device for ttyCPM0
+                   ...
+                49 = /dev/cucpm5               Callout device for ttyCPM5
+                50 = /dev/cuioc40              Callout device for ttyIOC40
+                   ...
+                81 = /dev/cuioc431             Callout device for ttyIOC431
+                82 = /dev/cuvr0                Callout device for ttyVR0
+                83 = /dev/cuvr1                Callout device for ttyVR1
+
 
 206 char       OnStream SC-x0 tape devices
                  0 = /dev/osst0                First OnStream SCSI tape, mode 0
@@ -2958,7 +3006,12 @@
                ioctl()'s can be used to rewind the tape regardless of
                the device used to access it.
 
-231-239                UNASSIGNED
+231 char       InfiniBand MAD
+               0 = /dev/infiniband/umad0
+               1 = /dev/infiniband/umad1
+                ...
+
+232-239                UNASSIGNED
 
 240-254 char   LOCAL/EXPERIMENTAL USE
 240-254 block  LOCAL/EXPERIMENTAL USE
diff -urN malta/linux/Documentation/digiepca.txt 
malta/linux/Documentation/digiepca.txt
--- malta/linux/Documentation/digiepca.txt      2004/09/14 16:27:37     
1.4.1000.1
+++ malta/linux/Documentation/digiepca.txt      2005/06/21 13:20:28     
1.4.1000.2
@@ -1,3 +1,11 @@
+NOTE:  This driver is obsolete.  Digi provides a 2.6 driver (dgdm) at
+http://www.digi.com for PCI cards.  They no longer maintain this driver,
+and have no 2.6 driver for ISA cards.
+
+This driver requires a number of user-space tools.  They can be aquired from
+http://www.digi.com, but only works with 2.4 kernels.
+
+
 The Digi Intl. epca driver. 
 ----------------------------
 The Digi Intl. epca driver for Linux supports the following boards:
@@ -64,9 +72,6 @@
 this driver REQUIRES that digiDload be executed prior to it being used. 
 Failure to do this will result in an ENODEV error.
 
-The latest version of the tool package is available at:
-ftp://ftp.dgii.com/drivers/linux/released/async/
-
 Documentation:
 --------------
 Complete documentation for this product may be found in the tool package. 
@@ -74,14 +79,8 @@
 Sources of information and support:
 -----------------------------------
 Digi Intl. support site for this product:
--> digilnux@dgii.com 
 
-Related information and information concerning other drivers supporting 
-Digi Intl. products:
-
--> FTP: ftp://dgii.com
--> Webpage: http://www.dgii.com
--> Webpage: http://lameter.com/digi
+->  http://www.digi.com
 
 Acknowledgments:
 ----------------
@@ -90,3 +89,10 @@
 1994,1995 Troy De Jongh.  Many thanks to Christoph Lameter 
 (christoph@lameter.com) and Mike McLagan (mike.mclagan@linux.org) who authored 
 and contributed to the original document. 
+
+Changelog:
+----------
+10-29-04:      Update status of driver, remove dead links in document
+               James Nelson <james4765@gmail.com>
+
+2000 (?)       Original Document
diff -urN malta/linux/Documentation/dnotify.txt 
malta/linux/Documentation/dnotify.txt
--- malta/linux/Documentation/dnotify.txt       2003/08/26 00:28:49     1.4
+++ malta/linux/Documentation/dnotify.txt       2005/06/21 13:20:28     
1.4.1000.1
@@ -54,6 +54,12 @@
 Also, files that are unlinked, will still cause notifications in the
 last directory that they were linked to.
 
+Configuration
+-------------
+
+Dnotify is controlled via the CONFIG_DNOTIFY configuration option.  When
+disabled, fcntl(fd, F_NOTIFY, ...) will return -EINVAL.
+
 Example
 -------
 
diff -urN malta/linux/Documentation/floppy.txt 
malta/linux/Documentation/floppy.txt
--- malta/linux/Documentation/floppy.txt        2000/08/08 12:37:17     1.3
+++ malta/linux/Documentation/floppy.txt        2005/06/21 13:20:28     
1.3.1000.1
@@ -13,15 +13,20 @@
  The floppy driver is configured using the 'floppy=' option in
 lilo. This option can be typed at the boot prompt, or entered in the
 lilo configuration file.
- Example: If your kernel is called linux-2.2.13, type the following line
+
+ Example: If your kernel is called linux-2.6.9, type the following line
 at the lilo boot prompt (if you have a thinkpad):
- linux-2.2.13 floppy=thinkpad
+
+ linux-2.6.9 floppy=thinkpad
+
 You may also enter the following line in /etc/lilo.conf, in the description
-of linux-2.2.13:
+of linux-2.6.9:
+
  append = "floppy=thinkpad"
 
  Several floppy related options may be given, example:
- linux-2.2.13 floppy=daring floppy=two_fdc
+
+ linux-2.6.9 floppy=daring floppy=two_fdc
  append = "floppy=daring floppy=two_fdc"
 
  If you give options both in the lilo config file and on the boot
@@ -29,17 +34,25 @@
 prompt options coming last. That's why there are also options to
 restore the default behavior.
 
+
+Module configuration options
+============================
+
  If you use the floppy driver as a module, use the following syntax:
- insmod floppy <options>
+modprobe floppy <options>
 
 Example:
- insmod floppy daring two_fdc
+ modprobe floppy omnibook messages
+
+ If you need certain options enabled every time you load the floppy driver,
+you can put:
+
+ options floppy omnibook messages
 
- Some versions of insmod are buggy in one way or another. If you have
-any problems (options not being passed correctly, segfaults during
-insmod), first check whether there is a more recent version.
+in /etc/modprobe.conf.
 
- The floppy related options include:
+
+ The floppy driver related options are:
 
  floppy=asus_pci
        Sets the bit mask to allow only units 0 and 1. (default)
@@ -99,7 +112,7 @@
        master arbitration error" messages from your Ethernet card (or
        from other devices) while accessing the floppy.
 
- floppy=fifo
+ floppy=usefifo
        Enables the FIFO. (default)
 
  floppy=<threshold>,fifo_depth
@@ -110,6 +123,7 @@
        lower, the interrupt latency should be lower too (faster
        processor). The benefit of a lower threshold is less
        interrupts.
+
        To tune the fifo threshold, switch on over/underrun messages
        using 'floppycontrol --messages'. Then access a floppy
        disk. If you get a huge amount of "Over/Underrun - retrying"
@@ -120,6 +134,7 @@
        fifo values without rebooting the machine for each test. Note
        that you need to do 'floppycontrol --messages' every time you
        re-insert the module.
+
        Usually, tuning the fifo threshold should not be needed, as
        the default (0xa) is reasonable.
 
@@ -128,6 +143,7 @@
        you have more than two floppy drives (only two can be
        described in the physical CMOS), or if your BIOS uses
        non-standard CMOS types. The CMOS types are:
+
                0 - Use the value of the physical CMOS
                1 - 5 1/4 DD
                2 - 5 1/4 HD
@@ -136,6 +152,7 @@
                5 - 3 1/2 ED
                6 - 3 1/2 ED
               16 - unknown or not installed
+
        (Note: there are two valid types for ED drives. This is because 5 was
        initially chosen to represent floppy *tapes*, and 6 for ED drives.
        AMI ignored this, and used 5 for ED drives. That's why the floppy
@@ -188,7 +205,6 @@
           in some more extreme cases."
 
 
-
 Supporting utilities and additional documentation:
 ==================================================
 
@@ -219,3 +235,11 @@
  Be sure to read the FAQ before mailing/posting any bug reports!
 
  Alain
+
+Changelog
+=========
+
+10-30-2004 :   Cleanup, updating, add reference to module configuration.
+               James Nelson <james4765@gmail.com>
+
+6-3-2000 :     Original Document
diff -urN malta/linux/Documentation/ftape.txt 
malta/linux/Documentation/ftape.txt
--- malta/linux/Documentation/ftape.txt 2004/03/11 16:46:39     1.7
+++ malta/linux/Documentation/ftape.txt 2005/06/21 13:20:28     1.7.1000.1
@@ -2,26 +2,21 @@
 =====
 
 This file describes some issues involved when using the "ftape"
-floppy tape device driver that comes with the Linux kernel. This
-document deals with ftape-3.04 and later. Please read the section
-"Changes" for the most striking differences between version 3.04 and
-2.08; the latter was the version of ftape delivered with the kernel
-until kernel version 2.0.30 and 2.1.57. ftape-3.x developed as the
-re-unification of ftape-2.x and zftape. zftape was developed in
-parallel with the stock ftape-2.x driver sharing the same hardware
-support but providing an enhanced file system interface. zftape also
-provided user transparent block-wise on-the-fly compression (regard it
-as a feature or bug of zftape).
+floppy tape device driver that comes with the Linux kernel.
 
 ftape has a home page at
 
-http://www-math.math.rwth-aachen.de/~LBFM/claus/ftape
+http://ftape.dot-heine.de/
 
 which contains further information about ftape. Please cross check
 this WWW address against the address given (if any) in the MAINTAINERS
 file located in the top level directory of the Linux kernel source
 tree.
 
+NOTE: This is an unmaintained set of drivers, and it is not guaranteed to work.
+If you are interested in taking over maintenance, contact Claus-Justus Heine
+<ch@dot-heine.de>, the former maintainer.
+
 Contents
 ========
 
@@ -31,9 +26,8 @@
    1. Goal
    2. I/O Block Size
    3. Write Access when not at EOD (End Of Data) or BOT (Begin Of Tape)
-   4. MTBSF - backspace over file mark and position at its EOT side
-   5. Formatting
-   6. Interchanging cartridges with other operating systems
+   4. Formatting
+   5. Interchanging cartridges with other operating systems
 
 B. Debugging Output
    1. Introduction
@@ -58,7 +52,7 @@
 versions of ftape and useful links to related topics can be found at
 the ftape home page at
 
-http://www-math.math.rwth-aachen.de/~LBFM/claus/ftape
+http://ftape.dot-heine.de/
 
 *******************************************************************************
 
@@ -70,7 +64,7 @@
    The goal of all that incompatibilities was to give ftape an interface
    that resembles the interface provided by SCSI tape drives as close
    as possible. Thus any Unix backup program that is known to work
-   with SCSI tape drives should also work with ftape-3.04 and above.
+   with SCSI tape drives should also work.
 
    The concept of a fixed block size for read/write transfers is
    rather unrelated to this SCSI tape compatibility at the file system
@@ -81,14 +75,8 @@
 
 2. I/O Block Size
    ~~~~~~~~~~~~~~
-   The probably most striking difference between ftape-2.x and
-   ftape-3.x with the zftape file system interface is the concept of a
-   fixed block size: data must be written to or read from the tape in
-   multiples of a fixed block size. The block size defaults to 10k
-   which is the default block size of GNU tar. While this is quite
-   usual for SCSI tapes (block size of 32k?) and the QIC-150 driver
-   `./drivers/char/tpqic02.c' ftape-2.x allowed data to be written in
-   arbitrary portions to the tape.
+   The block size defaults to 10k which is the default block size of
+   GNU tar.
 
    The block size can be tuned either during kernel configuration or
    at runtime with the MTIOCTOP ioctl using the MTSETBLK operation
@@ -109,53 +97,41 @@
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    zftape (the file system interface of ftape-3.x) denies write access
    to the tape cartridge when it isn't positioned either at BOT or
-   EOD. This inconvenience has been introduced as it was reported that
-   the former behavior of ftape-2.x which allowed write access at
-   arbitrary locations already has caused data loss with some backup
-   programs.
-
-4. MTBSF - backspace over file mark and position at its EOT side
-   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-   ftape-2.x didn't handle the MTBSF tape operation correctly. A MTBSF
-   call (i.e. "mt -f /dev/nqft0 bsf #COUNT") should space over #COUNT
-   file marks and then position at the EOT tape side of the file
-   mark. This has to be taken literally, i.e. "mt -f /dev/nqft0 bsf 1"
-   should simply position at the start of the current volume.
+   EOD.
 
-5. Formatting
+4. Formatting
    ~~~~~~~~~~
-   ftape-3.x DOES support formatting of floppy tape cartridges. You
-   need the `ftformat' program that is shipped with the modules version
-   of ftape-3.x. Please get the latest version of ftape from
+   ftape DOES support formatting of floppy tape cartridges. You need the
+   `ftformat' program that is shipped with the modules version of ftape.
+   Please get the latest version of ftape from
 
    ftp://sunsite.unc.edu/pub/Linux/kernel/tapes
 
    or from the ftape home page at
 
-   http://www-math.math.rwth-aachen.de/~LBFM/claus/ftape
+   http://ftape.dot-heine.de/
 
    `ftformat' is contained in the `./contrib/' subdirectory of that
    separate ftape package.
 
-6. Interchanging cartridges with other operating systems
+5. Interchanging cartridges with other operating systems
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
    The internal emulation of Unix tape device file marks has changed
-   completely. ftape-3.x now uses the volume table segment as specified
+   completely. ftape now uses the volume table segment as specified
    by the QIC-40/80/3010/3020/113 standards to emulate file marks. As
    a consequence there is limited support to interchange cartridges
    with other operating systems.
 
    To be more precise: ftape will detect volumes written by other OS's
    programs and other OS's programs will detect volumes written by
-   ftape-3.x.
+   ftape.
 
    However, it isn't possible to extract the data dumped to the tape
-   by some MSDOG program with ftape-3.x. This exceeds the scope of a
+   by some MSDOS program with ftape. This exceeds the scope of a
    kernel device driver. If you need such functionality, then go ahead
-   and write a user space utility that is able to do
-   that. ftape-3.x/zftape already provides all kernel level support
-   necessary to do that.
+   and write a user space utility that is able to do that. ftape already
+   provides all kernel level support necessary to do that.
 
 *******************************************************************************
 
@@ -200,7 +176,7 @@
 
    ii) trim the debugging output at module load time with
 
-       insmod ftape.o ft_tracing=#DBGLVL
+       modprobe ftape ft_tracing=#DBGLVL
 
        Of course, this applies only if you have configured ftape to be
        compiled as a module.
@@ -240,7 +216,7 @@
 2. Module load time parameters
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Module parameters can be specified either directly when invoking
-   the program 'insmod' at the shell prompt:
+   the program 'modprobe' at the shell prompt:
 
    modprobe ftape ft_tracing=4
 
@@ -277,6 +253,12 @@
        line documentation provided during that kernel configuration
        process.
 
+       ft_probe_fc10 is set to a non-zero value if you wish for ftape to
+       probe for a Colorado FC-10 or FC-20 controller.
+
+       ft_mach2 is set to a non-zero value if you wish for ftape to probe
+       for a Mountain MACH-2 controller.
+
         module                 |  kernel command line
         -----------------------|----------------------
         ft_fdc_base=BASE       |  ftape=BASE,ioport
@@ -316,10 +298,10 @@
    page to query for the most recent documentation, related work and
    development versions of ftape.
 
+   Changelog:
+   ==========
+
+~1996:         Original Document
 
- LocalWords:  ftape Linux zftape http www rwth aachen LBFM claus EOD config
- LocalWords:  datarate LocalWords BOT MTBSF EOT HOWTO QIC tpqic menuconfig
- LocalWords:  MTIOCTOP MTSETBLK mt dev qft setblk BLKSZ bsf zftape's xconfig
- LocalWords:  nqft ftformat ftp sunsite unc edu contrib ft MSDOG fdc
- LocalWords:  dma setdensity DBGLVL insmod lilo LI nux ader conf txt
- LocalWords:  modprobe IRQ BOOL ioport irq fc mach THR
+10-24-2004:    General cleanup and updating, noting additional module options.
+               James Nelson <james4765@gmail.com>
diff -urN malta/linux/Documentation/hw_random.txt 
malta/linux/Documentation/hw_random.txt
--- malta/linux/Documentation/hw_random.txt     2003/08/26 00:28:49     1.2
+++ malta/linux/Documentation/hw_random.txt     2005/06/21 13:20:29     
1.2.1000.1
@@ -67,72 +67,3 @@
 
        Special thanks to Matt Sottek.  I did the "guts", he
        did the "brains" and all the testing.
-
-Change history:
-
-       Version 1.0.0:
-       * Merge Intel, AMD, VIA RNG drivers into one.
-         Further changelog in BitKeeper.
-
-       Version 0.9.8:
-       * Support other i8xx chipsets by adding 82801E detection
-       * 82801DB detection is the same as for 82801CA.
-
-       Version 0.9.7:
-       * Support other i8xx chipsets too (by adding 82801BA(M) and
-         82801CA(M) detection)
-
-       Version 0.9.6:
-       * Internal driver cleanups, prep for 1.0.0 release.
-
-       Version 0.9.5:
-       * Rip out entropy injection via timer.  It never ever worked,
-         and a better solution (rngd) is now available.
-
-       Version 0.9.4:
-       * Fix: Remove request_mem_region
-       * Fix: Horrible bugs in FIPS calculation and test execution
-
-       Version 0.9.3:
-       * Clean up rng_read a bit.
-       * Update i810_rng driver Web site URL.
-       * Increase default timer interval to 4 samples per second.
-       * Abort if mem region is not available.
-       * BSS zero-initialization cleanup.
-       * Call misc_register() from rng_init_one.
-       * Fix O_NONBLOCK to occur before we schedule.
-
-       Version 0.9.2:
-       * Simplify open blocking logic
-
-       Version 0.9.1:
-       * Support i815 chipsets too (Matt Sottek)
-       * Fix reference counting when statically compiled (prumpf)
-       * Rewrite rng_dev_read (prumpf)
-       * Make module races less likely (prumpf)
-       * Small miscellaneous bug fixes (prumpf)
-       * Use pci table for PCI id list
-
-       Version 0.9.0:
-       * Don't register a pci_driver, because we are really
-         using PCI bridge vendor/device ids, and someone
-         may want to register a driver for the bridge. (bug fix)
-       * Don't let the usage count go negative (bug fix)
-       * Clean up spinlocks (bug fix)
-       * Enable PCI device, if necessary (bug fix)
-       * iounmap on module unload (bug fix)
-       * If RNG chrdev is already in use when open(2) is called,
-         sleep until it is available.
-       * Remove redundant globals rng_allocated, rng_use_count
-       * Convert numeric globals to unsigned
-       * Module unload cleanup
-
-       Version 0.6.2:
-       * Clean up spinlocks.  Since we don't have any interrupts
-         to worry about, but we do have a timer to worry about,
-         we use spin_lock_bh everywhere except the timer function
-         itself.
-       * Fix module load/unload.
-       * Fix timer function and h/w enable/disable logic
-       * New timer interval sysctl
-       * Clean up sysctl names
diff -urN malta/linux/Documentation/ide.txt malta/linux/Documentation/ide.txt
--- malta/linux/Documentation/ide.txt   2004/09/14 16:27:37     1.19.1000.2
+++ malta/linux/Documentation/ide.txt   2005/06/21 13:20:29     1.19.1000.3
@@ -248,13 +248,6 @@
                          allowing ide-floppy, ide-tape, and ide-cdrom|writers
                          to use ide-scsi emulation on a device specific option.
 
- "hdx=stroke"          : Should you have a system w/ an AWARD Bios and your
-                         drives are larger than 32GB and it will not boot,
-                         one is required to perform a few OEM operations first.
-                         The option is called "stroke" because it allows one
-                         to "soft clip" the drive to work around a barrier
-                         limit.
-
  "idebus=xx"           : inform IDE driver of VESA/PCI bus speed in MHz,
                          where "xx" is between 20 and 66 inclusive,
                          used when tuning chipset PIO modes.
@@ -304,7 +297,9 @@
 
  "ide=reverse"         : formerly called to pci sub-system, but now local.
 
-The following are valid ONLY on ide0 (except dc4030), which usually corresponds
+ "ide=nodma"           : disable DMA globally for the IDE subsystem.
+
+The following are valid ONLY on ide0, which usually corresponds
 to the first ATA interface found on the particular host, and the defaults for
 the base,ctl ports must not be altered.
 
@@ -315,7 +310,7 @@
  "ide0=qd65xx"         : probe/support qd65xx interface
  "ide0=ali14xx"                : probe/support ali14xx chipsets (ALI 
M1439/M1443/M1445)
  "ide0=umc8672"                : probe/support umc8672 chipsets
- "idex=dc4030"         : probe/support Promise DC4030VL interface
+
  "ide=doubler"         : probe/support IDE doublers on Amiga
 
 There may be more options than shown -- use the source, Luke!
diff -urN malta/linux/Documentation/ioctl-number.txt 
malta/linux/Documentation/ioctl-number.txt
--- malta/linux/Documentation/ioctl-number.txt  2004/09/14 16:27:37     
1.28.1000.1
+++ malta/linux/Documentation/ioctl-number.txt  2005/06/21 13:20:29     
1.28.1000.2
@@ -72,6 +72,7 @@
 0x09   all     linux/md.h
 0x12   all     linux/fs.h
                linux/blkpg.h
+0x1b   all     InfiniBand Subsystem    <http://www.openib.org/>
 0x20   all     drivers/cdrom/cm206.h
 0x22   all     scsi/sg.h
 '#'    00-3F   IEEE 1394 Subsystem     Block for the entire subsystem
@@ -117,6 +118,7 @@
                                        <mailto:natalia@nikhefk.nikhef.nl>
 'c'    00-7F   linux/comstats.h        conflict!
 'c'    00-7F   linux/coda.h            conflict!
+'d'    00-FF   linux/char/drm/drm/h    conflict!
 'd'    00-1F   linux/devfs_fs.h        conflict!
 'd'    00-DF   linux/video_decoder.h   conflict!
 'd'    F0-FF   linux/digi1.h
@@ -144,7 +146,7 @@
 'p'    40-7F   linux/nvram.h
 'p'    80-9F                           user-space parport
                                        <mailto:tim@cyberelk.net>
-'q'    00-1F   linux/videotext.h       conflict!
+'q'    00-1F   linux/serio.h
 'q'    80-FF                           Internet PhoneJACK, Internet LineJACK
                                        <http://www.quicknet.net>
 'r'    00-1F   linux/msdos_fs.h
@@ -162,6 +164,7 @@
 'z'    40-7F                           CAN bus card
                                        <mailto:oe@port.de>
 0x80   00-1F   linux/fb.h
+0x81   00-1F   linux/videotext.h
 0x89   00-06   asm-i386/sockios.h
 0x89   0B-DF   linux/sockios.h
 0x89   E0-EF   linux/sockios.h         SIOCPROTOPRIVATE range
diff -urN malta/linux/Documentation/kernel-docs.txt 
malta/linux/Documentation/kernel-docs.txt
--- malta/linux/Documentation/kernel-docs.txt   2004/05/12 17:14:19     
1.10.1000.1
+++ malta/linux/Documentation/kernel-docs.txt   2005/06/21 13:20:29     
1.10.1000.2
@@ -39,6 +39,13 @@
    
      ON-LINE DOCS:
        
+     * Title: "Linux Device Drivers, Third Edition"
+       Author: Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
+       URL: http://lwn.net/Kernel/LDD3/
+       Description: A 600-page book covering the (2.6.10) driver
+       programming API and kernel hacking in general.  Available under the
+       Creative Commons Attribution-ShareAlike 2.0 license.
+
      * Title: "The Linux Kernel"
        Author: David A. Rusling.
        URL: http://www.tldp.org/LDP/tlk/tlk.html
diff -urN malta/linux/Documentation/kernel-parameters.txt 
malta/linux/Documentation/kernel-parameters.txt
--- malta/linux/Documentation/kernel-parameters.txt     2004/09/14 16:27:37     
1.39.1000.2
+++ malta/linux/Documentation/kernel-parameters.txt     2005/06/21 13:20:29     
1.39.1000.3
@@ -29,6 +29,7 @@
        CD      Appropriate CD support is enabled.
        DEVFS   devfs support is enabled. 
        DRM     Direct Rendering Management support is enabled. 
+       EDD     BIOS Enhanced Disk Drive Services (EDD) is enabled
        EFI     EFI Partitioning (GPT) is enabled
        EIDE    EIDE/ATAPI support is enabled.
        FB      The frame buffer device is enabled.
@@ -50,9 +51,11 @@
        MOUSE   Appropriate mouse support is enabled.
        MTD     MTD support is enabled.
        NET     Appropriate network support is enabled.
+       NUMA    NUMA support is enabled.
        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.
@@ -64,17 +67,22 @@
        SCSI    Appropriate SCSI support is enabled.
                        A lot of drivers has their options described inside of
                        Documentation/scsi/.
+       SELINUX SELinux support is enabled.
        SERIAL  Serial support is enabled.
        SMP     The kernel is an SMP kernel.
        SPARC   Sparc architecture is enabled.
        SWSUSP  Software suspension is enabled.
        TS      Appropriate touchscreen support is enabled.
        USB     USB support is enabled.
+       USBHID  USB Human Interface Device support is enabled.
        V4L     Video For Linux support is enabled.
        VGA     The VGA console has been enabled.
        VT      Virtual terminal support is enabled.
        WDT     Watchdog support is enabled.
        XT      IBM PC/XT MFM hard disk support is enabled.
+       X86-64  X86-64 architecture is enabled.
+                       More X86-64 boot options can be found in
+                       Documentation/x86_64/boot-options.txt .
 
 In addition, the following text indicates that the option:
 
@@ -97,9 +105,6 @@
                        See header of drivers/scsi/53c7xx.c.
                        See also Documentation/scsi/ncr53c7xx.txt.
 
-       98busmouse.irq= [HW,MOUSE] PC-9801 Bus Mouse Driver
-                       Format: <irq>, default is 13
-
        acpi=           [HW,ACPI] Advanced Configuration and Power Interface 
                        Format: { force | off | ht | strict }
                        force -- enable ACPI if default was off
@@ -138,6 +143,22 @@
                        Recognize and ignore IRQ0/pin2 Interrupt Override.
                        For broken nForce2 BIOS resulting in XT-PIC timer.
 
+       acpi_dbg_layer= [HW,ACPI]
+                       Format: <int>
+                       Each bit of the <int> indicates an acpi debug layer,
+                       1: enable, 0: disable. It is useful for boot time
+                       debugging. After system has booted up, it can be set
+                       via /proc/acpi/debug_layer.
+
+       acpi_dbg_level= [HW,ACPI]
+                       Format: <int>
+                       Each bit of the <int> indicates an acpi debug level,
+                       1: enable, 0: disable. It is useful for boot time
+                       debugging. After system has booted up, it can be set
+                       via /proc/acpi/debug_level.
+
+       acpi_fake_ecdt  [HW,ACPI] Workaround failure due to BIOS lacking ECDT
+
        ad1816=         [HW,OSS]
                        Format: <io>,<irq>,<dma>,<dma2>
                        See also Documentation/sound/oss/AD1816.
@@ -210,15 +231,19 @@
 
        atascsi=        [HW,SCSI] Atari SCSI
 
-       atkbd.extra=    [HW] Enable extra LEDs and keys on IBM RapidAccess, 
EzKey
-                       and similar keyboards
+       atkbd.extra=    [HW] Enable extra LEDs and keys on IBM RapidAccess,
+                       EzKey and similar keyboards
 
        atkbd.reset=    [HW] Reset keyboard during initialization
 
        atkbd.set=      [HW] Select keyboard code set 
                        Format: <int> (2 = AT (default) 3 = PS/2)
 
-       atkbd.scroll=   [HW] Enable scroll wheel on MS Office and similar 
keyboards
+       atkbd.scroll=   [HW] Enable scroll wheel on MS Office and similar
+                       keyboards
+
+       atkbd.softraw=  [HW] Choose between synthetic and real raw mode
+                       Format: <bool> (0 = real, 1 = synthetic (default))
        
        atkbd.softrepeat=
                        [HW] Use software keyboard repeat
@@ -275,6 +300,14 @@
                        See header of drivers/cdrom/cdu31a.c.
 
        chandev=        [HW,NET] Generic channel device initialisation
+
+       checkreqprot    [SELINUX] Set initial checkreqprot flag value.
+                       Format: { "0" | "1" }
+                       See security/selinux/Kconfig help text.
+                       0 -- check protection applied by kernel (includes any 
implied execute protection).
+                       1 -- check protection requested by application.
+                       Default value is set via a kernel config option.
+                       Value can be changed at runtime via 
/selinux/checkreqprot.
  
        clock=          [BUGS=IA-32, HW] gettimeofday timesource override. 
                        Forces specified timesource (if avaliable) to be used
@@ -300,8 +333,24 @@
        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<n>  Use the virtual console device <n>.
+
+               ttyS<n>[,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,<addr>[,options]
+               uart,mmio,<addr>[,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: 
<first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]
@@ -357,7 +406,7 @@
 
        dtc3181e=       [HW,SCSI]
 
-       earlyprintk=    [x86, x86_64]
+       earlyprintk=    [IA-32, X86-64]
                        earlyprintk=vga
                        earlyprintk=serial[,ttySn[,baudrate]]
 
@@ -380,10 +429,14 @@
 
        edb=            [HW,PS2]
 
+       edd=            [EDD]
+                       Format: {"of[f]" | "sk[ipmbr]"}
+                       See comment in arch/i386/boot/edd.S
+
        eicon=          [HW,ISDN] 
                        Format: <id>,<membase>,<irq>
 
-       eisa_irq_edge=  [PARISC]
+       eisa_irq_edge=  [PARISC,HW]
                        See header of drivers/parisc/eisa.c.
 
        elanfreq=       [IA-32]
@@ -392,7 +445,16 @@
 
        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.
+
+       enforcing       [SELINUX] Set initial enforcing status.
+                       Format: {"0" | "1"}
+                       See security/selinux/Kconfig help text.
+                       0 -- permissive (log only, no denials).
+                       1 -- enforcing (deny and log).
+                       Default value is 0.
+                       Value can be changed at runtime via /selinux/enforce.
 
        es1370=         [HW,OSS]
                        Format: <lineout>[,<micbias>]
@@ -445,6 +507,10 @@
  
        gvp11=          [HW,SCSI]
 
+       hashdist=       [KNL,NUMA] Large hashes allocated during boot
+                       are distributed across NUMA nodes.  Defaults on
+                       for IA-64, off otherwise.
+
        hcl=            [IA-64] SGI's Hardware Graph compatibility layer
 
        hd=             [EIDE] (E)IDE hard drive subsystem geometry
@@ -453,6 +519,11 @@
        hd?=            [HW] (E)IDE subsystem
        hd?lun=         See Documentation/ide.txt.
 
+       highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an exact
+                       size of <nn>. This works even on boxes that have no
+                       highmem otherwise. This also works to reduce highmem
+                       size on bigger boxes.
+
        hisax=          [HW,ISDN]
                        See Documentation/isdn/README.HiSax.
 
@@ -467,21 +538,36 @@
        i8042.noaux     [HW] Don't check for auxiliary (== mouse) port
        i8042.nomux     [HW] Don't check presence of an active multiplexing
                             controller
+       i8042.nopnp     [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX
+                            controllers
+       i8042.panicblink=
+                       [HW] Frequency with which keyboard LEDs should blink
+                            when kernel panics (default is 0.5 sec)
        i8042.reset     [HW] Reset the controller during init and cleanup
        i8042.unlock    [HW] Unlock (ignore) the keylock
 
        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: <io>[,<membase>[,<icn_id>[,<icn_id2>]]]
 
+       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
@@ -528,6 +614,20 @@
        isapnp=         [ISAPNP]
                        Format: <RDP>, <reset>, <pci_scan>, <verbosity>
 
+       isolcpus=       [KNL,SMP] Isolate CPUs from the general scheduler.
+                       Format: <cpu number>,...,<cpu number>
+                       This option can be used to specify one or more CPUs
+                       to isolate from the general SMP balancing and scheduling
+                       algorithms. The only way to move a process onto or off
+                       an "isolated" CPU is via the CPU affinity syscalls.
+                       <cpu number> begins at 0 and the maximum value is
+                       "number of CPUs in system - 1".
+
+                       This option is the preferred way to isolate CPUs. The
+                       alternative - manually setting the CPU mask of all tasks
+                       in the system can cause problems and suboptimal load
+                       balancer performance.
+
        isp16=          [HW,CD]
                        Format: <io>,<irq>,<dma>,<setup>
 
@@ -538,6 +638,9 @@
 
        keepinitrd      [HW,ARM]
 
+       kstack=N        [IA-32, X86-64] Print N words from the kernel stack
+                       in oops dumps.
+
        l2cr=           [PPC]
 
        lapic           [IA-32,APIC] Enable the local APIC even if BIOS 
disabled it.
@@ -558,6 +661,20 @@
        logibm.irq=     [HW,MOUSE] Logitech Bus Mouse Driver
                        Format: <irq>
 
+       loglevel=       All Kernel Messages with a loglevel smaller than the
+                       console loglevel will be printed to the console. It can
+                       also be changed with klogd or other programs. The
+                       loglevels are defined as follows:
+
+                       0 (KERN_EMERG)          system is unusable
+                       1 (KERN_ALERT)          action must be taken immediately
+                       2 (KERN_CRIT)           critical conditions
+                       3 (KERN_ERR)            error conditions
+                       4 (KERN_WARNING)        warning conditions
+                       5 (KERN_NOTICE)         normal but significant condition
+                       6 (KERN_INFO)           informational
+                       7 (KERN_DEBUG)          debug-level messages
+
        log_buf_len=n   Sets the size of the printk ring buffer, in bytes.
                        Format is n, nk, nM.  n must be a power of two.  The
                        default is set in kernel config.
@@ -579,6 +696,20 @@
                                so, the driver will manage that printer.
                                See also header of drivers/char/lp.c.
 
+       lpj=n           [KNL]
+                       Sets loops_per_jiffy to given constant, thus avoiding
+                       time-consuming boot-time autodetection (up to 250 ms per
+                       CPU). 0 enables autodetection (default). To determine
+                       the correct value for your kernel, boot with normal
+                       autodetection and see what value is printed. Note that
+                       on SMP systems the preset will be applied to all CPUs,
+                       which is likely to cause problems if your CPUs need
+                       significantly divergent settings. An incorrect value
+                       will cause delays in the kernel to be wrong, leading to
+                       unpredictable I/O errors and other breakage. Although
+                       unlikely, in the extreme case this might damage your
+                       hardware.
+
        ltpc=           [NET]
                        Format: <io>,<irq>,<dma>
 
@@ -587,7 +718,11 @@
 
        mac53c9x=       [HW,SCSI]
                        Format: 
<num_esps>,<disconnect>,<nosync>,<can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags>
-       
+
+       machvec=        [IA64]
+                       Force the use of a particular machine-vector (machvec) 
in a generic
+                       kernel.  Example: machvec=hpzx1_swiotlb
+
        mad16=          [HW,OSS]
                        Format: 
<io>,<irq>,<dma>,<dma16>,<mpu_io>,<mpu_irq>,<joystick>
 
@@ -601,9 +736,10 @@
        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.
 
@@ -628,6 +764,9 @@
        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.
@@ -650,11 +789,17 @@
                        [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]
 
+       mousedev.tap_time=
+                       [MOUSE] Maximum time between finger touching and
+                       leaving touchpad surface for touch to be considered
+                       a tap and be reported as a left button click (for
+                       touchpads working in absolute mode only).
+                       Format: <msecs>
        mousedev.xres=  [MOUSE] Horizontal screen resolution, used for devices
                        reporting absolute coordinates, such as tablets
        mousedev.yres=  [MOUSE] Vertical screen resolution, used for devices
@@ -672,6 +817,10 @@
        mtdparts=       [MTD]
                        See drivers/mtd/cmdline.c.
 
+       mtouchusb.raw_coordinates=
+                       [HW] Make the MicroTouch USB driver use raw coordinates 
('y', default)
+                       or cooked coordinates ('n')
+
        n2=             [NET] SDL Inc. RISCom/N2 synchronous serial card
 
        NCR_D700=       [HW,SCSI]
@@ -706,8 +855,8 @@
 
        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.
@@ -721,20 +870,25 @@
 
        noexec          [IA-64]
 
-       noexec          [i386]
+       noexec          [IA-32, 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
                        instruction doesn't work correctly and not to
                        use it.
 
+       nohalt          [IA-64] Tells the kernel not to use the power saving
+                       function PAL_HALT_LIGHT when idle. This increases
+                       power-consumption. On the positive side, it reduces
+                       interrupt wake-up latency, which may improve performance
+                       in certain environments such as networked servers or
+                       real-time systems.
+
        noirqdebug      [IA-32] Disables the code which attempts to detect and
                        disable unhandled interrupt sources.
 
@@ -752,6 +906,8 @@
 
        nomce           [IA-32] Machine Check Exception
 
+       noresidual      [PPC] Don't use residual data on PReP machines.
+
        noresume        [SWSUSP] Disables resume and restore original swap 
space.
  
        no-scroll       [VGA] Disables scrollback.
@@ -792,6 +948,13 @@
        panic=          [KNL] Kernel behaviour on panic
                        Format: <timeout>
 
+       parkbd.port=    [HW] Parallel port number the keyboard adapter is
+                       connected to, default is 0.
+                       Format: <parport#>
+       parkbd.mode=    [HW] Parallel port keyboard adapter mode of operation,
+                       0 for XT, 1 for AT (default is AT).
+                       Format: <mode> 
+
        parport=0       [HW,PPT]        Specify parallel ports. 0 disables.
        parport=auto                    Use 'auto' to force the driver to use
        parport=0xBBB[,IRQ[,DMA]]       any IRQ/DMA settings detected (the
@@ -807,6 +970,16 @@
                                        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: 
<io>,<irq>,<dma>,<dma16>,<sb_io>,<sb_irq>,<sb_dma>,<sb_dma16>
  
@@ -862,12 +1035,28 @@
                                        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
+                                       from the bootloader. This is currently
+                                       used on IXP2000 systems where the
+                                       bus has to be configured a certain way
+                                       for adjunct CPUs.
 
        pcmv=           [HW,PCMCIA] BadgePAD 4
 
        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.
 
@@ -881,6 +1070,9 @@
                        Format: { parport<nr> | timid | 0 }
                        See also Documentation/parport.txt.
 
+       pnpacpi=        [ACPI]
+                       { off }
+
        pnpbios=        [ISAPNP]
                        { on | off | curr | res | no-curr | no-res }
 
@@ -898,7 +1090,14 @@
                        Ranges are in pairs (memory base and size).
 
        profile=        [KNL] Enable kernel profiling via /proc/profile
-                       (param: profile step/bucket size as a power of 2)
+                       { schedule | <number> }
+                       (param: schedule - profile schedule points}
+                       (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.
@@ -941,10 +1140,6 @@
                        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: <reboot_mode>[,<reboot_mode2>[,...]]
                        See arch/*/kernel/reboot.c.
@@ -963,6 +1158,9 @@
 
        root=           [KNL] Root filesystem
 
+       rootdelay=      [KNL] Delay (in seconds) to pause before attempting to
+                       mount the root filesystem
+
        rootflags=      [KNL] Set root filesystem mount option string
 
        rootfstype=     [KNL] Set root filesystem type
@@ -1000,13 +1198,17 @@
 
        scsi_logging=   [SCSI]
 
-       scsihosts=      [SCSI]
+       selinux         [SELINUX] Disable or enable SELinux at boot time.
+                       Format: { "0" | "1" }
+                       See security/selinux/Kconfig help text.
+                       0 -- disable.
+                       1 -- enable.
+                       Default value is set via kernel config option.
+                       If enabled at boot time, /selinux/disable can be used
+                       later to disable prior to initial policy load.
 
        serialnumber    [BUGS=IA-32]
 
-       sf16fm=         [HW] SF16FMI radio driver for Linux
-                       Format: <io>
-
        sg_def_reserved_size=
                        [SCSI]
  
@@ -1159,17 +1361,12 @@
        sonycd535=      [HW,CD]
                        Format: <io>[,<irq>]
 
-       sonypi=         [HW] Sony Programmable I/O Control Device driver
-                       Format: 
<minor>,<verbose>,<fnkeyinit>,<camera>,<compat>,<nojogdial>
+       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=
@@ -1184,7 +1381,7 @@
        st0x=           [HW,SCSI]
                        See header of drivers/scsi/seagate.c.
 
-       sti=            [HW]
+       sti=            [PARISC,HW]
                        Format: <num>
                        Set the STI (builtin display/keyboard on the HP-PARISC
                        machines) console (graphic card) which should be used
@@ -1206,9 +1403,6 @@
        sym53c416=      [HW,SCSI]
                        See header of drivers/scsi/sym53c416.c.
 
-       sym53c8xx=      [HW,SCSI]
-                       See Documentation/scsi/ncr53c8xx.txt.
-
        t128=           [HW,SCSI]
                        See header of drivers/scsi/t128.c.
 
@@ -1217,12 +1411,15 @@
        thash_entries=  [KNL,NET]
                        Set number of hash buckets for TCP connection
 
-       tipar=          [HW]
-                       See header of drivers/char/tipar.c.
+       time            Show timing data prefixed to each printk message line
+
+       tipar.timeout=  [HW,PPT]
+                       Set communications timeout in tenths of a second
+                       (default 15).
+
+       tipar.delay=    [HW,PPT]
+                       Set inter-bit delay in microseconds (default 10).
 
-       tiusb=          [HW,USB] Texas Instruments' USB GraphLink (aka 
SilverLink)
-                       Format: <timeout>
- 
        tmc8xx=         [HW,SCSI]
                        See header of drivers/scsi/seagate.c.
 
@@ -1251,6 +1448,11 @@
 
        uart6850=       [HW,OSS]
                        Format: <io>,<irq>
+
+       usb-handoff     [HW] Enable early USB BIOS -> OS handoff
+
+       usbhid.mousepoll=
+                       [USBHID] The interval which mice are to be polled at.
  
        video=          [FB] Frame buffer configuration
                        See Documentation/fb/modedb.txt.
@@ -1261,6 +1463,12 @@
                        This is actually a boot loader parameter; the value is
                        passed to the kernel using a special protocol.
 
+       vmalloc=nn[KMG] [KNL,BOOT] forces the vmalloc area to have an exact
+                       size of <nn>. This can be used to increase the
+                       minimum size (128MB on x86). It can also be used to
+                       decrease the size and leave more room for directly
+                       mapped kernel RAM.
+
        vmhalt=         [KNL,S390]
 
        vmpoff=         [KNL,S390] 
diff -urN malta/linux/Documentation/laptop-mode.txt 
malta/linux/Documentation/laptop-mode.txt
--- malta/linux/Documentation/laptop-mode.txt   2004/09/14 16:27:37     
1.1.1000.2
+++ malta/linux/Documentation/laptop-mode.txt   2005/06/21 13:20:29     
1.1.1000.3
@@ -249,7 +249,7 @@
 # playing.
 #READAHEAD=4096
 
-# Shall we remount journaled fs. with appropiate commit interval? (1=yes)
+# Shall we remount journaled fs. with appropriate commit interval? (1=yes)
 #DO_REMOUNTS=1
 
 # And shall we add the "noatime" option to that as well? (1=yes)
diff -urN malta/linux/Documentation/md.txt malta/linux/Documentation/md.txt
--- malta/linux/Documentation/md.txt    2004/09/14 16:27:37     1.5.1000.1
+++ malta/linux/Documentation/md.txt    2005/06/21 13:20:29     1.5.1000.2
@@ -45,7 +45,8 @@
 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 @@
 ------------------
 
 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 @@
 
 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 @@
 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 @@
 
 
 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 -urN malta/linux/Documentation/memory.txt 
malta/linux/Documentation/memory.txt
--- malta/linux/Documentation/memory.txt        2001/12/02 11:34:34     1.3
+++ malta/linux/Documentation/memory.txt        2005/06/21 13:20:29     
1.3.1000.1
@@ -21,6 +21,8 @@
 All of these problems can be addressed with the "mem=XXXM" boot option
 (where XXX is the size of RAM to use in megabytes).  
 It can also tell Linux to use less memory than is actually installed.
+If you use "mem=" on a machine with PCI, consider using "memmap=" to avoid
+physical address space collisions.
 
 See the documentation of your boot loader (LILO, loadlin, etc.) about
 how to pass options to the kernel.
@@ -44,7 +46,9 @@
        * Disabling the cache from the BIOS.
 
        * Try passing the "mem=4M" option to the kernel to limit
-         Linux to using a very small amount of memory.
+         Linux to using a very small amount of memory. Use "memmap="-option
+         together with "mem=" on systems with PCI to avoid physical address
+         space collisions.
 
 
 Other tricks:
diff -urN malta/linux/Documentation/nmi_watchdog.txt 
malta/linux/Documentation/nmi_watchdog.txt
--- malta/linux/Documentation/nmi_watchdog.txt  2004/09/14 16:27:37     
1.7.1000.1
+++ malta/linux/Documentation/nmi_watchdog.txt  2005/06/21 13:20:29     
1.7.1000.2
@@ -54,6 +54,20 @@
 cannot even accept NMI interrupts, or the crash has made the kernel
 unable to print messages.
 
+Be aware that when using local APIC, the frequency of NMI interrupts
+it generates, depends on the system load. The local APIC NMI watchdog,
+lacking a better source, uses the "cycles unhalted" event. As you may
+guess it doesn't tick when the CPU is in the halted state (which happens
+when the system is idle), but if your system locks up on anything but the
+"hlt" processor instruction, the watchdog will trigger very soon as the
+"cycles unhalted" event will happen every clock tick. If it locks up on
+"hlt", then you are out of luck -- the event will not happen at all and the
+watchdog won't trigger. This is a shortcoming of the local APIC watchdog
+-- unfortunately there is no "clock ticks" event that would work all the
+time. The I/O APIC watchdog is driven externally and has no such shortcoming.  
+But its NMI frequency is much higher, resulting in a more significant hit
+to the overall system performance.
+
 NOTE: starting with 2.4.2-ac18 the NMI-oopser is disabled by default,
 you have to enable it with a boot time parameter.  Prior to 2.4.2-ac18
 the NMI-oopser is enabled unconditionally on x86 SMP boxes.
diff -urN malta/linux/Documentation/oops-tracing.txt 
malta/linux/Documentation/oops-tracing.txt
--- malta/linux/Documentation/oops-tracing.txt  2003/07/11 02:13:09     1.13
+++ malta/linux/Documentation/oops-tracing.txt  2005/06/21 13:20:29     
1.13.1000.1
@@ -1,23 +1,22 @@
+NOTE: ksymoops is useless on 2.6.  Please use the Oops in its original format
+(from dmesg, etc).  Ignore any references in this or other docs to "decoding
+the Oops" or "running it through ksymoops".  If you post an Oops fron 2.6 that
+has been run through ksymoops, people will just tell you to repost it.
+
 Quick Summary
 -------------
 
-Install ksymoops from
-ftp://ftp.<country>.kernel.org/pub/linux/utils/kernel/ksymoops
-Read the ksymoops man page.
-ksymoops < the_oops.txt
-
-and send the output the maintainer of the kernel area that seems to be
-involved with the problem, not to the ksymoops maintainer. Don't worry
-too much about getting the wrong person. If you are unsure send it to
-the person responsible for the code relevant to what you were doing.
-If it occurs repeatably try and describe how to recreate it. Thats
-worth even more than the oops
+Find the Oops and send it to the maintainer of the kernel area that seems to be
+involved with the problem.  Don't worry too much about getting the wrong 
person.
+If you are unsure send it to the person responsible for the code relevant to
+what you were doing.  If it occurs repeatably try and describe how to recreate
+it.  That's worth even more than the oops.
 
 If you are totally stumped as to whom to send the report, send it to 
 linux-kernel@vger.kernel.org. Thanks for your help in making Linux as
 stable as humanly possible.
 
-Where is the_oops.txt?
+Where is the Oops?
 ----------------------
 
 Normally the Oops text is read from the kernel buffers by klogd and
@@ -43,15 +42,14 @@
     them yourself.  Search kernel archives for kmsgdump, lkcd and
     oops+smram.
 
-No matter how you capture the log output, feed the resulting file to
-ksymoops along with /proc/ksyms and /proc/modules that applied at the
-time of the crash.  /var/log/ksymoops can be useful to capture the
-latter, man ksymoops for details.
-
 
 Full Information
 ----------------
 
+NOTE: the message from Linus below applies to 2.4 kernel.  I have preserved it
+for historical reasons, and because some of the information in it still
+applies.  Especially, please ignore any references to ksymoops. 
+
 From: Linus Torvalds <torvalds@osdl.org>
 
 How to track down an Oops.. [originally a mail to linux-kernel]
diff -urN malta/linux/Documentation/parport.txt 
malta/linux/Documentation/parport.txt
--- malta/linux/Documentation/parport.txt       2004/03/11 16:46:39     1.19
+++ malta/linux/Documentation/parport.txt       2005/06/21 13:20:30     
1.19.1000.1
@@ -264,5 +264,5 @@
     io=0x378 irq=7 dma=none (for PIO)
     io=0x378 irq=7 dma=3 (for DMA)
 --
-Philip.Blundell@pobox.com
+philb@gnu.org
 tim@cyberelk.net
diff -urN malta/linux/Documentation/pci.txt malta/linux/Documentation/pci.txt
--- malta/linux/Documentation/pci.txt   2004/09/14 16:27:37     1.21.1000.1
+++ malta/linux/Documentation/pci.txt   2005/06/21 13:20:30     1.21.1000.2
@@ -99,10 +99,10 @@
 Users need pass only as many fields as necessary; vendor, device,
 subvendor, and subdevice fields default to PCI_ANY_ID (FFFFFFFF),
 class and classmask fields default to 0, and driver_data defaults to
-0UL.  Device drivers must call
-   pci_dynids_set_use_driver_data(pci_driver *, 1)
-in order for the driver_data field to get passed to the driver.
-Otherwise, only a 0 is passed in that field.
+0UL.  Device drivers must initialize use_driver_data in the dynids struct
+in their pci_driver struct prior to calling pci_register_driver in order
+for the driver_data field to get passed to the driver. Otherwise, only a
+0 is passed in that field.
 
 When the driver exits, it just calls pci_unregister_driver() and the PCI layer
 automatically calls the remove hook for all devices handled by the driver.
@@ -141,26 +141,24 @@
 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,13 @@
                                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()
+pci_find_slot()                        Superseded by pci_get_slot()
+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 -urN malta/linux/Documentation/pm.txt malta/linux/Documentation/pm.txt
--- malta/linux/Documentation/pm.txt    2001/12/19 00:02:53     1.5
+++ malta/linux/Documentation/pm.txt    2005/06/21 13:20:30     1.5.1000.1
@@ -36,8 +36,8 @@
   apmd:   http://worldvisions.ca/~apenwarr/apmd/
   acpid:  http://acpid.sf.net/
 
-Driver Interface
-----------------
+Driver Interface -- OBSOLETE, DO NOT USE!
+----------------*************************
 If you are writing a new driver or maintaining an old driver, it
 should include power management support.  Without power management
 support, a single driver may prevent a system with power management
@@ -91,54 +91,6 @@
 void pm_unregister_all(pm_callback cback);
 
 /*
- * Device idle/use detection
- *
- * In general, drivers for all devices should call "pm_access"
- * before accessing the hardware (ie. before reading or modifying
- * a hardware register).  Request or packet-driven drivers should
- * additionally call "pm_dev_idle" when a device is not being used.
- *
- * Examples:
- * 1) A keyboard driver would call pm_access whenever a key is pressed
- * 2) A network driver would call pm_access before submitting
- *    a packet for transmit or receive and pm_dev_idle when its
- *    transfer and receive queues are empty.
- * 3) A VGA driver would call pm_access before it accesses any
- *    of the video controller registers
- *
- * Ultimately, the PM policy manager uses the access and idle
- * information to decide when to suspend individual devices
- * or when to suspend the entire system
- */
-
-/*
- * Description: Update device access time and wake up device, if necessary
- *
- * Parameters:
- *   dev - PM device previously returned from pm_register
- *
- * Details: If called from an interrupt handler pm_access updates
- *          access time but should never need to wake up the device
- *          (if device is generating interrupts, it should be awake
- *          already)  This is important as we can not wake up
- *          devices from an interrupt handler.
- */
-void pm_access(struct pm_dev *dev);
-
-/*
- * Description: Identify device as currently being idle
- *
- * Parameters:
- *   dev - PM device previously returned from pm_register
- *
- * Details: A call to pm_dev_idle might signal to the policy manager
- *          to put a device to sleep.  If a new device request arrives
- *          between the call to pm_dev_idle and the pm_callback
- *          callback, the driver should fail the pm_callback request.
- */
-void pm_dev_idle(struct pm_dev *dev);
-
-/*
  * Power management request callback
  *
  * Parameters:
@@ -262,31 +214,14 @@
 
 ACPI Development mailing list: acpi-devel@lists.sourceforge.net
 
-System Interface
-----------------
+System Interface -- OBSOLETE, DO NOT USE!
+----------------*************************
 If you are providing new power management support to Linux (ie.
 adding support for something like APM or ACPI), you should
 communicate with drivers through the existing generic power
 management interface.
 
 /*
- * Send a request to a single device
- *
- * Parameters:
- *   dev - PM device previously returned from pm_register or pm_find
- *   rqst - request type
- *   data - data, if any, associated with the request
- *
- * Returns: 0 if the request is successful
- *          See "pm_callback" return for errors
- *
- * Details: Forward request to device callback and, if a suspend
- *          or resume request, update the pm_dev "state" field
- *          appropriately
- */
-int pm_send(struct pm_dev *dev, pm_request_t rqst, void *data);
-
-/*
  * Send a request to all devices
  *
  * Parameters:
diff -urN malta/linux/Documentation/ramdisk.txt 
malta/linux/Documentation/ramdisk.txt
--- malta/linux/Documentation/ramdisk.txt       1998/08/25 09:12:49     1.3
+++ malta/linux/Documentation/ramdisk.txt       2005/06/21 13:20:30     
1.3.1000.1
@@ -5,115 +5,66 @@
 
        1) Overview
        2) Kernel Command Line Parameters
-       3) Using "rdev -r" With New Kernels
+       3) Using "rdev -r"
        4) An Example of Creating a Compressed RAM Disk 
 
 
 1) Overview
 -----------
 
-As of kernel v1.3.48, the RAM disk driver was substantially changed.
-
-The older versions would grab a chunk of memory off the top before
-handing the remainder to the kernel at boot time. Thus a size parameter
-had to be specified via "ramdisk=1440" or "rdev -r /dev/fd0 1440" so
-that the driver knew how much memory to grab.
-
-Now the RAM disk dynamically grows as more space is required. It does
-this by using RAM from the buffer cache. The driver marks the buffers
-it is using with a new "BH_Protected" flag so that the kernel does 
-not try to reuse them later. This means that the old size parameter
-is no longer used, new command line parameters exist, and the behavior
-of the "rdev -r" or "ramsize" (usually a symbolic link to "rdev")
-command has changed.
-
-Also, the new RAM disk supports up to 16 RAM disks out of the box, and can
-be reconfigured in rd.c to support up to 255 RAM disks.  To use multiple
-RAM disk support with your system, run 'mknod /dev/ramX b 1 X' and chmod
-(to change its permissions) it to your liking.  The default /dev/ram(disk)
-uses minor #1, so start with ram2 and go from there.
-
-The old "ramdisk=<ram_size>" has been changed to "ramdisk_size=<ram_size>"
-to make it clearer.  The original "ramdisk=<ram_size>" has been kept around
-for compatibility reasons, but it will probably be removed in 2.1.x.
+The RAM disk driver is a way to use main system memory as a block device.  It
+is required for initrd, an initial filesystem used if you need to load modules
+in order to access the root filesystem (see Documentation/initrd.txt).  It can
+also be used for a temporary filesystem for crypto work, since the contents
+are erased on reboot.
+
+The RAM disk dynamically grows as more space is required. It does this by using
+RAM from the buffer cache. The driver marks the buffers it is using as dirty
+so that the VM subsystem does not try to reclaim them later.
+
+Also, the RAM disk supports up to 16 RAM disks out of the box, and can
+be reconfigured to support up to 255 RAM disks - change "#define NUM_RAMDISKS"
+in drivers/block/rd.c.  To use RAM disk support with your system, run
+'./MAKEDEV ram' from the /dev directory.  RAM disks are all major number 1, and
+start with minor number 0 for /dev/ram0, etc.  If used, modern kernels use
+/dev/ram0 for an initrd.
+
+The old "ramdisk=<ram_size>" has been changed to "ramdisk_size=<ram_size>" to
+make it clearer.  The original "ramdisk=<ram_size>" has been kept around for
+compatibility reasons, but it may be removed in the future.
 
 The new RAM disk also has the ability to load compressed RAM disk images,
 allowing one to squeeze more programs onto an average installation or 
 rescue floppy disk.
 
-Notes: You may have "/dev/ram" or "/dev/ramdisk" or both. They are
-equivalent from the standpoint of this document. Also, the new RAM disk
-is a config option. When running "make config", make sure you enable
-RAM disk support for the kernel with which you intend to use the RAM disk.
-
 
 2) Kernel Command Line Parameters
 ---------------------------------
 
-       ramdisk_start=NNN
-       =================
-
-To allow a kernel image to reside on a floppy disk along with a compressed
-RAM disk image, the "ramdisk_start=<offset>" command was added. The kernel
-can't be included into the compressed RAM disk filesystem image, because
-it needs to be stored starting at block zero so that the BIOS can load the 
-boot sector and then the kernel can bootstrap itself to get going.
-
-Note: If you are using an uncompressed RAM disk image, then the kernel can
-be a part of the filesystem image that is being loaded into the RAM disk,
-and the floppy can be booted with LILO, or the two can be separate as
-is done for the compressed images.
-
-If you are using a two-disk boot/root setup (kernel on #1, RAM disk image
-on #2) then the RAM disk would start at block zero, and an offset of
-zero would be used. Since this is the default value, you would not need
-to actually use the command at all.
-
-If instead, you have a "zImage" of about 350 kB, and a "fs_image.gz" of
-say about 1 MB, and you want them both on the same disk, then you
-would use an offset. If you stored the "fs_image.gz" onto the floppy
-starting at an offset of 400 kB, you would use "ramdisk_start=400".
-
-
-       load_ramdisk=N
-       ==============
-
-This parameter tells the kernel whether it is to try to load a
-RAM disk image or not. Specifying "load_ramdisk=1" will tell the
-kernel to load a floppy into the RAM disk. The default value is
-zero, meaning that the kernel should not try to load a RAM disk.
-
-
-       prompt_ramdisk=N
-       ================
-
-This parameter tells the kernel whether or not to give you a prompt
-asking you to insert the floppy containing the RAM disk image. In
-a single floppy configuration the RAM disk image is on the same floppy
-as the kernel that just finished loading/booting and so a prompt
-is not needed. In this case one can use "prompt_ramdisk=0". In a
-two floppy configuration, you will need the chance to switch disks,
-and thus "prompt_ramdisk=1" can be used. Since this is the default 
-value, it doesn't really need to be specified.
-
        ramdisk_size=N
        ==============
 
 This parameter tells the RAM disk driver to set up RAM disks of N k size.  The
-default is 4096 (4 MB). 
+default is 4096 (4 MB) (8192 (8 MB) on S390).
+
+       ramdisk_blocksize=N
+       ===================
 
-3) Using "rdev -r" With New Kernels
------------------------------------
+This parameter tells the RAM disk driver how many bytes to use per block.  The
+default is 512.
 
-The usage of the word (two bytes) that "rdev -r" sets in the kernel image
-has changed. The low 11 bits (0 -> 10) specify an offset (in 1 k blocks) 
-of up to 2 MB (2^11) of where to find the RAM disk (this used to be the 
-size). Bit 14 indicates that a RAM disk is to be loaded, and bit 15
-indicates whether a prompt/wait sequence is to be given before trying
-to read the RAM disk. Since the RAM disk dynamically grows as data is
-being written into it, a size field is no longer required. Bits 11
-to 13 are not currently used and may as well be zero. These numbers
-are no magical secrets, as seen below:
+
+3) Using "rdev -r"
+------------------
+
+The usage of the word (two bytes) that "rdev -r" sets in the kernel image is
+as follows. The low 11 bits (0 -> 10) specify an offset (in 1 k blocks) of up
+to 2 MB (2^11) of where to find the RAM disk (this used to be the size). Bit
+14 indicates that a RAM disk is to be loaded, and bit 15 indicates whether a
+prompt/wait sequence is to be given before trying to read the RAM disk. Since
+the RAM disk dynamically grows as data is being written into it, a size field
+is not required. Bits 11 to 13 are not currently used and may as well be zero.
+These numbers are no magical secrets, as seen below:
 
 ./arch/i386/kernel/setup.c:#define RAMDISK_IMAGE_START_MASK     0x07FF
 ./arch/i386/kernel/setup.c:#define RAMDISK_PROMPT_FLAG          0x8000
@@ -152,10 +103,10 @@
 To create a RAM disk image, you will need a spare block device to
 construct it on. This can be the RAM disk device itself, or an
 unused disk partition (such as an unmounted swap partition). For this 
-example, we will use the RAM disk device, "/dev/ram".
+example, we will use the RAM disk device, "/dev/ram0".
 
 Note: This technique should not be done on a machine with less than 8 MB
-of RAM. If using a spare disk partition instead of /dev/ram, then this
+of RAM. If using a spare disk partition instead of /dev/ram0, then this
 restriction does not apply.
 
 a) Decide on the RAM disk size that you want. Say 2 MB for this example.
@@ -164,11 +115,11 @@
    area (esp. for disks) so that maximal compression is achieved for
    the unused blocks of the image that you are about to create.
 
-       dd if=/dev/zero of=/dev/ram bs=1k count=2048
+       dd if=/dev/zero of=/dev/ram0 bs=1k count=2048
 
 b) Make a filesystem on it. Say ext2fs for this example.
 
-       mke2fs -vm0 /dev/ram 2048
+       mke2fs -vm0 /dev/ram0 2048
 
 c) Mount it, copy the files you want to it (eg: /etc/* /dev/* ...)
    and unmount it again.
@@ -177,7 +128,7 @@
    will be approximately 50% of the space used by the files. Unused
    space on the RAM disk will compress to almost nothing.
 
-       dd if=/dev/ram bs=1k count=2048 | gzip -v9 > /tmp/ram_image.gz
+       dd if=/dev/ram0 bs=1k count=2048 | gzip -v9 > /tmp/ram_image.gz
 
 e) Put the kernel onto the floppy
 
@@ -203,4 +154,14 @@
 users may wish to combine steps (d) and (f) by using a pipe.
 
 --------------------------------------------------------------------------
-                                               Paul Gortmaker 12/95    
+                                               Paul Gortmaker 12/95
+
+Changelog:
+----------
+
+10-22-04 :     Updated to reflect changes in command line options, remove
+               obsolete references, general cleanup.
+               James Nelson (james4765@gmail.com)
+
+
+12-95 :                Original Document
diff -urN malta/linux/Documentation/riscom8.txt 
malta/linux/Documentation/riscom8.txt
--- malta/linux/Documentation/riscom8.txt       1998/05/07 02:55:54     1.3
+++ malta/linux/Documentation/riscom8.txt       2005/06/21 13:20:30     
1.3.1000.1
@@ -1,5 +1,12 @@
+* NOTE - this is an unmaintained driver.  The original author cannot be 
located.
+
+SDL Communications is now SBS Technologies, and does not have any
+information on these ancient ISA cards on their website.
+
+James Nelson <james4765@gmail.com> - 12-12-2004
+
        This is the README for RISCom/8 multi-port serial driver
-       (C) 1994-1996 D.Gorodchanin (pgmdsg@ibi.com)
+       (C) 1994-1996 D.Gorodchanin
        See file LICENSE for terms and conditions.
 
 NOTE: English is not my native language. 
@@ -10,47 +17,20 @@
 1) This driver can support up to 4 boards at time.
    Use string "riscom8=0xXXX,0xXXX,0xXXX,0xXXX" at LILO prompt, for
    setting I/O base addresses for boards. If you compile driver
-   as module use insmod options "iobase=0xXXX iobase1=0xXXX iobase2=..."
+   as module use modprobe options "iobase=0xXXX iobase1=0xXXX iobase2=..."
 
 2) The driver partially supports famous 'setserial' program, you can use almost
    any of its options, excluding port & irq settings.
 
 3) There are some misc. defines at the beginning of riscom8.c, please read the 
    comments and try to change some of them in case of problems.
-       
+
 4) I consider the current state of the driver as BETA.
-   If you REALLY think you found a bug, send me e-mail, I hope I'll
-   fix it. For any other problems please ask support@sdlcomm.com.
 
 5) SDL Communications WWW page is http://www.sdlcomm.com.
 
-6) You can use the script at the end of this file to create RISCom/8 devices.
+6) You can use the MAKEDEV program to create RISCom/8 /dev/ttyL* entries.
 
 7) Minor numbers for first board are 0-7, for second 8-15, etc.
 
 22 Apr 1996.
-
--------------------------------cut here-------------------------------------
-#!/bin/bash
-NORMAL_DEVICE=/dev/ttyL
-CALLOUT_DEVICE=/dev/cuL
-NORMAL_MAJOR=48
-CALLOUT_MAJOR=49
-
-echo "Creating devices... "
-for i in 0 1 2 3; do
-       echo "Board No $[$i+1]"
-       for j in 0 1 2 3 4 5 6 7; do
-               k=$[ 8 * $i + $j]
-               rm -f $NORMAL_DEVICE$k 
-               mknod $NORMAL_DEVICE$k c $NORMAL_MAJOR $k
-               chmod a+rw $NORMAL_DEVICE$k
-               echo -n $NORMAL_DEVICE$k" "
-               rm -f $CALLOUT_DEVICE$k 
-               mknod $CALLOUT_DEVICE$k c $CALLOUT_MAJOR $k
-               chmod a+rw $CALLOUT_DEVICE$k
-               echo $CALLOUT_DEVICE$k
-       done
-done
-echo "done."
--------------------------------cut here-------------------------------------
diff -urN malta/linux/Documentation/rocket.txt 
malta/linux/Documentation/rocket.txt
--- malta/linux/Documentation/rocket.txt        2004/03/11 16:46:39     1.2
+++ malta/linux/Documentation/rocket.txt        2005/06/21 13:20:30     
1.2.1000.1
@@ -20,8 +20,27 @@
 into them.  Installations instructions for the external module
 are in the included README and HW_INSTALL files.
 
-RocketPort ISA and RocketModem II PCI boards are also supported by this
-driver, but must use the external module driver for configuration reasons.  
+RocketPort ISA and RocketModem II PCI boards currently are only supported by
+this driver in module form.
+
+The RocketPort ISA board requires I/O ports to be configured by the DIP
+switches on the board.  See the section "ISA Rocketport Boards" below for
+information on how to set the DIP switches.
+
+You pass the I/O port to the driver using the following module parameters:
+
+board1 :       I/O port for the first ISA board
+board2 :       I/O port for the second ISA board
+board3 :       I/O port for the third ISA board
+board4 :       I/O port for the fourth ISA board
+
+There is a set of utilities and scripts provided with the external driver
+( downloadable from http://www.comtrol.com ) that ease the configuration and
+setup of the ISA cards.
+
+The RocketModem II PCI boards require firmware to be loaded into the card
+before it will function.  The driver has only been tested as a module for this
+board.
 
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 
@@ -55,12 +74,95 @@
 >mknod /dev/ttyR1 c 46 1
 >mknod /dev/ttyR2 c 46 2  
 
-The Linux script MAKEDEV will create the first 16 ttyRx device names (nodes) 
for you:
+The Linux script MAKEDEV will create the first 16 ttyRx device names (nodes)
+for you:
 
 >/dev/MAKEDEV ttyR
 
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 
+ISA Rocketport Boards
+---------------------
+
+You must assign and configure the I/O addresses used by the ISA Rocketport
+card before installing and using it.  This is done by setting a set of DIP
+switches on the Rocketport board.
+
+
+SETTING THE I/O ADDRESS
+-----------------------
+
+Before installing RocketPort(R) or RocketPort RA boards, you must find
+a range of I/O addresses for it to use. The first RocketPort card
+requires a 68-byte contiguous block of I/O addresses, starting at one
+of the following: 0x100h, 0x140h, 0x180h, 0x200h, 0x240h, 0x280h,
+0x300h, 0x340h, 0x380h.  This I/O address must be reflected in the DIP
+switiches of *all* of the Rocketport cards.
+
+The second, third, and fourth RocketPort cards require a 64-byte
+contiguous block of I/O addresses, starting at one of the following
+I/O addresses: 0x100h, 0x140h, 0x180h, 0x1C0h, 0x200h, 0x240h, 0x280h,
+0x2C0h, 0x300h, 0x340h, 0x380h, 0x3C0h.  The I/O address used by the
+second, third, and fourth Rocketport cards (if present) are set via
+software control.  The DIP switch settings for the I/O address must be
+set to the value of the first Rocketport cards.
+
+In order to destinguish each of the card from the others, each card
+must have a unique board ID set on the dip switches.  The first
+Rocketport board must be set with the DIP switches corresponding to
+the first board, the second board must be set with the DIP switches
+corresponding to the second board, etc.  IMPORTANT: The board ID is
+the only place where the DIP switch settings should differ between the
+various Rocketport boards in a system.
+
+The I/O address range used by any of the RocketPort cards must not
+conflict with any other cards in the system, including other
+RocketPort cards.  Below, you will find a list of commonly used I/O
+address ranges which may be in use by other devices in your system.
+On a Linux system, "cat /proc/ioports" will also be helpful in
+identifying what I/O addresses are being used by devics on your
+system.
+
+Remember, the FIRST RocketPort uses 68 I/O addresses.  So, if you set it
+for 0x100, it will occupy 0x100 to 0x143.  This would mean that you
+CAN NOT set the second, third or fourth board for address 0x140 since
+the first 4 bytes of that range are used by the first board.  You would
+need to set the second, third, or fourth board to one of the next available
+blocks such as 0x180.
+
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+RocketPort and RocketPort RA SW1 Settings:
+
+          +-------------------------------+
+          | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
+          +-------+-------+---------------+
+          | Unused| Card  | I/O Port Block|
+          +-------------------------------+
+
+DIP Switches                             DIP Switches
+7    8                                   6    5
+===================                      ===================
+On   On   UNUSED, MUST BE ON.            On   On   First Card    <==== Default
+                                         On   Off  Second Card
+                                         Off  On   Third Card
+                                         Off  Off  Fourth Card
+
+DIP Switches         I/O Address Range
+4    3    2    1     Used by the First Card
+=====================================
+On   Off  On   Off   100-143
+On   Off  Off  On    140-183
+On   Off  Off  Off   180-1C3       <==== Default
+Off  On   On   Off   200-243
+Off  On   Off  On    240-283
+Off  On   Off  Off   280-2C3
+Off  Off  On   Off   300-343
+Off  Off  Off  On    340-383
+Off  Off  Off  Off   380-3C3
+
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
 REPORTING BUGS
 --------------
 
diff -urN malta/linux/Documentation/sched-domains.txt 
malta/linux/Documentation/sched-domains.txt
--- malta/linux/Documentation/sched-domains.txt 2004/09/14 16:27:37     
1.1.1000.1
+++ malta/linux/Documentation/sched-domains.txt 2005/06/21 13:20:30     
1.1.1000.2
@@ -5,12 +5,13 @@
 are locklessly updated.
 
 Each scheduling domain spans a number of CPUs (stored in the ->span field).
-A domain's span MUST be a superset of it child's span, and a base domain
-for CPU i MUST span at least i. The top domain for each CPU will generally
-span all CPUs in the system although strictly it doesn't have to, but this
-could lead to a case where some CPUs will never be given tasks to run unless
-the CPUs allowed mask is explicitly set. A sched domain's span means "balance
-process load among these CPUs".
+A domain's span MUST be a superset of it child's span (this restriction could
+be relaxed if the need arises), and a base domain for CPU i MUST span at least
+i. The top domain for each CPU will generally span all CPUs in the system
+although strictly it doesn't have to, but this could lead to a case where some
+CPUs will never be given tasks to run unless the CPUs allowed mask is
+explicitly set. A sched domain's span means "balance process load among these
+CPUs".
 
 Each scheduling domain must have one or more CPU groups (struct sched_group)
 which are organised as a circular one way linked list from the ->groups
@@ -46,6 +47,20 @@
 struct sched_domain fields, SD_FLAG_*, SD_*_INIT to get an idea of
 the specifics and what to tune.
 
+For SMT, the architecture must define CONFIG_SCHED_SMT and provide a
+cpumask_t cpu_sibling_map[NR_CPUS], where cpu_sibling_map[i] is the mask of
+all "i"'s siblings as well as "i" itself.
+
+Architectures may retain the regular override the default SD_*_INIT flags
+while using the generic domain builder in kernel/sched.c if they wish to
+retain the traditional SMT->SMP->NUMA topology (or some subset of that). This
+can be done by #define'ing ARCH_HASH_SCHED_TUNE.
+
+Alternatively, the architecture may completely override the generic domain
+builder by #define'ing ARCH_HASH_SCHED_DOMAIN, and exporting your
+arch_init_sched_domains function. This function will attach domains to all
+CPUs using cpu_attach_domain.
+
 Implementors should change the line
 #undef SCHED_DOMAIN_DEBUG
 to
diff -urN malta/linux/Documentation/sonypi.txt 
malta/linux/Documentation/sonypi.txt
--- malta/linux/Documentation/sonypi.txt        2004/03/11 16:46:39     1.13
+++ malta/linux/Documentation/sonypi.txt        2005/06/21 13:20:30     
1.13.1000.1
@@ -1,6 +1,6 @@
 Sony Programmable I/O Control Device Driver Readme
 --------------------------------------------------
-       Copyright (C) 2001-2003 Stelian Pop <stelian@popies.net>
+       Copyright (C) 2001-2004 Stelian Pop <stelian@popies.net>
        Copyright (C) 2001-2002 Alcôve <www.alcove.com>
        Copyright (C) 2001 Michael Ashley <m.ashley@unsw.edu.au>
        Copyright (C) 2001 Junichi Morita <jun1m@mars.dti.ne.jp>
@@ -23,16 +23,18 @@
 
 Those events (see linux/sonypi.h) can be polled using the character device node
 /dev/sonypi (major 10, minor auto allocated or specified as a option).
-
 A simple daemon which translates the jogdial movements into mouse wheel events
 can be downloaded at: <http://popies.net/sonypi/>
 
+Another option to intercept the events is to get them directly through the
+input layer.
+
 This driver supports also some ioctl commands for setting the LCD screen
-brightness and querying the batteries charge information (some more 
+brightness and querying the batteries charge information (some more
 commands may be added in the future).
 
 This driver can also be used to set the camera controls on Picturebook series
-(brightness, contrast etc), and is used by the video4linux driver for the 
+(brightness, contrast etc), and is used by the video4linux driver for the
 Motion Eye camera.
 
 Please note that this driver was created by reverse engineering the Windows
@@ -42,15 +44,12 @@
 Driver options:
 ---------------
 
-Several options can be passed to the sonypi driver, either by adding them
-to /etc/modprobe.conf file, when the driver is compiled as a module or by
-adding the following to the kernel command line (in your bootloader):
-
-       sonypi=minor[,verbose[,fnkeyinit[,camera[,compat[,mask[,useinput]]]]]]
+Several options can be passed to the sonypi driver using the standard
+module argument syntax (<param>=<value> when passing the option to the
+module or sonypi.<param>=<value> on the kernel boot line when sonypi is
+statically linked into the kernel). Those options are:
 
-where:
-
-       minor:          minor number of the misc device /dev/sonypi, 
+       minor:          minor number of the misc device /dev/sonypi,
                        default is -1 (automatic allocation, see /proc/misc
                        or kernel logs)
 
@@ -62,14 +61,14 @@
                        get enabled unless you set this parameter to 1.
                        Do not use this option unless it's actually necessary,
                        some Vaio models don't deal well with this option.
-                       This option is available only if the kernel is 
+                       This option is available only if the kernel is
                        compiled without ACPI support (since it conflicts
-                       with it and it shouldn't be required anyway if 
+                       with it and it shouldn't be required anyway if
                        ACPI is already enabled).
 
-       verbose:        set to 1 to print unknown events received from the 
+       verbose:        set to 1 to print unknown events received from the
                        sonypi device.
-                       set to 2 to print all events received from the 
+                       set to 2 to print all events received from the
                        sonypi device.
 
        compat:         uses some compatibility code for enabling the sonypi
@@ -78,14 +77,15 @@
                        add this option and report to the author.
 
        mask:           event mask telling the driver what events will be
-                       reported to the user. This parameter is required for 
some 
-                       Vaio models where the hardware reuses values used in 
-                       other Vaio models (like the FX series who does not
-                       have a jogdial but reuses the jogdial events for
+                       reported to the user. This parameter is required for
+                       some Vaio models where the hardware reuses values
+                       used in other Vaio models (like the FX series who does
+                       not have a jogdial but reuses the jogdial events for
                        programmable keys events). The default event mask is
-                       set to 0xffffffff, meaning that all possible events 
will be
-                       tried. You can use the following bits to construct
-                       your own event mask (from drivers/char/sonypi.h):
+                       set to 0xffffffff, meaning that all possible events
+                       will be tried. You can use the following bits to
+                       construct your own event mask (from
+                       drivers/char/sonypi.h):
                                SONYPI_JOGGER_MASK              0x0001
                                SONYPI_CAPTURE_MASK             0x0002
                                SONYPI_FNKEY_MASK               0x0004
@@ -100,10 +100,10 @@
                                SONYPI_MEMORYSTICK_MASK         0x0800
                                SONYPI_BATTERY_MASK             0x1000
 
-       useinput:       if set (which is the default) jogdial events are
-                       forwarded to the input subsystem as mouse wheel
-                       events.
-                       
+       useinput:       if set (which is the default) two input devices are
+                       created, one which interprets the jogdial events as
+                       mouse events, the other one which acts like a
+                       keyboard reporting the pressing of the special keys.
 
 Module use:
 -----------
@@ -126,17 +126,17 @@
          external monitor on/off. There is no workaround yet, since this
          driver disables all APM management for those keys, by enabling the
          ACPI management (and the ACPI core stuff is not complete yet). If
-         you have one of those laptops with working Fn keys and want to 
+         you have one of those laptops with working Fn keys and want to
          continue to use them, don't use this driver.
 
        - some users reported that the laptop speed is lower (dhrystone
          tested) when using the driver with the fnkeyinit parameter. I cannot
          reproduce it on my laptop and not all users have this problem.
-         This happens because the fnkeyinit parameter enables the ACPI 
-         mode (but without additional ACPI control, like processor 
+         This happens because the fnkeyinit parameter enables the ACPI
+         mode (but without additional ACPI control, like processor
          speed handling etc). Use ACPI instead of APM if it works on your
          laptop.
-       
+
        - since all development was done by reverse engineering, there is
          _absolutely no guarantee_ that this driver will not crash your
          laptop. Permanently.
diff -urN malta/linux/Documentation/spinlocks.txt 
malta/linux/Documentation/spinlocks.txt
--- malta/linux/Documentation/spinlocks.txt     1998/08/25 09:12:50     1.3
+++ malta/linux/Documentation/spinlocks.txt     2005/06/21 13:20:30     
1.3.1000.1
@@ -1,3 +1,29 @@
+UPDATE March 21 2005 Amit Gud <gud@eth.net>
+
+Macros SPIN_LOCK_UNLOCKED and RW_LOCK_UNLOCKED are deprecated and will be
+removed soon. So for any new code dynamic initialization should be used:
+
+   spinlock_t xxx_lock;
+   rwlock_t xxx_rw_lock;
+
+   static int __init xxx_init(void)
+   {
+       spin_lock_init(&xxx_lock);
+       rw_lock_init(&xxx_rw_lock);
+       ...
+   }
+
+   module_init(xxx_init);
+
+Reasons for deprecation
+  - it hurts automatic lock validators
+  - it becomes intrusive for the realtime preemption patches
+
+Following discussion is still valid, however, with the dynamic initialization
+of spinlocks instead of static.
+
+-----------------------
+
 On Fri, 2 Jan 1998, Doug Ledford wrote:
 > 
 > I'm working on making the aic7xxx driver more SMP friendly (as well as
diff -urN malta/linux/Documentation/stallion.txt 
malta/linux/Documentation/stallion.txt
--- malta/linux/Documentation/stallion.txt      2000/08/08 12:37:17     1.9
+++ malta/linux/Documentation/stallion.txt      2005/06/21 13:20:30     
1.9.1000.1
@@ -1,8 +1,13 @@
+* NOTE - This is an unmaintained driver.  Lantronix, which bought Stallion
+technologies, is not active in driver maintenance, and they have no information
+on when or if they will have a 2.6 driver.
+
+James Nelson <james4765@gmail.com> - 12-12-2004
 
 Stallion Multiport Serial Driver Readme
 ---------------------------------------
 
-Copyright (C) 1994-1999,  Stallion Technologies (support@stallion.com).
+Copyright (C) 1994-1999,  Stallion Technologies.
 
 Version:   5.5.1
 Date:      28MAR99
@@ -19,29 +24,20 @@
 
 If you are using any of the Stallion intelligent multiport boards (Brumby,
 ONboard, EasyConnection 8/64 (ISA, EISA, MCA), EasyConnection/RA-PCI) with
-Linux you will need to get the driver utility package. This package is
-available at most of the Linux archive sites (and on CD-ROMs that contain
-these archives). The file will be called stallion-X.X.X.tar.gz where X.X.X
-will be the version number. In particular this package contains the board
-embedded executable images that are required for these boards. It also
-contains the downloader program. These boards cannot be used without this.
+Linux you will need to get the driver utility package.  This contains a
+firmware loader and the firmware images necessary to make the devices operate.
 
 The Stallion Technologies ftp site, ftp.stallion.com, will always have
-the latest version of the driver utility package. Other sites that usually
-have the latest version are tsx-11.mit.edu, sunsite.unc.edu and their
-mirrors.
-
-ftp.stallion.com:/drivers/ata5/Linux/v550.tar.gz
-tsx-11.mit.edu:/pub/linux/packages/stallion/stallion-5.5.0.tar.gz
-sunsite.unc.edu:/pub/Linux/kernel/patches/serial/stallion-5.5.0.tar.gz
+the latest version of the driver utility package.
+
+ftp://ftp.stallion.com/drivers/ata5/Linux/ata-linux-550.tar.gz
 
 As of the printing of this document the latest version of the driver
 utility package is 5.5.0. If a later version is now available then you
 should use the latest version.
 
 If you are using the EasyIO, EasyConnection 8/32 or EasyConnection 8/64-PCI
-boards then you don't need this package. Although it does have a handy
-script to create the /dev device nodes for these boards, and a serial stats
+boards then you don't need this package, although it does have a serial stats
 display program.
 
 If you require DIP switch settings, EISA or MCA configuration files, or any
@@ -85,7 +81,7 @@
 
 Typically to load up the smart board driver use:
 
-    insmod stallion.o
+    modprobe stallion
 
 This will load the EasyIO and EasyConnection 8/32 driver. It will output a
 message to say that it loaded and print the driver version number. It will
@@ -96,12 +92,12 @@
 
 To load the intelligent board driver use:
 
-    insmod istallion.o
+    modprobe istallion
 
 It will output similar messages to the smart board driver.
 
 If not using an auto-detectable board type (that is a PCI board) then you
-will also need to supply command line arguments to the "insmod" command
+will also need to supply command line arguments to the modprobe command
 when loading the driver. The general form of the configuration argument is
 
     board?=<name>[,<ioaddr>[,<addr>][,<irq>]]
@@ -111,7 +107,7 @@
     board?  -- specifies the arbitrary board number of this board,
                can be in the range 0 to 3.
 
-    name    -- textual name of this board. The board name is the comman
+    name    -- textual name of this board. The board name is the common
                board name, or any "shortened" version of that. The board
                type number may also be used here.
 
@@ -127,24 +123,24 @@
 Up to 4 board configuration arguments can be specified on the load line.
 Here is some examples:
 
-    insmod stallion.o board0=easyio,0x2a0,5
+    modprobe stallion board0=easyio,0x2a0,5
 
 This configures an EasyIO board as board 0 at I/O address 0x2a0 and IRQ 5.
 
-    insmod istallion.o board3=ec8/64,0x2c0,0xcc000
+    modprobe istallion board3=ec8/64,0x2c0,0xcc000
 
 This configures an EasyConnection 8/64 ISA as board 3 at I/O address 0x2c0 at
 memory address 0xcc000.
 
-    insmod stallion.o board1=ec8/32-at,0x2a0,0x280,10
+    modprobe stallion board1=ec8/32-at,0x2a0,0x280,10
 
 This configures an EasyConnection 8/32 ISA board at primary I/O address 0x2a0,
 secondary address 0x280 and IRQ 10.
 
 You will probably want to enter this module load and configuration information
 into your system startup scripts so that the drivers are loaded and configured
-on each system boot. Typically the start up script would be something line
-/etc/rc.d/rc.modules.
+on each system boot. Typically the start up script would be something like
+/etc/modprobe.conf.
 
 
 2.2 STATIC DRIVER CONFIGURATION:
@@ -161,8 +157,8 @@
 To set up the driver(s) for the boards that you want to use you need to
 edit the appropriate driver file and add configuration entries.
 
-If using EasyIO or EasyConnection 8/32 ISA or MCA boards, do:
-   vi /usr/src/linux/drivers/char/stallion.c
+If using EasyIO or EasyConnection 8/32 ISA or MCA boards,
+   In drivers/char/stallion.c:
       - find the definition of the stl_brdconf array (of structures)
         near the top of the file
       - modify this to match the boards you are going to install
@@ -170,8 +166,8 @@
       - save and exit
 
 If using ONboard, Brumby, Stallion or EasyConnection 8/64 (ISA or EISA)
-boards then do:
-   vi /usr/src/linux/drivers/char/istallion.c
+boards,
+   In drivers/char/istallion.c:
       - find the definition of the stli_brdconf array (of structures)
         near the top of the file
       - modify this to match the boards you are going to install
@@ -291,20 +287,20 @@
 of course the ports will not be operational!
 
 If you are using the modularized version of the driver you might want to put
-the insmod calls in the startup script as well (before the download lines
+the modprobe calls in the startup script as well (before the download lines
 obviously).
 
 
 3.2 USING THE SERIAL PORTS
 
 Once the driver is installed you will need to setup some device nodes to
-access the serial ports. The simplest method is to use the stallion utility
-"mkdevnods" script. It will automatically create device entries for Stallion
-boards. This will create the normal serial port devices as /dev/ttyE# where
-# is the port number starting from 0. A bank of 64 minor device numbers is
-allocated to each board, so the first port on the second board is port 64,
-etc. A set of callout type devices is also created. They are created as the
-devices /dev/cue# where # is the same as for the ttyE devices.
+access the serial ports. The simplest method is to use the /dev/MAKEDEV 
program.
+It will automatically create device entries for Stallion boards. This will
+create the normal serial port devices as /dev/ttyE# where# is the port number
+starting from 0. A bank of 64 minor device numbers is allocated to each board,
+so the first port on the second board is port 64,etc. A set of callout type
+devices may also be created. They are created as the devices /dev/cue# where #
+is the same as for the ttyE devices.
 
 For the most part the Stallion driver tries to emulate the standard PC system
 COM ports and the standard Linux serial driver. The idea is that you should
diff -urN malta/linux/Documentation/sysrq.txt 
malta/linux/Documentation/sysrq.txt
--- malta/linux/Documentation/sysrq.txt 2003/10/09 13:09:26     1.16
+++ malta/linux/Documentation/sysrq.txt 2005/06/21 13:20:30     1.16.1000.1
@@ -10,13 +10,32 @@
 *  How do I enable the magic SysRq key?
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 You need to say "yes" to 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' when
-configuring the kernel. When running on a kernel with SysRq compiled in, it
-may be DISABLED at run-time using following command:
-
-        echo "0" > /proc/sys/kernel/sysrq
-
-Note that previous versions disabled sysrq by default, and you were required
-to specifically enable it at run-time. That is not the case any longer.
+configuring the kernel. When running a kernel with SysRq compiled in,
+/proc/sys/kernel/sysrq controls the functions allowed to be invoked via
+the SysRq key. By default the file contains 1 which means that every
+possible SysRq request is allowed (in older versions SysRq was disabled
+by default, and you were required to specifically enable it at run-time
+but this is not the case any more). Here is the list of possible values
+in /proc/sys/kernel/sysrq:
+   0 - disable sysrq completely
+   1 - enable all functions of sysrq
+  >1 - bitmask of allowed sysrq functions (see below for detailed function
+       description):
+          2 - enable control of console logging level
+          4 - enable control of keyboard (SAK, unraw)
+          8 - enable debugging dumps of processes etc.
+         16 - enable sync command
+         32 - enable remount read-only
+         64 - enable signalling of processes (term, kill, oom-kill)
+        128 - allow reboot/poweroff
+        256 - allow nicing of all RT tasks
+
+You can set the value in the file by the following command:
+    echo "number" >/proc/sys/kernel/sysrq
+
+Note that the value of /proc/sys/kernel/sysrq influences only the invocation
+via a keyboard. Invocation of any operation via /proc/sysrq-trigger is always
+allowed.
 
 *  How do I use the magic SysRq key?
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -73,6 +92,8 @@
           it so that only emergency messages like PANICs or OOPSes would
           make it to your console.)
 
+'f'    - Will call oom_kill to kill a memory hog process
+
 'e'     - Send a SIGTERM to all processes, except for init.
 
 'i'     - Send a SIGKILL to all processes, except for init.
diff -urN malta/linux/Documentation/tipar.txt 
malta/linux/Documentation/tipar.txt
--- malta/linux/Documentation/tipar.txt 2003/06/04 14:05:37     1.2
+++ malta/linux/Documentation/tipar.txt 2005/06/21 13:20:30     1.2.1000.1
@@ -4,7 +4,7 @@
 
 
 Author: Romain Lievin
-Homepage: http://lpg.ticalc.org/prj_dev
+Homepage: http://lpg.ticalc.org/prj_tidev/index.html
 
 
 INTRODUCTION:
@@ -12,31 +12,30 @@
 This is a driver for the very common home-made parallel link cable, a cable 
 designed for connecting TI8x/9x graphing calculators (handhelds) to a computer
 or workstation (Alpha, Sparc). Given that driver is built on parport, the 
-parallel port abstraction layer, this driver is independent of the platform.
+parallel port abstraction layer, this driver is architecture-independent.
 
 It can also be used with another device plugged on the same port (such as a
-ZIP drive). I have a 100MB ZIP and both of them work fine !
+ZIP drive). I have a 100MB ZIP and both of them work fine!
 
 If you need more information, please visit the 'TI drivers' homepage at the URL
 above.
 
 WHAT YOU NEED:
 
-A TI calculator of course and a program capable to communicate with your 
-calculator.
-TiLP will work for sure (since I am his developer !). yal92 may be able to use
+A TI calculator and a program capable of communicating with your calculator.
+
+TiLP will work for sure (since I am its developer!). yal92 may be able to use
 it by changing tidev for tipar (may require some hacking...).
 
 HOW TO USE IT:
 
 You must have first compiled parport support (CONFIG_PARPORT_DEV): either 
 compiled in your kernel, either as a module. 
-This driver supports the new device hierarchy (devfs).
 
-Next, (as root) from your appropriate modules directory (lib/modules/2.5.XX):
+Next, (as root):
 
        modprobe parport
-       insmod tipar.o
+       modprobe tipar
 
 If it is not already there (it usually is), create the device:
 
@@ -47,14 +46,14 @@
 You will have to set permissions on this device to allow you to read/write
 from it:
 
-       chmod 666 /dev/tipar?
+       chmod 666 /dev/tipar[0..2]
        
 Now you are ready to run a linking program such as TiLP. Be sure to configure 
 it properly (RTFM).
        
 MODULE PARAMETERS:
 
-  You can set these with:  insmod tipar NAME=VALUE
+  You can set these with:  modprobe tipar NAME=VALUE
   There is currently no way to set these on a per-cable basis.
 
   NAME: timeout
@@ -66,11 +65,12 @@
   NAME: delay
   TYPE: integer
   DEFAULT: 10
-  DESC: Inter-bit delay in micro-seconds. An lower value gives an higher data 
+  DESC: Inter-bit delay in micro-seconds. A lower value gives an higher data
        rate but makes transmission less reliable.
 
 These parameters can be changed at run time by any program via ioctl(2) calls 
-as listed in ./include/linux/ticable.h
+as listed in ./include/linux/ticable.h.
+
 Rather than write 50 pages describing the ioctl() and so on, it is
 perhaps more useful you look at ticables library (dev_link.c) that demonstrates
 how to use them, and demonstrates the features of the driver. This is
diff -urN malta/linux/Documentation/unicode.txt 
malta/linux/Documentation/unicode.txt
--- malta/linux/Documentation/unicode.txt       1998/05/07 02:55:58     1.2
+++ malta/linux/Documentation/unicode.txt       2005/06/21 13:20:30     
1.2.1000.1
@@ -1,3 +1,13 @@
+                Last update: 2005-01-17, version 1.4
+
+This file is maintained by H. Peter Anvin <unicode@lanana.org> as part
+of the Linux Assigned Names And Numbers Authority (LANANA) project.
+The current version can be found at:
+
+           http://www.lanana.org/docs/unicode/unicode.txt
+
+                      ------------------------
+
 The Linux kernel code has been rewritten to use Unicode to map
 characters to fonts.  By downloading a single Unicode-to-font table,
 both the eight-bit character sets and UTF-8 mode are changed to use
@@ -18,6 +28,10 @@
 permits for example the use of block graphics even with a Latin-1 font
 loaded.
 
+Note that although these codes are similar to ISO 2022, neither the
+codes nor their uses match ISO 2022; Linux has two 8-bit codes (G0 and
+G1), whereas ISO 2022 has four 7-bit codes (G0-G3).
+
 In accordance with the Unicode standard/ISO 10646 the range U+F000 to
 U+F8FF has been reserved for OS-wide allocation (the Unicode Standard
 refers to this as a "Corporate Zone", since this is inaccurate for
@@ -26,18 +40,20 @@
 two (in case 1024- or 2048-character fonts ever become necessary).
 This leaves U+E000 to U+EFFF as End User Zone.
 
-The Unicodes in the range U+F000 to U+F1FF have been hard-coded to map
-directly to the loaded font, bypassing the translation table.  The
-user-defined map now defaults to U+F000 to U+F1FF, emulating the
-previous behaviour.  This range may expand in the future should it be
-warranted.
+[v1.2]: The Unicodes range from U+F000 and up to U+F7FF have been
+hard-coded to map directly to the loaded font, bypassing the
+translation table.  The user-defined map now defaults to U+F000 to
+U+F0FF, emulating the previous behaviour.  In practice, this range
+might be shorter; for example, vgacon can only handle 256-character
+(U+F000..U+F0FF) or 512-character (U+F000..U+F1FF) fonts.
+
 
 Actual characters assigned in the Linux Zone
 --------------------------------------------
 
-In addition, the following characters not present in Unicode 1.1.4 (at
-least, I have not found them!) have been defined; these are used by
-the DEC VT graphics map:
+In addition, the following characters not present in Unicode 1.1.4
+have been defined; these are used by the DEC VT graphics map.  [v1.2]
+THIS USE IS OBSOLETE AND SHOULD NO LONGER BE USED; PLEASE SEE BELOW.
 
 U+F800 DEC VT GRAPHICS HORIZONTAL LINE SCAN 1
 U+F801 DEC VT GRAPHICS HORIZONTAL LINE SCAN 3
@@ -48,31 +64,30 @@
 a smooth progression in the DEC VT graphics character set.  I have
 omitted the scan 5 line, since it is also used as a block-graphics
 character, and hence has been coded as U+2500 FORMS LIGHT HORIZONTAL.
-However, I left U+F802 blank should the need arise.  
+
+[v1.3]: These characters have been officially added to Unicode 3.2.0;
+they are added at U+23BA, U+23BB, U+23BC, U+23BD.  Linux now uses the
+new values.
+
+[v1.2]: The following characters have been added to represent common
+keyboard symbols that are unlikely to ever be added to Unicode proper
+since they are horribly vendor-specific.  This, of course, is an
+excellent example of horrible design.
+
+U+F810 KEYBOARD SYMBOL FLYING FLAG
+U+F811 KEYBOARD SYMBOL PULLDOWN MENU
+U+F812 KEYBOARD SYMBOL OPEN APPLE
+U+F813 KEYBOARD SYMBOL SOLID APPLE
 
 Klingon language support
 ------------------------
 
-Unfortunately, Unicode/ISO 10646 does not allocate code points for the
-language Klingon, probably fearing the potential code point explosion
-if many fictional languages were submitted for inclusion.  There are
-also political reasons (the Japanese, for example, are not too happy
-about the whole 16-bit concept to begin with.)  However, with Linux
-being a hacker-driven OS it seems this is a brilliant linguistic hack
-worth supporting.  Hence I have chosen to add it to the list in the
-Linux Zone.
-
-Several glyph forms for the Klingon alphabet have been proposed.
-However, since the set of symbols appear to be consistent throughout,
-with only the actual shapes being different, in keeping with standard
-Unicode practice these differences are considered font variants.
-
-Klingon has an alphabet of 26 characters, a positional numeric writing
-system with 10 digits, and is written left-to-right, top-to-bottom.
-Punctuation appears to be only used in Latin transliteration; it
-appears customary to write each sentence on its own line, and
-centered.  Space has been reserved for punctuation should it prove
-necessary.
+In 1996, Linux was the first operating system in the world to add
+support for the artificial language Klingon, created by Marc Okrand
+for the "Star Trek" television series. This encoding was later
+adopted by the ConScript Unicode Registry and proposed (but ultimately
+rejected) for inclusion in Unicode Plane 1.  Thus, it remains as a
+Linux/CSUR private assignment in the Linux Zone.
 
 This encoding has been endorsed by the Klingon Language Institute.
 For more information, contact them at:
@@ -84,6 +99,19 @@
 located it at the end, on a 16-cell boundary in keeping with standard
 Unicode practice.
 
+NOTE: This range is now officially managed by the ConScript Unicode
+Registry.  The normative reference is at:
+
+       http://www.evertype.com/standards/csur/klingon.html
+
+Klingon has an alphabet of 26 characters, a positional numeric writing
+system with 10 digits, and is written left-to-right, top-to-bottom.
+
+Several glyph forms for the Klingon alphabet have been proposed.
+However, since the set of symbols appear to be consistent throughout,
+with only the actual shapes being different, in keeping with standard
+Unicode practice these differences are considered font variants.
+
 U+F8D0 KLINGON LETTER A
 U+F8D1 KLINGON LETTER B
 U+F8D2 KLINGON LETTER CH
@@ -124,16 +152,24 @@
 U+F8F8 KLINGON DIGIT EIGHT
 U+F8F9 KLINGON DIGIT NINE
 
+U+F8FD KLINGON COMMA
+U+F8FE KLINGON FULL STOP
+U+F8FF KLINGON SYMBOL FOR EMPIRE
+
 Other Fictional and Artificial Scripts
 --------------------------------------
 
 Since the assignment of the Klingon Linux Unicode block, a registry of
-fictional and artificial scripts has been established by John Cowan,
-<cowan@ccil.org>.  The ConScript Unicode Registry is accessible at
-http://locke.ccil.org/~cowan/csur/; the ranges used fall at the bottom
-of the End User Zone and can hence not be normatively assigned, but it
-is recommended that people who wish to encode fictional scripts use
-these codes, in the interest of interoperability.  For Klingon, CSUR
-has adopted the Linux encoding.
-
-       H. Peter Anvin <hpa@zytor.com>
+fictional and artificial scripts has been established by John Cowan
+<jcowan@reutershealth.com> and Michael Everson <everson@evertype.com>.
+The ConScript Unicode Registry is accessible at:
+
+         http://www.evertype.com/standards/csur/
+
+The ranges used fall at the low end of the End User Zone and can hence
+not be normatively assigned, but it is recommended that people who
+wish to encode fictional scripts use these codes, in the interest of
+interoperability.  For Klingon, CSUR has adopted the Linux encoding.
+The CSUR people are driving adding Tengwar and Cirth into Unicode
+Plane 1; the addition of Klingon to Unicode Plane 1 has been rejected
+and so the above encoding remains official.
diff -urN malta/linux/Documentation/README.moxa 
malta/linux/Documentation/README.moxa
--- malta/linux/Documentation/Attic/README.moxa 2005-06-21 14:20:32.177509000 
+0100     1.1
+++ malta/linux/Documentation/Attic/README.moxa 1970/01/01 00:00:00+0100
@@ -1,18 +0,0 @@
- ===================================================================   
- Release Note of Linux Driver for Moxa's C104/C168/CI-104J
- ===================================================================   
-
- -------------------------------------------------------------------
- Ver. 1.1                                             Sep.  1, 1999
- -------------------------------------------------------------------
- 1. Improved:
-   a. Static driver (kernel) and dynamic driver (loadable module) 
-      modes are supported.
-   b. Multiple Smartio PCI series boards sharing the same IRQ 
-      supported.
-
- -------------------------------------------------------------------
- Ver. 1.0                                             Feb  17, 1997
- -------------------------------------------------------------------
- 1. Newly release.
-
diff -urN malta/linux/Documentation/digiboard.txt 
malta/linux/Documentation/digiboard.txt
--- malta/linux/Documentation/Attic/digiboard.txt       2005-06-21 
14:20:32.192642000 +0100     1.9
+++ malta/linux/Documentation/Attic/digiboard.txt       1970/01/01 00:00:00+0100
@@ -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=<io> \
-  membase=<membase> \
-  memsize=<memsize> \
-  numports=<numports>  \
-  altpin=<altpin> \
-  verbose=<verbose>
-
-or, if several cards are installed
-
-modprobe pcxx io=<io-1>,<io-2>,... \
-  membase=<membase-1>,<membase-2>,... \
-  memsize=<memsize-1>,<memsize-2>,... \
-  numports=<numports-1>,<numports-2>,... \
-  altpin=<altpin-1>,<altpin-2>,... \
-  verbose=<verbose>
-
-where <io-N> is the io address of the Nth card and <membase-N> 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 [<number of devices>]
-# 
-
-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 <mike.mclagan@linux.org> 5, April 1996.
diff -urN malta/linux/Documentation/mkdev.cciss 
malta/linux/Documentation/mkdev.cciss
--- malta/linux/Documentation/Attic/mkdev.cciss 2005-06-21 14:20:32.210950000 
+0100     1.1
+++ malta/linux/Documentation/Attic/mkdev.cciss 1970/01/01 00:00:00+0100
@@ -1,40 +0,0 @@
-#!/bin/sh
-# Script to create device nodes for SMART array controllers
-# Usage:
-#      mkdev.cciss [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.cciss 5 4 8
-#
-# Of course, this has no real benefit over "mkdev.cciss 5" except that it
-# doesn't create so many device nodes in /dev/cciss.
-
-NR_CTLR=${1-1}
-NR_VOL=${2-16}
-NR_PART=${3-16}
-
-if [ ! -d /dev/cciss ]; then
-       mkdir -p /dev/cciss
-fi
-
-C=0; while [ $C -lt $NR_CTLR ]; do
-       MAJ=`expr $C + 104`
-       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/cciss/c${C}d${D} b $MAJ $MIN
-                       else
-                               mknod /dev/cciss/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 -urN malta/linux/Documentation/mkdev.ida 
malta/linux/Documentation/mkdev.ida
--- malta/linux/Documentation/Attic/mkdev.ida   2005-06-21 14:20:32.226755000 
+0100     1.2
+++ malta/linux/Documentation/Attic/mkdev.ida   1970/01/01 00:00:00+0100
@@ -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 -urN malta/linux/Documentation/BK-usage/00-INDEX 
malta/linux/Documentation/BK-usage/00-INDEX
--- malta/linux/Documentation/BK-usage/Attic/00-INDEX   2005-06-21 
14:20:32.455386000 +0100     1.2
+++ malta/linux/Documentation/BK-usage/Attic/00-INDEX   1970/01/01 00:00:00+0100
@@ -1,51 +0,0 @@
-bk-kernel-howto.txt: Description of kernel workflow under BitKeeper
-
-bk-make-sum: Create summary of changesets in one repository and not
-another, typically in preparation to be sent to an upstream maintainer.
-Typical usage:
-       cd my-updated-repo
-       bk-make-sum ~/repo/original-repo
-       mv /tmp/linus.txt ../original-repo.txt
-
-bksend: Create readable text output containing summary of changes, GNU
-patch of the changes, and BK metadata of changes (as needed for proper
-importing into BitKeeper by an upstream maintainer).  This output is
-suitable for emailing BitKeeper changes.  The recipient of this output
-may pipe it directly to 'bk receive'.
-
-bz64wrap: helper script. Uncompressed input is piped to this script,
-which compresses its input, and then outputs the uu-/base64-encoded
-version of the compressed input.
-
-cpcset: Copy changeset between unrelated repositories.
-Attempts to preserve changeset user, user address, description, in
-addition to the changeset (the patch) itself.
-Typical usage:
-       cd my-updated-repo
-       bk changes      # looking for a changeset...
-       cpcset 1.1511 . ../another-repo
-
-csets-to-patches: Produces a delta of two BK repositories, in the form
-of individual files, each containing a single cset as a GNU patch.
-Output is several files, each with the filename "/tmp/rev-$REV.patch"
-Typical usage:
-       cd my-updated-repo
-       bk changes -L ~/repo/original-repo 2>&1 | \
-               perl csets-to-patches
-
-cset-to-linus: Produces a delta of two BK repositories, in the form of
-changeset descriptions, with 'diffstat' output created for each
-individual changset.
-Typical usage:
-       cd my-updated-repo
-       bk changes -L ~/repo/original-repo 2>&1 | \
-               perl cset-to-linus > summary.txt
-
-gcapatch:  Generates patch containing changes in local repository.
-Typical usage:
-       cd my-updated-repo
-       gcapatch > foo.patch
-
-unbz64wrap: Reverse an encoded, compressed data stream created by
-bz64wrap into an uncompressed, typically text/plain output.
-
diff -urN malta/linux/Documentation/BK-usage/bk-kernel-howto.txt 
malta/linux/Documentation/BK-usage/bk-kernel-howto.txt
--- malta/linux/Documentation/BK-usage/Attic/bk-kernel-howto.txt        
2005-06-21 14:20:32.471259000 +0100     1.6
+++ malta/linux/Documentation/BK-usage/Attic/bk-kernel-howto.txt        
1970/01/01 00:00:00+0100
@@ -1,283 +0,0 @@
-
-                  Doing the BK Thing, Penguin-Style
-
-
-
-
-This set of notes is intended mainly for kernel developers, occasional
-or full-time, but sysadmins and power users may find parts of it useful
-as well.  It assumes at least a basic familiarity with CVS, both at a
-user level (use on the cmd line) and at a higher level (client-server model).
-Due to the author's background, an operation may be described in terms
-of CVS, or in terms of how that operation differs from CVS.
-
-This is -not- intended to be BitKeeper documentation.  Always run
-"bk help <command>" or in X "bk helptool <command>" for reference
-documentation.
-
-
-BitKeeper Concepts
-------------------
-
-In the true nature of the Internet itself, BitKeeper is a distributed
-system.  When applied to revision control, this means doing away with
-client-server, and changing to a parent-child model... essentially
-peer-to-peer.  On the developer's end, this also represents a
-fundamental disruption in the standard workflow of changes, commits,
-and merges.  You will need to take a few minutes to think about
-how to best work under BitKeeper, and re-optimize things a bit.
-In some sense it is a bit radical, because it might described as
-tossing changes out into a maelstrom and having them magically
-land at the right destination... but I'm getting ahead of myself.
-
-Let's start with this progression:
-Each BitKeeper source tree on disk is a repository unto itself.
-Each repository has a parent (except the root/original, of course).
-Each repository contains a set of a changesets ("csets").
-Each cset is one or more changed files, bundled together.
-
-Each tree is a repository, so all changes are checked into the local
-tree.  When a change is checked in, all modified files are grouped
-into a logical unit, the changeset.  Internally, BK links these
-changesets in a tree, representing various converging and diverging
-lines of development.  These changesets are the bread and butter of
-the BK system.
-
-After the concept of changesets, the next thing you need to get used
-to is having multiple copies of source trees lying around.  This -really-
-takes some getting used to, for some people.  Separate source trees
-are the means in BitKeeper by which you delineate parallel lines
-of development, both minor and major.  What would be branches in
-CVS become separate source trees, or "clones" in BitKeeper [heh,
-or Star Wars] terminology.
-
-Clones and changesets are the tools from which most of the power of
-BitKeeper is derived.  As mentioned earlier, each clone has a parent,
-the tree used as the source when the new clone was created.  In a
-CVS-like setup, the parent would be a remote server on the Internet,
-and the child is your local clone of that tree.
-
-Once you have established a common baseline between two source trees --
-a common parent -- then you can merge changesets between those two
-trees with ease.  Merging changes into a tree is called a "pull", and
-is analagous to 'cvs update'.  A pull downloads all the changesets in
-the remote tree you do not have, and merges them.  Sending changes in
-one tree to another tree is called a "push".  Push sends all changes
-in the local tree the remote does not yet have, and merges them.
-
-From these concepts come some initial command examples:
-
-1) bk clone -q http://linux.bkbits.net/linux-2.5 linus-2.5
-Download a 2.5 stock kernel tree, naming it "linus-2.5" in the local dir.
-The "-q" disables listing every single file as it is downloaded.
-
-2) bk clone -ql linus-2.5 alpha-2.5
-Create a separate source tree for the Alpha AXP architecture.
-The "-l" uses hard links instead of copying data, since both trees are
-on the local disk.  You can also replace the above with "bk lclone -q ..."
-
-You only clone a tree -once-.  After cloning the tree lives a long time
-on disk, being updating by pushes and pulls.
-
-3) cd alpha-2.5 ; bk pull http://gkernel.bkbits.net/alpha-2.5
-Download changes in "alpha-2.5" repository which are not present
-in the local repository, and merge them into the source tree.
-
-4) bk -r co -q
-Because every tree is a repository, files must be checked out before
-they will be in their standard places in the source tree.
-
-5)     bk vi fs/inode.c                                # example change...
-       bk citool                                       # checkin, using X tool
-       bk push bk://gkernel@bkbits.net/alpha-2.5       # upload change
-Typical example of a BK sequence that would replace the analagous CVS
-situation,
-       vi fs/inode.c
-       cvs commit
-
-As this is just supposed to be a quick BK intro, for more in-depth
-tutorials, live working demos, and docs, see http://www.bitkeeper.com/
-
-
-
-BK and Kernel Development Workflow
-----------------------------------
-Currently the latest 2.5 tree is available via "bk clone $URL"
-and "bk pull $URL" at http://linux.bkbits.net/linux-2.5
-This should change in a few weeks to a kernel.org URL.
-
-
-A big part of using BitKeeper is organizing the various trees you have
-on your local disk, and organizing the flow of changes among those
-trees, and remote trees.  If one were to graph the relationships between
-a desired BK setup, you are likely to see a few-many-few graph, like
-this:
-
-                   linux-2.5
-                       |
-              merge-to-linus-2.5
-                /    |      |
-               /     |      |
-       vm-hacks  bugfixes  filesys   personal-hacks
-             \       |      |          /
-              \      |      |         /
-               \     |      |        /
-                testing-and-validation
-
-Since a "bk push" sends all changes not in the target tree, and
-since a "bk pull" receives all changes not in the source tree, you want
-to make sure you are only pushing specific changes to the desired tree,
-not all changes from "peer parent" trees.  For example, pushing a change
-from the testing-and-validation tree would probably be a bad idea,
-because it will push all changes from vm-hacks, bugfixes, filesys, and
-personal-hacks trees into the target tree.
-
-One would typically work on only one "theme" at a time, either
-vm-hacks or bugfixes or filesys, keeping those changes isolated in
-their own tree during development, and only merge the isolated with
-other changes when going upstream (to Linus or other maintainers) or
-downstream (to your "union" trees, like testing-and-validation above).
-
-It should be noted that some of this separation is not just recommended
-practice, it's actually [for now] -enforced- by BitKeeper.  BitKeeper
-requires that changesets maintain a certain order, which is the reason
-that "bk push" sends all local changesets the remote doesn't have.  This
-separation may look like a lot of wasted disk space at first, but it
-helps when two unrelated changes may "pollute" the same area of code, or
-don't follow the same pace of development, or any other of the standard
-reasons why one creates a development branch.
-
-Small development branches (clones) will appear and disappear:
-
-       -------- A --------- B --------- C --------- D -------
-                 \                                 /
-                  -----short-term devel branch-----
-
-While long-term branches will parallel a tree (or trees), with period
-merge points.  In this first example, we pull from a tree (pulls,
-"\") periodically, such as what occurs when tracking changes in a
-vendor tree, never pushing changes back up the line:
-
-       -------- A --------- B --------- C --------- D -------
-                 \                       \           \
-                  ----long-term devel branch-----------------
-
-And then a more common case in Linux kernel development, a long term
-branch with periodic merges back into the tree (pushes, "/"):
-
-       -------- A --------- B --------- C --------- D -------
-                 \                       \         / \
-                  ----long-term devel branch-----------------
-
-
-
-
-
-Submitting Changes to Linus
----------------------------
-There's a bit of an art, or style, of submitting changes to Linus.
-Since Linus's tree is now (you might say) fully integrated into the
-distributed BitKeeper system, there are several prerequisites to
-properly submitting a BitKeeper change.  All these prereq's are just
-general cleanliness of BK usage, so as people become experts at BK, feel
-free to optimize this process further (assuming Linus agrees, of
-course).
-
-
-
-0) Make sure your tree was originally cloned from the linux-2.5 tree
-created by Linus.  If your tree does not have this as its ancestor, it
-is impossible to reliably exchange changesets.
-
-
-
-1) Pay attention to your commit text.  The commit message that
-accompanies each changeset you submit will live on forever in history,
-and is used by Linus to accurately summarize the changes in each
-pre-patch.  Remember that there is no context, so
-       "fix for new scheduler changes"
-would be too vague, but
-       "fix mips64 arch for new scheduler switch_to(), TIF_xxx semantics"
-would be much better.
-
-You can and should use the command "bk comment -C<rev>" to update the
-commit text, and improve it after the fact.  This is very useful for
-development: poor, quick descriptions during development, which get
-cleaned up using "bk comment" before issuing the "bk push" to submit the
-changes.
-
-
-
-2) Include an Internet-available URL for Linus to pull from, such as
-
-       Pull from:  http://gkernel.bkbits.net/net-drivers-2.5
-
-
-
-3) Include a summary and "diffstat -p1" of each changeset that will be
-downloaded, when Linus issues a "bk pull".  The author auto-generates
-these summaries using "bk changes -L <parent>", to obtain a listing
-of all the pending-to-send changesets, and their commit messages.
-
-It is important to show Linus what he will be downloading when he issues
-a "bk pull", to reduce the time required to sift the changes once they
-are downloaded to Linus's local machine.
-
-IMPORTANT NOTE:  One of the features of BK is that your repository does
-not have to be up to date, in order for Linus to receive your changes.
-It is considered a courtesy to keep your repository fairly recent, to
-lessen any potential merge work Linus may need to do.
-
-
-4) Split up your changes.  Each maintainer<->Linus situation is likely
-to be slightly different here, so take this just as general advice.  The
-author splits up changes according to "themes" when merging with Linus.
-Simultaneous pushes from local development go to special trees which
-exist solely to house changes "queued" for Linus.  Example of the trees:
-
-       net-drivers-2.5 -- on-going net driver maintenance
-       vm-2.5 -- VM-related changes
-       fs-2.5 -- filesystem-related changes
-
-Linus then has much more freedom for pulling changes.  He could (for
-example) issue a "bk pull" on vm-2.5 and fs-2.5 trees, to merge their
-changes, but hold off net-drivers-2.5 because of a change that needs
-more discussion.
-
-Other maintainers may find that a single linus-pull-from tree is
-adequate for passing BK changesets to him.
-
-
-
-Frequently Answered Questions
------------------------------
-1) How do I change the e-mail address shown in the changelog?
-A. When you run "bk citool" or "bk commit", set environment
-   variables BK_USER and BK_HOST to the desired username
-   and host/domain name.
-
-
-2) How do I use tags / get a diff between two kernel versions?
-A. Pass the tags Linus uses to 'bk export'.
-
-ChangeSets are in a forward-progressing order, so it's pretty easy
-to get a snapshot starting and ending at any two points in time.
-Linus puts tags on each release and pre-release, so you could use
-these two examples:
-
-    bk export -tpatch -hdu -rv2.5.4,v2.5.5 | less
-        # creates patch-2.5.5 essentially
-    bk export -tpatch -du -rv2.5.5-pre1,v2.5.5 | less
-        # changes from pre1 to final
-
-A tag is just an alias for a specific changeset... and since changesets
-are ordered, a tag is thus a marker for a specific point in time (or
-specific state of the tree).
-
-
-3) Is there an easy way to generate One Big Patch versus mainline,
-   for my long-lived kernel branch?
-A. Yes.  This requires BK 3.x, though.
-
-       bk export -tpatch -r`bk repogca bk://linux.bkbits.net/linux-2.5`,+
-
diff -urN malta/linux/Documentation/BK-usage/bk-make-sum 
malta/linux/Documentation/BK-usage/bk-make-sum
--- malta/linux/Documentation/BK-usage/Attic/bk-make-sum        2005-06-21 
14:20:32.488785000 +0100     1.2
+++ malta/linux/Documentation/BK-usage/Attic/bk-make-sum        1970/01/01 
00:00:00+0100
@@ -1,34 +0,0 @@
-#!/bin/sh -e
-# DIR=$HOME/BK/axp-2.5
-# cd $DIR
-
-LINUS_REPO=$1
-DIRBASE=`basename $PWD`
-
-{
-cat <<EOT
-Please do a
-
-       bk pull bk://gkernel.bkbits.net/$DIRBASE
-
-This will update the following files:
-
-EOT
-
-bk export -tpatch -hdu -r`bk repogca $LINUS_REPO`,+ | diffstat -p1 2>/dev/null
-
-cat <<EOT
-
-through these ChangeSets:
-
-EOT
-
-bk changes -L -d'$unless(:MERGE:){ChangeSet|:CSETREV:\n}' $LINUS_REPO |
-bk -R prs -h -d'$unless(:MERGE:){<:P:@:HOST:> (:D: :I:)\n$each(:C:){   
(:C:)\n}\n}' -
-
-} > /tmp/linus.txt
-
-cat <<EOT
-Mail text in /tmp/linus.txt; please check and send using your favourite
-mailer.
-EOT
diff -urN malta/linux/Documentation/BK-usage/bksend 
malta/linux/Documentation/BK-usage/bksend
--- malta/linux/Documentation/BK-usage/Attic/bksend     2005-06-21 
14:20:32.503227000 +0100     1.1
+++ malta/linux/Documentation/BK-usage/Attic/bksend     1970/01/01 00:00:00+0100
@@ -1,36 +0,0 @@
-#!/bin/sh
-# A script to format BK changeset output in a manner that is easy to read.
-# Andreas Dilger <adilger@turbolabs.com>  13/02/2002
-#
-# Add diffstat output after Changelog <adilger@turbolabs.com>   21/02/2002
-
-PROG=bksend
-
-usage() {
-       echo "usage: $PROG -r<rev>"
-       echo -e "\twhere <rev> is of the form '1.23', '1.23..', '1.23..1.27',"
-       echo -e "\tor '+' to indicate the most recent revision"
-
-       exit 1
-}
-
-case $1 in
--r) REV=$2; shift ;;
--r*) REV=`echo $1 | sed 's/^-r//'` ;;
-*) echo "$PROG: no revision given, you probably don't want that";;
-esac
-
-[ -z "$REV" ] && usage
-
-echo "You can import this changeset into BK by piping this whole message to:"
-echo "'| bk receive [path to repository]' or apply the patch as usual."
-
-SEP="\n===================================================================\n\n"
-echo -e $SEP
-bk changes -r$REV
-echo
-bk export -tpatch -du -h -r$REV | diffstat
-echo; echo
-bk export -tpatch -du -h -r$REV
-echo -e $SEP
-bk send -wgzip_uu -r$REV -
diff -urN malta/linux/Documentation/BK-usage/bz64wrap 
malta/linux/Documentation/BK-usage/bz64wrap
--- malta/linux/Documentation/BK-usage/Attic/bz64wrap   2005-06-21 
14:20:32.517917000 +0100     1.1
+++ malta/linux/Documentation/BK-usage/Attic/bz64wrap   1970/01/01 00:00:00+0100
@@ -1,41 +0,0 @@
-#!/bin/sh
-
-# bz64wrap - the sending side of a bzip2 | base64 stream
-# Andreas Dilger <adilger@clusterfs.com>   Jan 2002
-
-
-PATH=$PATH:/usr/bin:/usr/local/bin:/usr/freeware/bin
-
-# A program to generate base64 encoding on stdout
-BASE64_ENCODE="uuencode -m /dev/stdout"
-BASE64_BEGIN=
-BASE64_END=
-
-BZIP=NO
-BASE64=NO
-
-# Test if we have the bzip program installed
-bzip2 -c /dev/null > /dev/null 2>&1 && BZIP=YES
-
-# Test if uuencode can handle the -m (MIME) encoding option
-$BASE64_ENCODE < /dev/null > /dev/null 2>&1 && BASE64=YES
-
-if [ $BASE64 = NO ]; then
-       BASE64_ENCODE=mimencode
-       BASE64_BEGIN="begin-base64 644 -"
-       BASE64_END="===="
-
-       $BASE64_ENCODE < /dev/null > /dev/null 2>&1 && BASE64=YES
-fi
-
-if [ $BZIP = NO -o $BASE64 = NO ]; then
-       echo "$0: can't use bz64 encoding: bzip2=$BZIP, $BASE64_ENCODE=$BASE64"
-       exit 1
-fi
-
-# Sadly, mimencode does not appear to have good "begin" and "end" markers
-# like uuencode does, and it is picky about getting the right start/end of
-# the base64 stream, so we handle this internally.
-echo "$BASE64_BEGIN"
-bzip2 -9 | $BASE64_ENCODE
-echo "$BASE64_END"
diff -urN malta/linux/Documentation/BK-usage/cpcset 
malta/linux/Documentation/BK-usage/cpcset
--- malta/linux/Documentation/BK-usage/Attic/cpcset     2005-06-21 
14:20:32.532170000 +0100     1.1
+++ malta/linux/Documentation/BK-usage/Attic/cpcset     1970/01/01 00:00:00+0100
@@ -1,36 +0,0 @@
-#!/bin/sh
-#
-# Purpose: Copy changeset patch and description from one
-#         repository to another, unrelated one.
-#
-# usage:  cpcset [revision] [from-repository] [to-repository]
-#
-
-REV=$1
-FROM=$2
-TO=$3
-TMPF=/tmp/cpcset.$$
-
-rm -f $TMPF*
-
-CWD_SAVE=`pwd`
-cd $FROM
-bk changes -r$REV                      |       \
-       grep -v '^ChangeSet'            |       \
-       sed -e 's/^  //g' > $TMPF.log
-
-USERHOST=`bk changes -r$REV | grep '^ChangeSet' | awk '{print $4}'`
-export BK_USER=`echo $USERHOST | awk '-F@' '{print $1}'`
-export BK_HOST=`echo $USERHOST | awk '-F@' '{print $2}'`
-
-bk export -tpatch -hdu -r$REV > $TMPF.patch && \
-cd $CWD_SAVE && \
-cd $TO && \
-bk import -tpatch -CFR -y"`cat $TMPF.log`" $TMPF.patch . && \
-bk commit -y"`cat $TMPF.log`"
-
-rm -f $TMPF*
-
-echo changeset $REV copied.
-echo ""
-
diff -urN malta/linux/Documentation/BK-usage/cset-to-linus 
malta/linux/Documentation/BK-usage/cset-to-linus
--- malta/linux/Documentation/BK-usage/Attic/cset-to-linus      2005-06-21 
14:20:32.546637000 +0100     1.2
+++ malta/linux/Documentation/BK-usage/Attic/cset-to-linus      1970/01/01 
00:00:00+0100
@@ -1,49 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-
-my ($lhs, $rev, $tmp, $rhs, $s);
-my @cset_text = ();
-my @pipe_text = ();
-my $have_cset = 0;
-
-while (<>) {
-       next if /^---/;
-
-       if (($lhs, $tmp, $rhs) = (/^(ChangeSet\@)([^,]+)(, .*)$/)) {
-               &cset_rev if ($have_cset);
-
-               $rev = $tmp;
-               $have_cset = 1;
-
-               push(@cset_text, $_);
-       }
-
-       elsif ($have_cset) {
-               push(@cset_text, $_);
-       }
-}
-&cset_rev if ($have_cset);
-exit(0);
-
-
-sub cset_rev {
-       my $empty_cset = 0;
-
-       open PIPE, "bk export -tpatch -hdu -r $rev | diffstat -p1 2>/dev/null 
|" or die;
-       while ($s = <PIPE>) {
-               $empty_cset = 1 if ($s =~ /0 files changed/);
-               push(@pipe_text, $s);
-       }
-       close(PIPE);
-
-       if (! $empty_cset) {
-               print @cset_text;
-               print @pipe_text;
-               print "\n\n";
-       }
-
-       @pipe_text = ();
-       @cset_text = ();
-}
-
diff -urN malta/linux/Documentation/BK-usage/csets-to-patches 
malta/linux/Documentation/BK-usage/csets-to-patches
--- malta/linux/Documentation/BK-usage/Attic/csets-to-patches   2005-06-21 
14:20:32.562002000 +0100     1.2
+++ malta/linux/Documentation/BK-usage/Attic/csets-to-patches   1970/01/01 
00:00:00+0100
@@ -1,44 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-
-my ($lhs, $rev, $tmp, $rhs, $s);
-my @cset_text = ();
-my @pipe_text = ();
-my $have_cset = 0;
-
-while (<>) {
-       next if /^---/;
-
-       if (($lhs, $tmp, $rhs) = (/^(ChangeSet\@)([^,]+)(, .*)$/)) {
-               &cset_rev if ($have_cset);
-
-               $rev = $tmp;
-               $have_cset = 1;
-
-               push(@cset_text, $_);
-       }
-
-       elsif ($have_cset) {
-               push(@cset_text, $_);
-       }
-}
-&cset_rev if ($have_cset);
-exit(0);
-
-
-sub cset_rev {
-       my $empty_cset = 0;
-
-       system("bk export -tpatch -du -r $rev > /tmp/rev-$rev.patch");
-
-       if (! $empty_cset) {
-               print @cset_text;
-               print @pipe_text;
-               print "\n\n";
-       }
-
-       @pipe_text = ();
-       @cset_text = ();
-}
-
diff -urN malta/linux/Documentation/BK-usage/gcapatch 
malta/linux/Documentation/BK-usage/gcapatch
--- malta/linux/Documentation/BK-usage/Attic/gcapatch   2005-06-21 
14:20:32.576498000 +0100     1.1
+++ malta/linux/Documentation/BK-usage/Attic/gcapatch   1970/01/01 00:00:00+0100
@@ -1,8 +0,0 @@
-#!/bin/sh
-#
-# Purpose: Generate GNU diff of local changes versus canonical top-of-tree
-#
-# Usage: gcapatch > foo.patch
-#
-
-bk export -tpatch -hdu -r`bk repogca bk://linux.bkbits.net/linux-2.5`,+
diff -urN malta/linux/Documentation/BK-usage/unbz64wrap 
malta/linux/Documentation/BK-usage/unbz64wrap
--- malta/linux/Documentation/BK-usage/Attic/unbz64wrap 2005-06-21 
14:20:32.590750000 +0100     1.2
+++ malta/linux/Documentation/BK-usage/Attic/unbz64wrap 1970/01/01 00:00:00+0100
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-# unbz64wrap - the receiving side of a bzip2 | base64 stream
-# Andreas Dilger <adilger@clusterfs.com>   Jan 2002
-
-# Sadly, mimencode does not appear to have good "begin" and "end" markers
-# like uuencode does, and it is picky about getting the right start/end of
-# the base64 stream, so we handle this explicitly here.
-
-PATH=$PATH:/usr/bin:/usr/local/bin:/usr/freeware/bin
-
-if mimencode -u < /dev/null > /dev/null 2>&1 ; then
-       SHOW=
-       while read LINE; do
-               case $LINE in
-               begin-base64*) SHOW=YES ;;
-               ====) SHOW= ;;
-               *) [ "$SHOW" ] && echo "$LINE" ;;
-               esac
-       done | mimencode -u | bunzip2
-       exit $?
-else
-       cat - | uudecode -o /dev/stdout | bunzip2
-       exit $?
-fi
diff -urN malta/linux/Documentation/DocBook/.cvsignore 
malta/linux/Documentation/DocBook/.cvsignore
--- malta/linux/Documentation/DocBook/.cvsignore        1970/01/01 00:00:00
+++ malta/linux/Documentation/DocBook/.cvsignore        2005-06-21 
14:20:33.232520000 +0100     1.1.1000.1
@@ -0,0 +1,2 @@
+.*.cmd
+*.sgml
diff -urN malta/linux/Documentation/DocBook/librs.tmpl 
malta/linux/Documentation/DocBook/librs.tmpl
--- malta/linux/Documentation/DocBook/librs.tmpl        1970/01/01 00:00:00
+++ malta/linux/Documentation/DocBook/librs.tmpl        2005-06-21 
14:20:33.243327000 +0100     1.3.1000.1
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
+
+<book id="Reed-Solomon-Library-Guide">
+ <bookinfo>
+  <title>Reed-Solomon Library Programming Interface</title>
+  
+  <authorgroup>
+   <author>
+    <firstname>Thomas</firstname>
+    <surname>Gleixner</surname>
+    <affiliation>
+     <address>
+      <email>tglx@linutronix.de</email>
+     </address>
+    </affiliation>
+   </author>
+  </authorgroup>
+
+  <copyright>
+   <year>2004</year>
+   <holder>Thomas Gleixner</holder>
+  </copyright>
+
+  <legalnotice>
+   <para>
+     This documentation is free software; you can redistribute
+     it and/or modify it under the terms of the GNU General Public
+     License version 2 as published by the Free Software Foundation.
+   </para>
+      
+   <para>
+     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.
+   </para>
+      
+   <para>
+     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
+   </para>
+      
+   <para>
+     For more details see the file COPYING in the source
+     distribution of Linux.
+   </para>
+  </legalnotice>
+ </bookinfo>
+
+<toc></toc>
+
+  <chapter id="intro">
+      <title>Introduction</title>
+  <para>
+       The generic Reed-Solomon Library provides encoding, decoding
+       and error correction functions.
+  </para>
+  <para>
+       Reed-Solomon codes are used in communication and storage
+       applications to ensure data integrity. 
+  </para>
+  <para>
+       This documentation is provided for developers who want to utilize
+       the functions provided by the library.
+  </para>
+  </chapter>
+  
+  <chapter id="bugs">
+     <title>Known Bugs And Assumptions</title>
+  <para>
+       None.   
+  </para>
+  </chapter>
+
+  <chapter id="usage">
+       <title>Usage</title>
+       <para>
+               This chapter provides examples how to use the library.
+       </para>
+       <sect1>
+               <title>Initializing</title>
+               <para>
+                       The init function init_rs returns a pointer to a
+                       rs decoder structure, which holds the necessary
+                       information for encoding, decoding and error correction
+                       with the given polynomial. It either uses an existing
+                       matching decoder or creates a new one. On creation all
+                       the lookup tables for fast en/decoding are created.
+                       The function may take a while, so make sure not to 
+                       call it in critical code paths.
+               </para>
+               <programlisting>
+/* the Reed Solomon control structure */
+static struct rs_control *rs_decoder;
+
+/* Symbolsize is 10 (bits)
+ * Primitve polynomial is x^10+x^3+1
+ * first consecutive root is 0
+ * primitve element to generate roots = 1
+ * generator polinomial degree (number of roots) = 6
+ */
+rs_decoder = init_rs (10, 0x409, 0, 1, 6);
+               </programlisting>
+       </sect1>
+       <sect1>
+               <title>Encoding</title>
+               <para>
+                       The encoder calculates the Reed-Solomon code over
+                       the given data length and stores the result in 
+                       the parity buffer. Note that the parity buffer must
+                       be initialized before calling the encoder.
+               </para>
+               <para>
+                       The expanded data can be inverted on the fly by
+                       providing a non zero inversion mask. The expanded data 
is
+                       XOR'ed with the mask. This is used e.g. for FLASH
+                       ECC, where the all 0xFF is inverted to an all 0x00.
+                       The Reed-Solomon code for all 0x00 is all 0x00. The
+                       code is inverted before storing to FLASH so it is 0xFF
+                       too. This prevent's that reading from an erased FLASH
+                       results in ECC errors.
+               </para>
+               <para>
+                       The databytes are expanded to the given symbol size
+                       on the fly. There is no support for encoding continuous
+                       bitstreams with a symbol size != 8 at the moment. If
+                       it is necessary it should be not a big deal to implement
+                       such functionality.
+               </para>
+               <programlisting>
+/* Parity buffer. Size = number of roots */
+uint16_t par[6];
+/* Initialize the parity buffer */
+memset(par, 0, sizeof(par));
+/* Encode 512 byte in data8. Store parity in buffer par */
+encode_rs8 (rs_decoder, data8, 512, par, 0);
+               </programlisting>
+       </sect1>
+       <sect1>
+               <title>Decoding</title>
+               <para>
+                       The decoder calculates the syndrome over
+                       the given data length and the received parity symbols
+                       and corrects errors in the data.
+               </para>
+               <para>
+                       If a syndrome is available from a hardware decoder
+                       then the syndrome calculation is skipped.
+               </para>
+               <para>
+                       The correction of the data buffer can be suppressed
+                       by providing a correction pattern buffer and an error
+                       location buffer to the decoder. The decoder stores the
+                       calculated error location and the correction bitmask
+                       in the given buffers. This is useful for hardware
+                       decoders which use a weird bit ordering scheme.
+               </para>
+               <para>
+                       The databytes are expanded to the given symbol size
+                       on the fly. There is no support for decoding continuous
+                       bitstreams with a symbolsize != 8 at the moment. If
+                       it is necessary it should be not a big deal to implement
+                       such functionality.
+               </para>
+               
+               <sect2>
+               <title>
+                       Decoding with syndrome calculation, direct data 
correction
+               </title>
+               <programlisting>
+/* Parity buffer. Size = number of roots */
+uint16_t par[6];
+uint8_t  data[512];
+int numerr;
+/* Receive data */
+.....
+/* Receive parity */
+.....
+/* Decode 512 byte in data8.*/
+numerr = decode_rs8 (rs_decoder, data8, par, 512, NULL, 0, NULL, 0, NULL);
+               </programlisting>
+               </sect2>
+
+               <sect2>
+               <title>
+                       Decoding with syndrome given by hardware decoder, 
direct data correction
+               </title>
+               <programlisting>
+/* Parity buffer. Size = number of roots */
+uint16_t par[6], syn[6];
+uint8_t  data[512];
+int numerr;
+/* Receive data */
+.....
+/* Receive parity */
+.....
+/* Get syndrome from hardware decoder */
+.....
+/* Decode 512 byte in data8.*/
+numerr = decode_rs8 (rs_decoder, data8, par, 512, syn, 0, NULL, 0, NULL);
+               </programlisting>
+               </sect2>
+
+               <sect2>
+               <title>
+                       Decoding with syndrome given by hardware decoder, no 
direct data correction.
+               </title>
+               <para>
+                       Note: It's not necessary to give data and received 
parity to the decoder.
+               </para>
+               <programlisting>
+/* Parity buffer. Size = number of roots */
+uint16_t par[6], syn[6], corr[8];
+uint8_t  data[512];
+int numerr, errpos[8];
+/* Receive data */
+.....
+/* Receive parity */
+.....
+/* Get syndrome from hardware decoder */
+.....
+/* Decode 512 byte in data8.*/
+numerr = decode_rs8 (rs_decoder, NULL, NULL, 512, syn, 0, errpos, 0, corr);
+for (i = 0; i &lt; numerr; i++) {
+       do_error_correction_in_your_buffer(errpos[i], corr[i]);
+}
+               </programlisting>
+               </sect2>
+       </sect1>
+       <sect1>
+               <title>Cleanup</title>
+               <para>
+                       The function free_rs frees the allocated resources,
+                       if the caller is the last user of the decoder.
+               </para>
+               <programlisting>
+/* Release resources */
+free_rs(rs_decoder);
+               </programlisting>
+       </sect1>
+
+  </chapter>
+       
+  <chapter id="structs">
+     <title>Structures</title>
+     <para>
+     This chapter contains the autogenerated documentation of the structures 
which are
+     used in the Reed-Solomon Library and are relevant for a developer.
+     </para>
+!Iinclude/linux/rslib.h
+  </chapter>
+
+  <chapter id="pubfunctions">
+     <title>Public Functions Provided</title>
+     <para>
+     This chapter contains the autogenerated documentation of the Reed-Solomon 
functions
+     which are exported.
+     </para>
+!Elib/reed_solomon/reed_solomon.c
+  </chapter>
+  
+  <chapter id="credits">
+     <title>Credits</title>
+       <para>
+               The library code for encoding and decoding was written by Phil 
Karn.
+       </para>
+       <programlisting>
+               Copyright 2002, Phil Karn, KA9Q
+               May be used under the terms of the GNU General Public License 
(GPL)
+       </programlisting>
+       <para>
+               The wrapper functions and interfaces are written by Thomas 
Gleixner
+       </para>
+       <para>
+               Many users have provided bugfixes, improvements and helping 
hands for testing.
+               Thanks a lot.
+       </para>
+       <para>
+               The following people have contributed to this document:
+       </para>
+       <para>
+               Thomas Gleixner<email>tglx@linutronix.de</email>
+       </para>
+  </chapter>
+</book>
diff -urN malta/linux/Documentation/DocBook/mtdnand.tmpl 
malta/linux/Documentation/DocBook/mtdnand.tmpl
--- malta/linux/Documentation/DocBook/mtdnand.tmpl      1970/01/01 00:00:00
+++ malta/linux/Documentation/DocBook/mtdnand.tmpl      2005-06-21 
14:20:33.257128000 +0100     1.2.1000.1
@@ -0,0 +1,1320 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
+
+<book id="MTD-NAND-Guide">
+ <bookinfo>
+  <title>MTD NAND Driver Programming Interface</title>
+  
+  <authorgroup>
+   <author>
+    <firstname>Thomas</firstname>
+    <surname>Gleixner</surname>
+    <affiliation>
+     <address>
+      <email>tglx@linutronix.de</email>
+     </address>
+    </affiliation>
+   </author>
+  </authorgroup>
+
+  <copyright>
+   <year>2004</year>
+   <holder>Thomas Gleixner</holder>
+  </copyright>
+
+  <legalnotice>
+   <para>
+     This documentation is free software; you can redistribute
+     it and/or modify it under the terms of the GNU General Public
+     License version 2 as published by the Free Software Foundation.
+   </para>
+      
+   <para>
+     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.
+   </para>
+      
+   <para>
+     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
+   </para>
+      
+   <para>
+     For more details see the file COPYING in the source
+     distribution of Linux.
+   </para>
+  </legalnotice>
+ </bookinfo>
+
+<toc></toc>
+
+  <chapter id="intro">
+      <title>Introduction</title>
+  <para>
+       The generic NAND driver supports almost all NAND and AG-AND based
+       chips and connects them to the Memory Technology Devices (MTD)
+       subsystem of the Linux Kernel.
+  </para>
+  <para>
+       This documentation is provided for developers who want to implement
+       board drivers or filesystem drivers suitable for NAND devices.
+  </para>
+  </chapter>
+  
+  <chapter id="bugs">
+     <title>Known Bugs And Assumptions</title>
+  <para>
+       None.   
+  </para>
+  </chapter>
+
+  <chapter id="dochints">
+     <title>Documentation hints</title>
+     <para>
+     The function and structure docs are autogenerated. Each function and 
+     struct member has a short description which is marked with an [XXX] 
identifier.
+     The following chapters explain the meaning of those identifiers.
+     </para>
+     <sect1>   
+       <title>Function identifiers [XXX]</title>
+       <para>
+       The functions are marked with [XXX] identifiers in the short
+       comment. The identifiers explain the usage and scope of the
+       functions. Following identifiers are used:
+       </para>
+       <itemizedlist>
+               <listitem><para>
+               [MTD Interface]</para><para>
+               These functions provide the interface to the MTD kernel API. 
+               They are not replacable and provide functionality
+               which is complete hardware independent.
+               </para></listitem>
+               <listitem><para>
+               [NAND Interface]</para><para>
+               These functions are exported and provide the interface to the 
NAND kernel API. 
+               </para></listitem>
+               <listitem><para>
+               [GENERIC]</para><para>
+               Generic functions are not replacable and provide functionality
+               which is complete hardware independent.
+               </para></listitem>
+               <listitem><para>
+               [DEFAULT]</para><para>
+               Default functions provide hardware related functionality which 
is suitable
+               for most of the implementations. These functions can be 
replaced by the
+               board driver if neccecary. Those functions are called via 
pointers in the
+               NAND chip description structure. The board driver can set the 
functions which
+               should be replaced by board dependend functions before calling 
nand_scan().
+               If the function pointer is NULL on entry to nand_scan() then 
the pointer
+               is set to the default function which is suitable for the 
detected chip type.
+               </para></listitem>
+       </itemizedlist>
+     </sect1>
+     <sect1>   
+       <title>Struct member identifiers [XXX]</title>
+       <para>
+       The struct members are marked with [XXX] identifiers in the 
+       comment. The identifiers explain the usage and scope of the
+       members. Following identifiers are used:
+       </para>
+       <itemizedlist>
+               <listitem><para>
+               [INTERN]</para><para>
+               These members are for NAND driver internal use only and must 
not be
+               modified. Most of these values are calculated from the chip 
geometry
+               information which is evaluated during nand_scan().
+               </para></listitem>
+               <listitem><para>
+               [REPLACEABLE]</para><para>
+               Replaceable members hold hardware related functions which can 
be 
+               provided by the board driver. The board driver can set the 
functions which
+               should be replaced by board dependend functions before calling 
nand_scan().
+               If the function pointer is NULL on entry to nand_scan() then 
the pointer
+               is set to the default function which is suitable for the 
detected chip type.
+               </para></listitem>
+               <listitem><para>
+               [BOARDSPECIFIC]</para><para>
+               Board specific members hold hardware related information which 
must
+               be provided by the board driver. The board driver must set the 
function
+               pointers and datafields before calling nand_scan().
+               </para></listitem>
+               <listitem><para>
+               [OPTIONAL]</para><para>
+               Optional members can hold information relevant for the board 
driver. The
+               generic NAND driver code does not use this information.
+               </para></listitem>
+       </itemizedlist>
+     </sect1>
+  </chapter>   
+
+  <chapter id="basicboarddriver">
+       <title>Basic board driver</title>
+       <para>
+               For most boards it will be sufficient to provide just the
+               basic functions and fill out some really board dependend
+               members in the nand chip description structure.
+               See drivers/mtd/nand/skeleton for reference.
+       </para>
+       <sect1>
+               <title>Basic defines</title>
+               <para>
+                       At least you have to provide a mtd structure and
+                       a storage for the ioremap'ed chip address.
+                       You can allocate the mtd structure using kmalloc
+                       or you can allocate it statically.
+                       In case of static allocation you have to allocate
+                       a nand_chip structure too.
+               </para>
+               <para>
+                       Kmalloc based example
+               </para>
+               <programlisting>
+static struct mtd_info *board_mtd;
+static unsigned long baseaddr;
+               </programlisting>
+               <para>
+                       Static example
+               </para>
+               <programlisting>
+static struct mtd_info board_mtd;
+static struct nand_chip board_chip;
+static unsigned long baseaddr;
+               </programlisting>
+       </sect1>
+       <sect1>
+               <title>Partition defines</title>
+               <para>
+                       If you want to divide your device into parititions, then
+                       enable the configuration switch CONFIG_MTD_PARITIONS 
and define
+                       a paritioning scheme suitable to your board.
+               </para>
+               <programlisting>
+#define NUM_PARTITIONS 2
+static struct mtd_partition partition_info[] = {
+       { .name = "Flash partition 1",
+         .offset =  0,
+         .size =    8 * 1024 * 1024 },
+       { .name = "Flash partition 2",
+         .offset =  MTDPART_OFS_NEXT,
+         .size =    MTDPART_SIZ_FULL },
+};
+               </programlisting>
+       </sect1>
+       <sect1>
+               <title>Hardware control function</title>
+               <para>
+                       The hardware control function provides access to the 
+                       control pins of the NAND chip(s). 
+                       The access can be done by GPIO pins or by address lines.
+                       If you use address lines, make sure that the timing
+                       requirements are met.
+               </para>
+               <para>
+                       <emphasis>GPIO based example</emphasis>
+               </para>
+               <programlisting>
+static void board_hwcontrol(struct mtd_info *mtd, int cmd)
+{
+       switch(cmd){
+               case NAND_CTL_SETCLE: /* Set CLE pin high */ break;
+               case NAND_CTL_CLRCLE: /* Set CLE pin low */ break;
+               case NAND_CTL_SETALE: /* Set ALE pin high */ break;
+               case NAND_CTL_CLRALE: /* Set ALE pin low */ break;
+               case NAND_CTL_SETNCE: /* Set nCE pin low */ break;
+               case NAND_CTL_CLRNCE: /* Set nCE pin high */ break;
+       }
+}
+               </programlisting>
+               <para>
+                       <emphasis>Address lines based example.</emphasis> It's 
assumed that the
+                       nCE pin is driven by a chip select decoder.
+               </para>
+               <programlisting>
+static void board_hwcontrol(struct mtd_info *mtd, int cmd)
+{
+       struct nand_chip *this = (struct nand_chip *) mtd->priv;
+       switch(cmd){
+               case NAND_CTL_SETCLE: this->IO_ADDR_W |= CLE_ADRR_BIT;  break;
+               case NAND_CTL_CLRCLE: this->IO_ADDR_W &amp;= ~CLE_ADRR_BIT; 
break;
+               case NAND_CTL_SETALE: this->IO_ADDR_W |= ALE_ADRR_BIT;  break;
+               case NAND_CTL_CLRALE: this->IO_ADDR_W &amp;= ~ALE_ADRR_BIT; 
break;
+       }
+}
+               </programlisting>
+       </sect1>
+       <sect1>
+               <title>Device ready function</title>
+               <para>
+                       If the hardware interface has the ready busy pin of the 
NAND chip connected to a
+                       GPIO or other accesible I/O pin, this function is used 
to read back the state of the
+                       pin. The function has no arguments and should return 0, 
if the device is busy (R/B pin 
+                       is low) and 1, if the device is ready (R/B pin is high).
+                       If the hardware interface does not give access to the 
ready busy pin, then
+                       the function must not be defined and the function 
pointer this->dev_ready is set to NULL.               
+               </para>
+       </sect1>
+       <sect1>
+               <title>Init function</title>
+               <para>
+                       The init function allocates memory and sets up all the 
board
+                       specific parameters and function pointers. When 
everything
+                       is set up nand_scan() is called. This function tries to
+                       detect and identify then chip. If a chip is found all 
the
+                       internal data fields are initialized accordingly.
+                       The structure(s) have to be zeroed out first and then 
filled with the neccecary 
+                       information about the device.
+               </para>
+               <programlisting>
+int __init board_init (void)
+{
+       struct nand_chip *this;
+       int err = 0;
+
+       /* Allocate memory for MTD device structure and private data */
+       board_mtd = kmalloc (sizeof(struct mtd_info) + sizeof (struct 
nand_chip), GFP_KERNEL);
+       if (!board_mtd) {
+               printk ("Unable to allocate NAND MTD device structure.\n");
+               err = -ENOMEM;
+               goto out;
+       }
+
+       /* Initialize structures */
+       memset ((char *) board_mtd, 0, sizeof(struct mtd_info) + sizeof(struct 
nand_chip));
+
+       /* map physical adress */
+       baseaddr = (unsigned long)ioremap(CHIP_PHYSICAL_ADDRESS, 1024);
+       if(!baseaddr){
+               printk("Ioremap to access NAND chip failed\n");
+               err = -EIO;
+               goto out_mtd;
+       }
+
+       /* Get pointer to private data */
+       this = (struct nand_chip *) ();
+       /* Link the private data with the MTD structure */
+       board_mtd->priv = this;
+
+       /* Set address of NAND IO lines */
+       this->IO_ADDR_R = baseaddr;
+       this->IO_ADDR_W = baseaddr;
+       /* Reference hardware control function */
+       this->hwcontrol = board_hwcontrol;
+       /* Set command delay time, see datasheet for correct value */
+       this->chip_delay = CHIP_DEPENDEND_COMMAND_DELAY;
+       /* Assign the device ready function, if available */
+       this->dev_ready = board_dev_ready;
+       this->eccmode = NAND_ECC_SOFT;
+
+       /* Scan to find existance of the device */
+       if (nand_scan (board_mtd, 1)) {
+               err = -ENXIO;
+               goto out_ior;
+       }
+       
+       add_mtd_partitions(board_mtd, partition_info, NUM_PARTITIONS);
+       goto out;
+
+out_ior:
+       iounmap((void *)baseaddr);
+out_mtd:
+       kfree (board_mtd);
+out:
+       return err;
+}
+module_init(board_init);
+               </programlisting>
+       </sect1>
+       <sect1>
+               <title>Exit function</title>
+               <para>
+                       The exit function is only neccecary if the driver is
+                       compiled as a module. It releases all resources which
+                       are held by the chip driver and unregisters the 
partitions
+                       in the MTD layer.
+               </para>
+               <programlisting>
+#ifdef MODULE
+static void __exit board_cleanup (void)
+{
+       /* Release resources, unregister device */
+       nand_release (board_mtd);
+
+       /* unmap physical adress */
+       iounmap((void *)baseaddr);
+       
+       /* Free the MTD device structure */
+       kfree (board_mtd);
+}
+module_exit(board_cleanup);
+#endif
+               </programlisting>
+       </sect1>
+  </chapter>
+
+  <chapter id="boarddriversadvanced">
+       <title>Advanced board driver functions</title>
+       <para>
+               This chapter describes the advanced functionality of the NAND
+               driver. For a list of functions which can be overridden by the 
board
+               driver see the documentation of the nand_chip structure.
+       </para>
+       <sect1>
+               <title>Multiple chip control</title>
+               <para>
+                       The nand driver can control chip arrays. Therefor the
+                       board driver must provide an own select_chip function. 
This
+                       function must (de)select the requested chip.
+                       The function pointer in the nand_chip structure must
+                       be set before calling nand_scan(). The maxchip parameter
+                       of nand_scan() defines the maximum number of chips to
+                       scan for. Make sure that the select_chip function can
+                       handle the requested number of chips.
+               </para>
+               <para>
+                       The nand driver concatenates the chips to one virtual
+                       chip and provides this virtual chip to the MTD layer.
+               </para>
+               <para>
+                       <emphasis>Note: The driver can only handle linear chip 
arrays
+                       of equally sized chips. There is no support for
+                       parallel arrays which extend the buswidth.</emphasis>
+               </para>
+               <para>
+                       <emphasis>GPIO based example</emphasis>
+               </para>
+               <programlisting>
+static void board_select_chip (struct mtd_info *mtd, int chip)
+{
+       /* Deselect all chips, set all nCE pins high */
+       GPIO(BOARD_NAND_NCE) |= 0xff;   
+       if (chip >= 0)
+               GPIO(BOARD_NAND_NCE) &amp;= ~ (1 &lt;&lt; chip);
+}
+               </programlisting>
+               <para>
+                       <emphasis>Address lines based example.</emphasis>
+                       Its assumed that the nCE pins are connected to an
+                       address decoder.
+               </para>
+               <programlisting>
+static void board_select_chip (struct mtd_info *mtd, int chip)
+{
+       struct nand_chip *this = (struct nand_chip *) mtd->priv;
+       
+       /* Deselect all chips */
+       this->IO_ADDR_R &amp;= ~BOARD_NAND_ADDR_MASK;
+       this->IO_ADDR_W &amp;= ~BOARD_NAND_ADDR_MASK;
+       switch (chip) {
+       case 0:
+               this->IO_ADDR_R |= BOARD_NAND_ADDR_CHIP0;
+               this->IO_ADDR_W |= BOARD_NAND_ADDR_CHIP0;
+               break;
+       ....    
+       case n:
+               this->IO_ADDR_R |= BOARD_NAND_ADDR_CHIPn;
+               this->IO_ADDR_W |= BOARD_NAND_ADDR_CHIPn;
+               break;
+       }       
+}
+               </programlisting>
+       </sect1>
+       <sect1>
+               <title>Hardware ECC support</title>
+               <sect2>
+                       <title>Functions and constants</title>
+                       <para>
+                               The nand driver supports three different types 
of
+                               hardware ECC.
+                               <itemizedlist>
+                               <listitem><para>NAND_ECC_HW3_256</para><para>
+                               Hardware ECC generator providing 3 bytes ECC per
+                               256 byte.
+                               </para> </listitem>
+                               <listitem><para>NAND_ECC_HW3_512</para><para>
+                               Hardware ECC generator providing 3 bytes ECC per
+                               512 byte.
+                               </para> </listitem>
+                               <listitem><para>NAND_ECC_HW6_512</para><para>
+                               Hardware ECC generator providing 6 bytes ECC per
+                               512 byte.
+                               </para> </listitem>
+                               <listitem><para>NAND_ECC_HW8_512</para><para>
+                               Hardware ECC generator providing 6 bytes ECC per
+                               512 byte.
+                               </para> </listitem>
+                               </itemizedlist>
+                               If your hardware generator has a different 
functionality
+                               add it at the appropriate place in nand_base.c
+                       </para>
+                       <para>
+                               The board driver must provide following 
functions:
+                               <itemizedlist>
+                               <listitem><para>enable_hwecc</para><para>
+                               This function is called before reading / 
writing to
+                               the chip. Reset or initialize the hardware 
generator
+                               in this function. The function is called with an
+                               argument which let you distinguish between read 
+                               and write operations.
+                               </para> </listitem>
+                               <listitem><para>calculate_ecc</para><para>
+                               This function is called after read / write from 
/ to
+                               the chip. Transfer the ECC from the hardware to
+                               the buffer. If the option NAND_HWECC_SYNDROME 
is set
+                               then the function is only called on write. See 
below.
+                               </para> </listitem>
+                               <listitem><para>correct_data</para><para>
+                               In case of an ECC error this function is called 
for
+                               error detection and correction. Return 1 
respectively 2
+                               in case the error can be corrected. If the 
error is
+                               not correctable return -1. If your hardware 
generator
+                               matches the default algorithm of the nand_ecc 
software
+                               generator then use the correction function 
provided
+                               by nand_ecc instead of implementing duplicated 
code.
+                               </para> </listitem>
+                               </itemizedlist>
+                       </para>
+               </sect2>
+               <sect2>
+               <title>Hardware ECC with syndrome calculation</title>
+                       <para>
+                               Many hardware ECC implementations provide 
Reed-Solomon
+                               codes and calculate an error syndrome on read. 
The syndrome
+                               must be converted to a standard Reed-Solomon 
syndrome
+                               before calling the error correction code in the 
generic
+                               Reed-Solomon library.
+                       </para>
+                       <para>
+                               The ECC bytes must be placed immidiately after 
the data
+                               bytes in order to make the syndrome generator 
work. This
+                               is contrary to the usual layout used by 
software ECC. The
+                               seperation of data and out of band area is not 
longer
+                               possible. The nand driver code handles this 
layout and
+                               the remaining free bytes in the oob area are 
managed by 
+                               the autoplacement code. Provide a matching 
oob-layout
+                               in this case. See rts_from4.c and diskonchip.c 
for 
+                               implementation reference. In those cases we 
must also
+                               use bad block tables on FLASH, because the ECC 
layout is
+                               interferring with the bad block marker 
positions.
+                               See bad block table support for details.
+                       </para>
+               </sect2>
+       </sect1>
+       <sect1>
+               <title>Bad block table support</title>
+               <para>
+                       Most NAND chips mark the bad blocks at a defined
+                       position in the spare area. Those blocks must 
+                       not be erased under any circumstances as the bad 
+                       block information would be lost.
+                       It is possible to check the bad block mark each
+                       time when the blocks are accessed by reading the
+                       spare area of the first page in the block. This
+                       is time consuming so a bad block table is used.
+               </para>
+               <para>
+                       The nand driver supports various types of bad block
+                       tables.
+                       <itemizedlist>
+                       <listitem><para>Per device</para><para>
+                       The bad block table contains all bad block information
+                       of the device which can consist of multiple chips.
+                       </para> </listitem>
+                       <listitem><para>Per chip</para><para>
+                       A bad block table is used per chip and contains the
+                       bad block information for this particular chip.
+                       </para> </listitem>
+                       <listitem><para>Fixed offset</para><para>
+                       The bad block table is located at a fixed offset
+                       in the chip (device). This applies to various
+                       DiskOnChip devices.
+                       </para> </listitem>
+                       <listitem><para>Automatic placed</para><para>
+                       The bad block table is automatically placed and
+                       detected either at the end or at the beginning
+                       of a chip (device)
+                       </para> </listitem>
+                       <listitem><para>Mirrored tables</para><para>
+                       The bad block table is mirrored on the chip (device) to
+                       allow updates of the bad block table without data loss.
+                       </para> </listitem>
+                       </itemizedlist>
+               </para>
+               <para>  
+                       nand_scan() calls the function nand_default_bbt(). 
+                       nand_default_bbt() selects appropriate default
+                       bad block table desriptors depending on the chip 
information
+                       which was retrieved by nand_scan().
+               </para>
+               <para>
+                       The standard policy is scanning the device for bad 
+                       blocks and build a ram based bad block table which
+                       allows faster access than always checking the
+                       bad block information on the flash chip itself.
+               </para>
+               <sect2>
+                       <title>Flash based tables</title>
+                       <para>
+                               It may be desired or neccecary to keep a bad 
block table in FLASH. 
+                               For AG-AND chips this is mandatory, as they 
have no factory marked
+                               bad blocks. They have factory marked good 
blocks. The marker pattern
+                               is erased when the block is erased to be 
reused. So in case of
+                               powerloss before writing the pattern back to 
the chip this block 
+                               would be lost and added to the bad blocks. 
Therefor we scan the 
+                               chip(s) when we detect them the first time for 
good blocks and 
+                               store this information in a bad block table 
before erasing any 
+                               of the blocks.
+                       </para>
+                       <para>
+                               The blocks in which the tables are stored are 
procteted against
+                               accidental access by marking them bad in the 
memory bad block
+                               table. The bad block table managment functions 
are allowed
+                               to circumvernt this protection.
+                       </para>
+                       <para>
+                               The simplest way to activate the FLASH based 
bad block table support 
+                               is to set the option NAND_USE_FLASH_BBT in the 
option field of
+                               the nand chip structure before calling 
nand_scan(). For AG-AND
+                               chips is this done by default.
+                               This activates the default FLASH based bad 
block table functionality 
+                               of the NAND driver. The default bad block table 
options are
+                               <itemizedlist>
+                               <listitem><para>Store bad block table per 
chip</para></listitem>
+                               <listitem><para>Use 2 bits per 
block</para></listitem>
+                               <listitem><para>Automatic placement at the end 
of the chip</para></listitem>
+                               <listitem><para>Use mirrored tables with 
version numbers</para></listitem>
+                               <listitem><para>Reserve 4 blocks at the end of 
the chip</para></listitem>
+                               </itemizedlist>
+                       </para>
+               </sect2>
+               <sect2>
+                       <title>User defined tables</title>
+                       <para>
+                               User defined tables are created by filling out 
a 
+                               nand_bbt_descr structure and storing the 
pointer in the
+                               nand_chip structure member bbt_td before 
calling nand_scan(). 
+                               If a mirror table is neccecary a second 
structure must be
+                               created and a pointer to this structure must be 
stored
+                               in bbt_md inside the nand_chip structure. If 
the bbt_md 
+                               member is set to NULL then only the main table 
is used
+                               and no scan for the mirrored table is performed.
+                       </para>
+                       <para>
+                               The most important field in the nand_bbt_descr 
structure
+                               is the options field. The options define most 
of the 
+                               table properties. Use the predefined constants 
from
+                               nand.h to define the options.
+                               <itemizedlist>
+                               <listitem><para>Number of bits per block</para>
+                               <para>The supported number of bits is 1, 2, 4, 
8.</para></listitem>
+                               <listitem><para>Table per chip</para>
+                               <para>Setting the constant NAND_BBT_PERCHIP 
selects that
+                               a bad block table is managed for each chip in a 
chip array.
+                               If this option is not set then a per device bad 
block table
+                               is used.</para></listitem>
+                               <listitem><para>Table location is 
absolute</para>
+                               <para>Use the option constant NAND_BBT_ABSPAGE 
and
+                               define the absolute page number where the bad 
block
+                               table starts in the field pages. If you have 
selected bad block
+                               tables per chip and you have a multi chip array 
then the start page
+                               must be given for each chip in the chip array. 
Note: there is no scan
+                               for a table ident pattern performed, so the 
fields 
+                               pattern, veroffs, offs, len can be left 
uninitialized</para></listitem>
+                               <listitem><para>Table location is automatically 
detected</para>
+                               <para>The table can either be located in the 
first or the last good
+                               blocks of the chip (device). Set 
NAND_BBT_LASTBLOCK to place
+                               the bad block table at the end of the chip 
(device). The
+                               bad block tables are marked and identified by a 
pattern which
+                               is stored in the spare area of the first page 
in the block which
+                               holds the bad block table. Store a pointer to 
the pattern  
+                               in the pattern field. Further the length of the 
pattern has to be 
+                               stored in len and the offset in the spare area 
must be given
+                               in the offs member of the nand_bbt_descr 
stucture. For mirrored
+                               bad block tables different patterns are 
mandatory.</para></listitem>
+                               <listitem><para>Table creation</para>
+                               <para>Set the option NAND_BBT_CREATE to enable 
the table creation
+                               if no table can be found during the scan. 
Usually this is done only 
+                               once if a new chip is found. </para></listitem>
+                               <listitem><para>Table write support</para>
+                               <para>Set the option NAND_BBT_WRITE to enable 
the table write support.
+                               This allows the update of the bad block 
table(s) in case a block has
+                               to be marked bad due to wear. The MTD interface 
function block_markbad
+                               is calling the update function of the bad block 
table. If the write
+                               support is enabled then the table is updated on 
FLASH.</para>
+                               <para>
+                               Note: Write support should only be enabled for 
mirrored tables with
+                               version control.
+                               </para></listitem>
+                               <listitem><para>Table version control</para>
+                               <para>Set the option NAND_BBT_VERSION to enable 
the table version control.
+                               It's highly recommended to enable this for 
mirrored tables with write
+                               support. It makes sure that the risk of loosing 
the bad block
+                               table information is reduced to the loss of the 
information about the
+                               one worn out block which should be marked bad. 
The version is stored in
+                               4 consecutive bytes in the spare area of the 
device. The position of
+                               the version number is defined by the member 
veroffs in the bad block table
+                               descriptor.</para></listitem>
+                               <listitem><para>Save block contents on 
write</para>
+                               <para>
+                               In case that the block which holds the bad 
block table does contain
+                               other useful information, set the option 
NAND_BBT_SAVECONTENT. When
+                               the bad block table is written then the whole 
block is read the bad
+                               block table is updated and the block is erased 
and everything is 
+                               written back. If this option is not set only 
the bad block table
+                               is written and everything else in the block is 
ignored and erased.
+                               </para></listitem>
+                               <listitem><para>Number of reserved blocks</para>
+                               <para>
+                               For automatic placement some blocks must be 
reserved for
+                               bad block table storage. The number of reserved 
blocks is defined 
+                               in the maxblocks member of the babd block table 
description structure.
+                               Reserving 4 blocks for mirrored tables should 
be a reasonable number. 
+                               This also limits the number of blocks which are 
scanned for the bad
+                               block table ident pattern.
+                               </para></listitem>
+                               </itemizedlist>
+                       </para>
+               </sect2>
+       </sect1>
+       <sect1>
+               <title>Spare area (auto)placement</title>
+               <para>
+                       The nand driver implements different possibilities for
+                       placement of filesystem data in the spare area, 
+                       <itemizedlist>
+                       <listitem><para>Placement defined by fs 
driver</para></listitem>
+                       <listitem><para>Automatic placement</para></listitem>
+                       </itemizedlist>
+                       The default placement function is automatic placement. 
The
+                       nand driver has built in default placement schemes for 
the
+                       various chiptypes. If due to hardware ECC functionality 
the
+                       default placement does not fit then the board driver can
+                       provide a own placement scheme.
+               </para>
+               <para>
+                       File system drivers can provide a own placement scheme 
which
+                       is used instead of the default placement scheme.
+               </para>
+               <para>
+                       Placement schemes are defined by a nand_oobinfo 
structure
+                       <programlisting>
+struct nand_oobinfo {
+       int     useecc;
+       int     eccbytes;
+       int     eccpos[24];
+       int     oobfree[8][2];
+};
+                       </programlisting>
+                       <itemizedlist>
+                       <listitem><para>useecc</para><para>
+                               The useecc member controls the ecc and 
placement function. The header
+                               file include/mtd/mtd-abi.h contains constants 
to select ecc and
+                               placement. MTD_NANDECC_OFF switches off the ecc 
complete. This is
+                               not recommended and available for testing and 
diagnosis only.
+                               MTD_NANDECC_PLACE selects caller defined 
placement, MTD_NANDECC_AUTOPLACE
+                               selects automatic placement.
+                       </para></listitem>
+                       <listitem><para>eccbytes</para><para>
+                               The eccbytes member defines the number of ecc 
bytes per page.
+                       </para></listitem>
+                       <listitem><para>eccpos</para><para>
+                               The eccpos array holds the byte offsets in the 
spare area where
+                               the ecc codes are placed.
+                       </para></listitem>
+                       <listitem><para>oobfree</para><para>
+                               The oobfree array defines the areas in the 
spare area which can be
+                               used for automatic placement. The information 
is given in the format
+                               {offset, size}. offset defines the start of the 
usable area, size the
+                               length in bytes. More than one area can be 
defined. The list is terminated
+                               by an {0, 0} entry.
+                       </para></listitem>
+                       </itemizedlist>
+               </para>
+               <sect2>
+                       <title>Placement defined by fs driver</title>
+                       <para>
+                               The calling function provides a pointer to a 
nand_oobinfo
+                               structure which defines the ecc placement. For 
writes the
+                               caller must provide a spare area buffer along 
with the
+                               data buffer. The spare area buffer size is 
(number of pages) *
+                               (size of spare area). For reads the buffer size 
is
+                               (number of pages) * ((size of spare area) + 
(number of ecc
+                               steps per page) * sizeof (int)). The driver 
stores the
+                               result of the ecc check for each tuple in the 
spare buffer.
+                               The storage sequence is 
+                       </para>
+                       <para>
+                               &lt;spare data page 0&gt;&lt;ecc result 
0&gt;...&lt;ecc result n&gt;
+                       </para>
+                       <para>
+                               ...
+                       </para>
+                       <para>
+                               &lt;spare data page n&gt;&lt;ecc result 
0&gt;...&lt;ecc result n&gt;
+                       </para>
+                       <para>
+                               This is a legacy mode used by YAFFS1.
+                       </para>
+                       <para>
+                               If the spare area buffer is NULL then only the 
ECC placement is
+                               done according to the given scheme in the 
nand_oobinfo structure.
+                       </para>
+               </sect2>
+               <sect2>
+                       <title>Automatic placement</title>
+                       <para>
+                               Automatic placement uses the built in defaults 
to place the
+                               ecc bytes in the spare area. If filesystem data 
have to be stored /
+                               read into the spare area then the calling 
function must provide a
+                               buffer. The buffer size per page is determined 
by the oobfree array in
+                               the nand_oobinfo structure.
+                       </para>
+                       <para>
+                               If the spare area buffer is NULL then only the 
ECC placement is
+                               done according to the default builtin scheme.
+                       </para>
+               </sect2>
+               <sect2>
+                       <title>User space placement selection</title>
+               <para>
+                       All non ecc functions like mtd->read and mtd->write use 
an internal 
+                       structure, which can be set by an ioctl. This structure 
is preset 
+                       to the autoplacement default.
+                       <programlisting>
+       ioctl (fd, MEMSETOOBSEL, oobsel);
+                       </programlisting>
+                       oobsel is a pointer to a user supplied structure of type
+                       nand_oobconfig. The contents of this structure must 
match the 
+                       criteria of the filesystem, which will be used. See an 
example in utils/nandwrite.c.
+               </para>
+               </sect2>
+       </sect1>        
+       <sect1>
+               <title>Spare area autoplacement default schemes</title>
+               <sect2>
+                       <title>256 byte pagesize</title>
+<informaltable><tgroup cols="3"><tbody>
+<row>
+<entry>Offset</entry>
+<entry>Content</entry>
+<entry>Comment</entry>
+</row>
+<row>
+<entry>0x00</entry>
+<entry>ECC byte 0</entry>
+<entry>Error correction code byte 0</entry>
+</row>
+<row>
+<entry>0x01</entry>
+<entry>ECC byte 1</entry>
+<entry>Error correction code byte 1</entry>
+</row>
+<row>
+<entry>0x02</entry>
+<entry>ECC byte 2</entry>
+<entry>Error correction code byte 2</entry>
+</row>
+<row>
+<entry>0x03</entry>
+<entry>Autoplace 0</entry>
+<entry></entry>
+</row>
+<row>
+<entry>0x04</entry>
+<entry>Autoplace 1</entry>
+<entry></entry>
+</row>
+<row>
+<entry>0x05</entry>
+<entry>Bad block marker</entry>
+<entry>If any bit in this byte is zero, then this block is bad.
+This applies only to the first page in a block. In the remaining
+pages this byte is reserved</entry>
+</row>
+<row>
+<entry>0x06</entry>
+<entry>Autoplace 2</entry>
+<entry></entry>
+</row>
+<row>
+<entry>0x07</entry>
+<entry>Autoplace 3</entry>
+<entry></entry>
+</row>
+</tbody></tgroup></informaltable>
+               </sect2>
+               <sect2>
+                       <title>512 byte pagesize</title>
+<informaltable><tgroup cols="3"><tbody>
+<row>
+<entry>Offset</entry>
+<entry>Content</entry>
+<entry>Comment</entry>
+</row>
+<row>
+<entry>0x00</entry>
+<entry>ECC byte 0</entry>
+<entry>Error correction code byte 0 of the lower 256 Byte data in
+this page</entry>
+</row>
+<row>
+<entry>0x01</entry>
+<entry>ECC byte 1</entry>
+<entry>Error correction code byte 1 of the lower 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x02</entry>
+<entry>ECC byte 2</entry>
+<entry>Error correction code byte 2 of the lower 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x03</entry>
+<entry>ECC byte 3</entry>
+<entry>Error correction code byte 0 of the upper 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x04</entry>
+<entry>reserved</entry>
+<entry>reserved</entry>
+</row>
+<row>
+<entry>0x05</entry>
+<entry>Bad block marker</entry>
+<entry>If any bit in this byte is zero, then this block is bad.
+This applies only to the first page in a block. In the remaining
+pages this byte is reserved</entry>
+</row>
+<row>
+<entry>0x06</entry>
+<entry>ECC byte 4</entry>
+<entry>Error correction code byte 1 of the upper 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x07</entry>
+<entry>ECC byte 5</entry>
+<entry>Error correction code byte 2 of the upper 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x08 - 0x0F</entry>
+<entry>Autoplace 0 - 7</entry>
+<entry></entry>
+</row>
+</tbody></tgroup></informaltable>
+               </sect2>
+               <sect2>
+                       <title>2048 byte pagesize</title>
+<informaltable><tgroup cols="3"><tbody>
+<row>
+<entry>Offset</entry>
+<entry>Content</entry>
+<entry>Comment</entry>
+</row>
+<row>
+<entry>0x00</entry>
+<entry>Bad block marker</entry>
+<entry>If any bit in this byte is zero, then this block is bad.
+This applies only to the first page in a block. In the remaining
+pages this byte is reserved</entry>
+</row>
+<row>
+<entry>0x01</entry>
+<entry>Reserved</entry>
+<entry>Reserved</entry>
+</row>
+<row>
+<entry>0x02-0x27</entry>
+<entry>Autoplace 0 - 37</entry>
+<entry></entry>
+</row>
+<row>
+<entry>0x28</entry>
+<entry>ECC byte 0</entry>
+<entry>Error correction code byte 0 of the first 256 Byte data in
+this page</entry>
+</row>
+<row>
+<entry>0x29</entry>
+<entry>ECC byte 1</entry>
+<entry>Error correction code byte 1 of the first 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x2A</entry>
+<entry>ECC byte 2</entry>
+<entry>Error correction code byte 2 of the first 256 Bytes data in
+this page</entry>
+</row>
+<row>
+<entry>0x2B</entry>
+<entry>ECC byte 3</entry>
+<entry>Error correction code byte 0 of the second 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x2C</entry>
+<entry>ECC byte 4</entry>
+<entry>Error correction code byte 1 of the second 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x2D</entry>
+<entry>ECC byte 5</entry>
+<entry>Error correction code byte 2 of the second 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x2E</entry>
+<entry>ECC byte 6</entry>
+<entry>Error correction code byte 0 of the third 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x2F</entry>
+<entry>ECC byte 7</entry>
+<entry>Error correction code byte 1 of the third 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x30</entry>
+<entry>ECC byte 8</entry>
+<entry>Error correction code byte 2 of the third 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x31</entry>
+<entry>ECC byte 9</entry>
+<entry>Error correction code byte 0 of the fourth 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x32</entry>
+<entry>ECC byte 10</entry>
+<entry>Error correction code byte 1 of the fourth 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x33</entry>
+<entry>ECC byte 11</entry>
+<entry>Error correction code byte 2 of the fourth 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x34</entry>
+<entry>ECC byte 12</entry>
+<entry>Error correction code byte 0 of the fifth 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x35</entry>
+<entry>ECC byte 13</entry>
+<entry>Error correction code byte 1 of the fifth 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x36</entry>
+<entry>ECC byte 14</entry>
+<entry>Error correction code byte 2 of the fifth 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x37</entry>
+<entry>ECC byte 15</entry>
+<entry>Error correction code byte 0 of the sixt 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x38</entry>
+<entry>ECC byte 16</entry>
+<entry>Error correction code byte 1 of the sixt 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x39</entry>
+<entry>ECC byte 17</entry>
+<entry>Error correction code byte 2 of the sixt 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x3A</entry>
+<entry>ECC byte 18</entry>
+<entry>Error correction code byte 0 of the seventh 256 Bytes of
+data in this page</entry>
+</row>
+<row>
+<entry>0x3B</entry>
+<entry>ECC byte 19</entry>
+<entry>Error correction code byte 1 of the seventh 256 Bytes of
+data in this page</entry>
+</row>
+<row>
+<entry>0x3C</entry>
+<entry>ECC byte 20</entry>
+<entry>Error correction code byte 2 of the seventh 256 Bytes of
+data in this page</entry>
+</row>
+<row>
+<entry>0x3D</entry>
+<entry>ECC byte 21</entry>
+<entry>Error correction code byte 0 of the eigth 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x3E</entry>
+<entry>ECC byte 22</entry>
+<entry>Error correction code byte 1 of the eigth 256 Bytes of data
+in this page</entry>
+</row>
+<row>
+<entry>0x3F</entry>
+<entry>ECC byte 23</entry>
+<entry>Error correction code byte 2 of the eigth 256 Bytes of data
+in this page</entry>
+</row>
+</tbody></tgroup></informaltable>
+               </sect2>
+       </sect1>
+  </chapter>
+
+  <chapter id="filesystems">
+       <title>Filesystem support</title>
+       <para>
+               The NAND driver provides all neccecary functions for a
+               filesystem via the MTD interface.
+       </para>
+       <para>
+               Filesystems must be aware of the NAND pecularities and
+               restrictions. One major restrictions of NAND Flash is, that you 
cannot 
+               write as often as you want to a page. The consecutive writes to 
a page, 
+               before erasing it again, are restricted to 1-3 writes, 
depending on the 
+               manufacturers specifications. This applies similar to the spare 
area. 
+       </para>
+       <para>
+               Therefor NAND aware filesystems must either write in page size 
chunks
+               or hold a writebuffer to collect smaller writes until they sum 
up to 
+               pagesize. Available NAND aware filesystems: JFFS2, YAFFS.       
        
+       </para>
+       <para>
+               The spare area usage to store filesystem data is controlled by
+               the spare area placement functionality which is described in one
+               of the earlier chapters.
+       </para>
+  </chapter>   
+  <chapter id="tools">
+       <title>Tools</title>
+       <para>
+               The MTD project provides a couple of helpful tools to handle 
NAND Flash.
+               <itemizedlist>
+               <listitem><para>flasherase, flasheraseall: Erase and format 
FLASH partitions</para></listitem>
+               <listitem><para>nandwrite: write filesystem images to NAND 
FLASH</para></listitem>
+               <listitem><para>nanddump: dump the contents of a NAND FLASH 
partitions</para></listitem>
+               </itemizedlist>
+       </para>
+       <para>
+               These tools are aware of the NAND restrictions. Please use 
those tools
+               instead of complaining about errors which are caused by non 
NAND aware
+               access methods.
+       </para>
+  </chapter>   
+
+  <chapter id="defines">
+     <title>Constants</title>
+     <para>
+     This chapter describes the constants which might be relevant for a driver 
developer.
+     </para>
+     <sect1>   
+       <title>Chip option constants</title>
+       <sect2>   
+               <title>Constants for chip id table</title>
+               <para>
+               These constants are defined in nand.h. They are ored together 
to describe
+               the chip functionality.
+               <programlisting>
+/* Chip can not auto increment pages */
+#define NAND_NO_AUTOINCR       0x00000001
+/* Buswitdh is 16 bit */
+#define NAND_BUSWIDTH_16       0x00000002
+/* Device supports partial programming without padding */
+#define NAND_NO_PADDING                0x00000004
+/* Chip has cache program function */
+#define NAND_CACHEPRG          0x00000008
+/* Chip has copy back function */
+#define NAND_COPYBACK          0x00000010
+/* AND Chip which has 4 banks and a confusing page / block 
+ * assignment. See Renesas datasheet for further information */
+#define NAND_IS_AND            0x00000020
+/* Chip has a array of 4 pages which can be read without
+ * additional ready /busy waits */
+#define NAND_4PAGE_ARRAY       0x00000040 
+               </programlisting>
+               </para>
+       </sect2>
+       <sect2>   
+               <title>Constants for runtime options</title>
+               <para>
+               These constants are defined in nand.h. They are ored together 
to describe
+               the functionality.
+               <programlisting>
+/* Use a flash based bad block table. This option is parsed by the
+ * default bad block table function (nand_default_bbt). */
+#define NAND_USE_FLASH_BBT     0x00010000
+/* The hw ecc generator provides a syndrome instead a ecc value on read 
+ * This can only work if we have the ecc bytes directly behind the 
+ * data bytes. Applies for DOC and AG-AND Renesas HW Reed Solomon generators */
+#define NAND_HWECC_SYNDROME    0x00020000
+               </programlisting>
+               </para>
+       </sect2>
+     </sect1>  
+
+     <sect1>   
+       <title>ECC selection constants</title>
+       <para>
+       Use these constants to select the ECC algorithm.
+       <programlisting>
+/* No ECC. Usage is not recommended ! */
+#define NAND_ECC_NONE          0
+/* Software ECC 3 byte ECC per 256 Byte data */
+#define NAND_ECC_SOFT          1
+/* Hardware ECC 3 byte ECC per 256 Byte data */
+#define NAND_ECC_HW3_256       2
+/* Hardware ECC 3 byte ECC per 512 Byte data */
+#define NAND_ECC_HW3_512       3
+/* Hardware ECC 6 byte ECC per 512 Byte data */
+#define NAND_ECC_HW6_512       4
+/* Hardware ECC 6 byte ECC per 512 Byte data */
+#define NAND_ECC_HW8_512       6
+       </programlisting>
+       </para>
+     </sect1>  
+
+     <sect1>   
+       <title>Hardware control related constants</title>
+       <para>
+       These constants describe the requested hardware access function when
+       the boardspecific hardware control function is called
+       <programlisting>
+/* Select the chip by setting nCE to low */
+#define NAND_CTL_SETNCE        1
+/* Deselect the chip by setting nCE to high */
+#define NAND_CTL_CLRNCE                2
+/* Select the command latch by setting CLE to high */
+#define NAND_CTL_SETCLE                3
+/* Deselect the command latch by setting CLE to low */
+#define NAND_CTL_CLRCLE                4
+/* Select the address latch by setting ALE to high */
+#define NAND_CTL_SETALE                5
+/* Deselect the address latch by setting ALE to low */
+#define NAND_CTL_CLRALE                6
+/* Set write protection by setting WP to high. Not used! */
+#define NAND_CTL_SETWP         7
+/* Clear write protection by setting WP to low. Not used! */
+#define NAND_CTL_CLRWP         8
+       </programlisting>
+       </para>
+     </sect1>  
+
+     <sect1>   
+       <title>Bad block table related constants</title>
+       <para>
+       These constants describe the options used for bad block
+       table descriptors.
+       <programlisting>
+/* Options for the bad block table descriptors */
+
+/* The number of bits used per block in the bbt on the device */
+#define NAND_BBT_NRBITS_MSK    0x0000000F
+#define NAND_BBT_1BIT          0x00000001
+#define NAND_BBT_2BIT          0x00000002
+#define NAND_BBT_4BIT          0x00000004
+#define NAND_BBT_8BIT          0x00000008
+/* The bad block table is in the last good block of the device */
+#define        NAND_BBT_LASTBLOCK      0x00000010
+/* The bbt is at the given page, else we must scan for the bbt */
+#define NAND_BBT_ABSPAGE       0x00000020
+/* The bbt is at the given page, else we must scan for the bbt */
+#define NAND_BBT_SEARCH                0x00000040
+/* bbt is stored per chip on multichip devices */
+#define NAND_BBT_PERCHIP       0x00000080
+/* bbt has a version counter at offset veroffs */
+#define NAND_BBT_VERSION       0x00000100
+/* Create a bbt if none axists */
+#define NAND_BBT_CREATE                0x00000200
+/* Search good / bad pattern through all pages of a block */
+#define NAND_BBT_SCANALLPAGES  0x00000400
+/* Scan block empty during good / bad block scan */
+#define NAND_BBT_SCANEMPTY     0x00000800
+/* Write bbt if neccecary */
+#define NAND_BBT_WRITE         0x00001000
+/* Read and write back block contents when writing bbt */
+#define NAND_BBT_SAVECONTENT   0x00002000
+       </programlisting>
+       </para>
+     </sect1>  
+
+  </chapter>
+       
+  <chapter id="structs">
+     <title>Structures</title>
+     <para>
+     This chapter contains the autogenerated documentation of the structures 
which are
+     used in the NAND driver and might be relevant for a driver developer. 
Each  
+     struct member has a short description which is marked with an [XXX] 
identifier.
+     See the chapter "Documentation hints" for an explanation.
+     </para>
+!Iinclude/linux/mtd/nand.h
+  </chapter>
+
+  <chapter id="pubfunctions">
+     <title>Public Functions Provided</title>
+     <para>
+     This chapter contains the autogenerated documentation of the NAND kernel 
API functions
+      which are exported. Each function has a short description which is 
marked with an [XXX] identifier.
+     See the chapter "Documentation hints" for an explanation.
+     </para>
+!Edrivers/mtd/nand/nand_base.c
+!Edrivers/mtd/nand/nand_bbt.c
+!Edrivers/mtd/nand/nand_ecc.c
+  </chapter>
+  
+  <chapter id="intfunctions">
+     <title>Internal Functions Provided</title>
+     <para>
+     This chapter contains the autogenerated documentation of the NAND driver 
internal functions.
+     Each function has a short description which is marked with an [XXX] 
identifier.
+     See the chapter "Documentation hints" for an explanation.
+     The functions marked with [DEFAULT] might be relevant for a board driver 
developer.
+     </para>
+!Idrivers/mtd/nand/nand_base.c
+!Idrivers/mtd/nand/nand_bbt.c
+!Idrivers/mtd/nand/nand_ecc.c
+  </chapter>
+
+  <chapter id="credits">
+     <title>Credits</title>
+       <para>
+               The following people have contributed to the NAND driver:
+               <orderedlist>
+                       <listitem><para>Steven J. 
Hill<email>sjhill@realitydiluted.com</email></para></listitem>
+                       <listitem><para>David 
Woodhouse<email>dwmw2@infradead.org</email></para></listitem>
+                       <listitem><para>Thomas 
Gleixner<email>tglx@linutronix.de</email></para></listitem>
+               </orderedlist>
+               A lot of users have provided bugfixes, improvements and helping 
hands for testing.
+               Thanks a lot.
+       </para>
+       <para>
+               The following people have contributed to this document:
+               <orderedlist>
+                       <listitem><para>Thomas 
Gleixner<email>tglx@linutronix.de</email></para></listitem>
+               </orderedlist>
+       </para>
+  </chapter>
+</book>
diff -urN malta/linux/Documentation/DocBook/stylesheet.xsl 
malta/linux/Documentation/DocBook/stylesheet.xsl
--- malta/linux/Documentation/DocBook/stylesheet.xsl    1970/01/01 00:00:00
+++ malta/linux/Documentation/DocBook/stylesheet.xsl    2005-06-21 
14:20:33.286765000 +0100     1.1.1000.1
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<stylesheet xmlns="http://www.w3.org/1999/XSL/Transform"; version="1.0">
+<param name="chunk.quietly">1</param>
+<param name="funcsynopsis.style">ansi</param>
+</stylesheet>
diff -urN malta/linux/Documentation/DocBook/Makefile 
malta/linux/Documentation/DocBook/Makefile
--- malta/linux/Documentation/DocBook/Makefile  2004/09/14 16:27:37     
1.42.1000.2
+++ malta/linux/Documentation/DocBook/Makefile  2005/06/21 13:20:32     
1.42.1000.3
@@ -6,70 +6,72 @@
 # To add a new book the only step required is to add the book to the
 # list of DOCBOOKS.
 
-DOCBOOKS := wanbook.sgml z8530book.sgml mcabook.sgml videobook.sgml \
-           kernel-hacking.sgml kernel-locking.sgml via-audio.sgml \
-           mousedrivers.sgml deviceiobook.sgml procfs-guide.sgml \
-           tulip-user.sgml writing_usb_driver.sgml scsidrivers.sgml \
-           sis900.sgml kernel-api.sgml journal-api.sgml lsm.sgml usb.sgml \
-           gadget.sgml libata.sgml
+DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \
+           kernel-hacking.xml kernel-locking.xml deviceiobook.xml \
+           procfs-guide.xml writing_usb_driver.xml scsidrivers.xml \
+           sis900.xml kernel-api.xml journal-api.xml lsm.xml usb.xml \
+           gadget.xml libata.xml mtdnand.xml librs.xml
 
 ###
 # The build process is as follows (targets):
-#              (sgmldocs)
-# file.tmpl --> file.sgml +--> file.ps  (psdocs)
-#                         +--> file.pdf  (pdfdocs)
-#                         +--> DIR=file  (htmldocs)
-#                         +--> man/      (mandocs)
+#              (xmldocs)
+# file.tmpl --> file.xml +--> file.ps   (psdocs)
+#                        +--> file.pdf  (pdfdocs)
+#                        +--> DIR=file  (htmldocs)
+#                        +--> man/      (mandocs)
 
 ###
 # The targets that may be used.
-.PHONY:        sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs
+.PHONY:        xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs
 
 BOOKS := $(addprefix $(obj)/,$(DOCBOOKS))
-sgmldocs: $(BOOKS)
+xmldocs: $(BOOKS)
+sgmldocs: xmldocs
 
-PS := $(patsubst %.sgml, %.ps, $(BOOKS))
+PS := $(patsubst %.xml, %.ps, $(BOOKS))
 psdocs: $(PS)
 
-PDF := $(patsubst %.sgml, %.pdf, $(BOOKS))
+PDF := $(patsubst %.xml, %.pdf, $(BOOKS))
 pdfdocs: $(PDF)
 
-HTML := $(patsubst %.sgml, %.html, $(BOOKS))
+HTML := $(patsubst %.xml, %.html, $(BOOKS))
 htmldocs: $(HTML)
 
-MAN := $(patsubst %.sgml, %.9, $(BOOKS))
+MAN := $(patsubst %.xml, %.9, $(BOOKS))
 mandocs: $(MAN)
 
 installmandocs: mandocs
-       $(MAKEMAN) install Documentation/DocBook/man
+       mkdir -p /usr/local/man/man9/
+       install Documentation/DocBook/man/*.9.gz /usr/local/man/man9/
 
 ###
 #External programs used
 KERNELDOC = scripts/kernel-doc
 DOCPROC   = scripts/basic/docproc
-SPLITMAN  = $(PERL) $(srctree)/scripts/split-man
-MAKEMAN   = $(PERL) $(srctree)/scripts/makeman
+
+XMLTOFLAGS = -m Documentation/DocBook/stylesheet.xsl
+#XMLTOFLAGS += --skip-validation
 
 ###
 # DOCPROC is used for two purposes:
 # 1) To generate a dependency list for a .tmpl file
 # 2) To preprocess a .tmpl file and call kernel-doc with
 #     appropriate parameters.
-# The following rules are used to generate the .sgml documentation
+# The following rules are used to generate the .xml documentation
 # required to generate the final targets. (ps, pdf, html).
 quiet_cmd_docproc = DOCPROC $@
-      cmd_docproc = $(DOCPROC) doc $< >$@
+      cmd_docproc = SRCTREE=$(srctree)/ $(DOCPROC) doc $< >$@
 define rule_docproc
        set -e;                                                         \
         $(if $($(quiet)cmd_$(1)),echo '  $($(quiet)cmd_$(1))';)        \
         $(cmd_$(1));                                                   \
         (                                                              \
           echo 'cmd_$@ := $(cmd_$(1))';                                \
-          echo $@: `$(DOCPROC) depend $<`;                             \
+          echo $@: `SRCTREE=$(srctree) $(DOCPROC) depend $<`;          \
         ) > $(dir $@).$(notdir $@).cmd
 endef
 
-%.sgml: %.tmpl FORCE
+%.xml: %.tmpl FORCE
        $(call if_changed_rule,docproc)
 
 ###
@@ -87,50 +89,52 @@
 ###
 # procfs guide uses a .c file as example code.
 # This requires an explicit dependency
-C-procfs-example = procfs_example.sgml
+C-procfs-example = procfs_example.xml
 C-procfs-example2 = $(addprefix $(obj)/,$(C-procfs-example))
-$(obj)/procfs-guide.sgml: $(C-procfs-example2)
+$(obj)/procfs-guide.xml: $(C-procfs-example2)
 
 ###
 # Rules to generate postscript, PDF and HTML
 # db2html creates a directory. Generate a html file used for timestamp
 
-quiet_cmd_db2ps = DB2PS   $@
-      cmd_db2ps = db2ps -o $(dir $@) $<
-%.ps : %.sgml
-       @(which db2ps > /dev/null 2>&1) || \
-        (echo "*** You need to install DocBook stylesheets ***"; \
+quiet_cmd_db2ps = XMLTO    $@
+      cmd_db2ps = xmlto ps $(XMLTOFLAGS) -o $(dir $@) $<
+%.ps : %.xml
+       @(which xmlto > /dev/null 2>&1) || \
+        (echo "*** You need to install xmlto ***"; \
          exit 1)
        $(call cmd,db2ps)
 
-quiet_cmd_db2pdf = DB2PDF  $@
-      cmd_db2pdf = db2pdf -o $(dir $@) $<
-%.pdf : %.sgml
-       @(which db2pdf > /dev/null 2>&1) || \
-        (echo "*** You need to install DocBook stylesheets ***"; \
+quiet_cmd_db2pdf = XMLTO   $@
+      cmd_db2pdf = xmlto pdf $(XMLTOFLAGS) -o $(dir $@) $<
+%.pdf : %.xml
+       @(which xmlto > /dev/null 2>&1) || \
+        (echo "*** You need to install xmlto ***"; \
          exit 1)
        $(call cmd,db2pdf)
 
-quiet_cmd_db2html = DB2HTML $@
-      cmd_db2html = db2html -o $(patsubst %.html,%,$@) $< &&                 \
-               echo '<a HREF="$(patsubst %.html,%,$(notdir $@))/book1.html"> \
+quiet_cmd_db2html = XMLTO  $@
+      cmd_db2html = xmlto xhtml $(XMLTOFLAGS) -o $(patsubst %.html,%,$@) $< && 
\
+               echo '<a HREF="$(patsubst %.html,%,$(notdir $@))/index.html"> \
          Goto $(patsubst %.html,%,$(notdir $@))</a><p>' > $@
 
-%.html:        %.sgml
-       @(which db2html > /dev/null 2>&1) || \
-        (echo "*** You need to install DocBook stylesheets ***"; \
+%.html:        %.xml
+       @(which xmlto > /dev/null 2>&1) || \
+        (echo "*** You need to install xmlto ***"; \
          exit 1)
        @rm -rf $@ $(patsubst %.html,%,$@)
        $(call cmd,db2html)
        @if [ ! -z "$(PNG-$(basename $(notdir $@)))" ]; then \
             cp $(PNG-$(basename $(notdir $@))) $(patsubst %.html,%,$@); fi
 
-###
-# Rule to generate man files - output is placed in the man subdirectory
-
-%.9:   %.sgml
-       $(SPLITMAN) $< $(objtree)/Documentation/DocBook/man 
"$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)"
-       $(MAKEMAN) convert $(objtree)/Documentation/DocBook/man $<
+quiet_cmd_db2man = XMLTO   $@
+      cmd_db2man = if grep -q refentry $<; then xmlto man $(XMLTOFLAGS) -o 
$(obj)/man $< ; gzip -f $(obj)/man/*.9; fi
+%.9 : %.xml
+       @(which xmlto > /dev/null 2>&1) || \
+        (echo "*** You need to install xmlto ***"; \
+         exit 1)
+       $(call cmd,db2man)
+       @touch $@
 
 ###
 # Rules to generate postscripts and PNG imgages from .fig format files
@@ -153,8 +157,8 @@
        $(call cmd,fig2png)
 
 ###
-# Rule to convert a .c file to inline SGML documentation
-%.sgml: %.c
+# Rule to convert a .c file to inline XML documentation
+%.xml: %.c
        @echo '  GEN     $@'
        @(                            \
           echo "<programlisting>";   \
@@ -168,24 +172,24 @@
 # Help targets as used by the top-level makefile
 dochelp:
        @echo  '  Linux kernel internal documentation in different formats:'
-       @echo  '  sgmldocs (SGML), psdocs (Postscript), pdfdocs (PDF)'
+       @echo  '  xmldocs (XML DocBook), psdocs (Postscript), pdfdocs (PDF)'
        @echo  '  htmldocs (HTML), mandocs (man pages, use installmandocs to 
install)'
 
 ###
 # Temporary files left by various tools
 clean-files := $(DOCBOOKS) \
-       $(patsubst %.sgml, %.dvi,  $(DOCBOOKS)) \
-       $(patsubst %.sgml, %.aux,  $(DOCBOOKS)) \
-       $(patsubst %.sgml, %.tex,  $(DOCBOOKS)) \
-       $(patsubst %.sgml, %.log,  $(DOCBOOKS)) \
-       $(patsubst %.sgml, %.out,  $(DOCBOOKS)) \
-       $(patsubst %.sgml, %.ps,   $(DOCBOOKS)) \
-       $(patsubst %.sgml, %.pdf,  $(DOCBOOKS)) \
-       $(patsubst %.sgml, %.html, $(DOCBOOKS)) \
-       $(patsubst %.sgml, %.9,    $(DOCBOOKS)) \
+       $(patsubst %.xml, %.dvi,  $(DOCBOOKS)) \
+       $(patsubst %.xml, %.aux,  $(DOCBOOKS)) \
+       $(patsubst %.xml, %.tex,  $(DOCBOOKS)) \
+       $(patsubst %.xml, %.log,  $(DOCBOOKS)) \
+       $(patsubst %.xml, %.out,  $(DOCBOOKS)) \
+       $(patsubst %.xml, %.ps,   $(DOCBOOKS)) \
+       $(patsubst %.xml, %.pdf,  $(DOCBOOKS)) \
+       $(patsubst %.xml, %.html, $(DOCBOOKS)) \
+       $(patsubst %.xml, %.9,    $(DOCBOOKS)) \
        $(C-procfs-example)
 
-clean-dirs := $(patsubst %.sgml,%,$(DOCBOOKS))
+clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS))
 
 #man put files in man subdir - traverse down
 subdir- := man/
diff -urN malta/linux/Documentation/DocBook/deviceiobook.tmpl 
malta/linux/Documentation/DocBook/deviceiobook.tmpl
--- malta/linux/Documentation/DocBook/deviceiobook.tmpl 2004/02/19 03:06:21     
1.4
+++ malta/linux/Documentation/DocBook/deviceiobook.tmpl 2005/06/21 13:20:32     
1.4.1000.1
@@ -1,4 +1,6 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
 
 <book id="DoingIO">
  <bookinfo>
@@ -147,8 +149,7 @@
        compiler is not permitted to reorder the I/O sequence. When the 
        ordering can be compiler optimised, you can use <function>
        __readb</function> and friends to indicate the relaxed ordering. Use 
-       this with care. The <function>rmb</function> provides a read memory 
-       barrier. The <function>wmb</function> provides a write memory barrier.
+       this with care.
       </para>
 
       <para>
@@ -159,19 +160,113 @@
        asynchronously. A driver author must issue a read from the same
        device to ensure that writes have occurred in the specific cases the
        author cares. This kind of property cannot be hidden from driver
-       writers in the API.
+       writers in the API.  In some cases, the read used to flush the device
+       may be expected to fail (if the card is resetting, for example).  In
+       that case, the read should be done from config space, which is
+       guaranteed to soft-fail if the card doesn't respond.
+      </para>
+
+      <para>
+       The following is an example of flushing a write to a device when
+       the driver would like to ensure the write's effects are visible prior
+       to continuing execution.
+      </para>
+
+<programlisting>
+static inline void
+qla1280_disable_intrs(struct scsi_qla_host *ha)
+{
+       struct device_reg *reg;
+
+       reg = ha->iobase;
+       /* disable risc and host interrupts */
+       WRT_REG_WORD(&amp;reg->ictrl, 0);
+       /*
+        * The following read will ensure that the above write
+        * has been received by the device before we return from this
+        * function.
+        */
+       RD_REG_WORD(&amp;reg->ictrl);
+       ha->flags.ints_enabled = 0;
+}
+</programlisting>
+
+      <para>
+       In addition to write posting, on some large multiprocessing systems
+       (e.g. SGI Challenge, Origin and Altix machines) posted writes won't
+       be strongly ordered coming from different CPUs.  Thus it's important
+       to properly protect parts of your driver that do memory-mapped writes
+       with locks and use the <function>mmiowb</function> to make sure they
+       arrive in the order intended.  Issuing a regular <function>readX
+       </function> will also ensure write ordering, but should only be used
+       when the driver has to be sure that the write has actually arrived
+       at the device (not that it's simply ordered with respect to other
+       writes), since a full <function>readX</function> is a relatively
+       expensive operation.
+      </para>
+
+      <para>
+       Generally, one should use <function>mmiowb</function> prior to
+       releasing a spinlock that protects regions using <function>writeb
+       </function> or similar functions that aren't surrounded by <function>
+       readb</function> calls, which will ensure ordering and flushing.  The
+       following pseudocode illustrates what might occur if write ordering
+       isn't guaranteed via <function>mmiowb</function> or one of the
+       <function>readX</function> functions.
+      </para>
+
+<programlisting>
+CPU A:  spin_lock_irqsave(&amp;dev_lock, flags)
+CPU A:  ...
+CPU A:  writel(newval, ring_ptr);
+CPU A:  spin_unlock_irqrestore(&amp;dev_lock, flags)
+        ...
+CPU B:  spin_lock_irqsave(&amp;dev_lock, flags)
+CPU B:  writel(newval2, ring_ptr);
+CPU B:  ...
+CPU B:  spin_unlock_irqrestore(&amp;dev_lock, flags)
+</programlisting>
+
+      <para>
+       In the case above, newval2 could be written to ring_ptr before
+       newval.  Fixing it is easy though:
+      </para>
+
+<programlisting>
+CPU A:  spin_lock_irqsave(&amp;dev_lock, flags)
+CPU A:  ...
+CPU A:  writel(newval, ring_ptr);
+CPU A:  mmiowb(); /* ensure no other writes beat us to the device */
+CPU A:  spin_unlock_irqrestore(&amp;dev_lock, flags)
+        ...
+CPU B:  spin_lock_irqsave(&amp;dev_lock, flags)
+CPU B:  writel(newval2, ring_ptr);
+CPU B:  ...
+CPU B:  mmiowb();
+CPU B:  spin_unlock_irqrestore(&amp;dev_lock, flags)
+</programlisting>
+
+      <para>
+       See tg3.c for a real world example of how to use <function>mmiowb
+       </function>
       </para>
 
       <para>
        PCI ordering rules also guarantee that PIO read responses arrive
-       after any outstanding DMA writes on that bus, since for some devices
+       after any outstanding DMA writes from that bus, since for some devices
        the result of a <function>readb</function> call may signal to the
        driver that a DMA transaction is complete.  In many cases, however,
        the driver may want to indicate that the next
        <function>readb</function> call has no relation to any previous DMA
        writes performed by the device.  The driver can use
        <function>readb_relaxed</function> for these cases, although only
-       some platforms will honor the relaxed semantics.
+       some platforms will honor the relaxed semantics.  Using the relaxed
+       read functions will provide significant performance benefits on
+       platforms that support it.  The qla2xxx driver provides examples
+       of how to use <function>readX_relaxed</function>.  In many cases,
+       a majority of the driver's <function>readX</function> calls can
+       safely be converted to <function>readX_relaxed</function> calls, since
+       only a few will indicate or depend on DMA completion.
       </para>
     </sect1>
 
diff -urN malta/linux/Documentation/DocBook/gadget.tmpl 
malta/linux/Documentation/DocBook/gadget.tmpl
--- malta/linux/Documentation/DocBook/gadget.tmpl       2004/05/12 17:14:19     
1.3.1000.1
+++ malta/linux/Documentation/DocBook/gadget.tmpl       2005/06/21 13:20:32     
1.3.1000.2
@@ -1,9 +1,12 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
+
 <book id="USB-Gadget-API">
   <bookinfo>
     <title>USB Gadget API for Linux</title>
-    <date>02 June 2003</date>
-    <edition>02 June 2003</edition>
+    <date>20 August 2004</date>
+    <edition>20 August 2004</edition>
   
     <legalnotice>
        <para>
@@ -34,7 +37,7 @@
        </para>
     </legalnotice>
     <copyright>
-      <year>2003</year>
+      <year>2003-2004</year>
       <holder>David Brownell</holder>
     </copyright>
 
@@ -73,9 +76,13 @@
        composite devices,
        and alternate interface settings.
        </para></listitem>
+    <listitem><para>USB "On-The-Go" (OTG) support, in conjunction
+       with updates to the Linux-USB host side.
+       </para></listitem>
     <listitem><para>Sharing data structures and API models with the
-       Linux-USB host side API.  This looks forward to USB "On-The-Go"
-       (OTG) and similar more-symmetric frameworks.
+       Linux-USB host side API.  This helps the OTG support, and
+       looks forward to more-symmetric frameworks (where the same
+       I/O model is used by both host and device side drivers).
        </para></listitem>
     <listitem><para>Minimalist, so it's easier to support new device
        controller hardware.  I/O processing doesn't imply large
@@ -153,6 +160,7 @@
        the SA-11x0 or PXA-25x UDC (found within many PDAs),
        and a variety of other products.
        </para>
+
        </listitem></varlistentry>
 
     <varlistentry>
@@ -162,10 +170,14 @@
        <para>The lower boundary of this driver implements hardware-neutral
        USB functions, using calls to the controller driver.
        Because such hardware varies widely in capabilities and restrictions,
-       the gadget driver is normally configured at compile time
+       and is used in embedded environments where space is at a premium,
+       the gadget driver is often configured at compile time
        to work with endpoints supported by one particular controller.
        Gadget drivers may be portable to several different controllers,
        using conditional compilation.
+       (Recent kernels substantially simplify the work involved in
+       supporting new hardware, by <emphasis>autoconfiguring</emphasis>
+       endpoints automatically for many bulk-oriented drivers.)
        Gadget driver responsibilities include:
        </para>
        <itemizedlist>
@@ -178,8 +190,9 @@
                altsettings, including enabling and configuring endpoints
                </para></listitem>
            <listitem><para>handling life cycle events, such as managing
-               bindings
-               to hardware, and disconnection from the USB host.
+               bindings to hardware,
+               USB suspend/resume, remote wakeup,
+               and disconnection from the USB host.
                </para></listitem>
            <listitem><para>managing IN and OUT transfers on all currently
                enabled endpoints
@@ -244,15 +257,38 @@
 
 </variablelist>
 
-<para>Over time, reusable utilities should evolve to help make some
-gadget driver tasks simpler.  An example of particular interest
+<para>OTG-capable systems will also need to include a standard Linux-USB
+host side stack,
+with <emphasis>usbcore</emphasis>,
+one or more <emphasis>Host Controller Drivers</emphasis> (HCDs),
+<emphasis>USB Device Drivers</emphasis> to support
+the OTG "Targeted Peripheral List",
+and so forth.
+There will also be an <emphasis>OTG Controller Driver</emphasis>,
+which is visible to gadget and device driver developers only indirectly.
+That helps the host and device side USB controllers implement the
+two new OTG protocols (HNP and SRP).
+Roles switch (host to peripheral, or vice versa) using HNP
+during USB suspend processing, and SRP can be viewed as a
+more battery-friendly kind of device wakeup protocol.
+</para>
+
+<para>Over time, reusable utilities are evolving to help make some
+gadget driver tasks simpler.
+For example, building configuration descriptors from vectors of
+descriptors for the configurations interfaces and endpoints is
+now automated, and many drivers now use autoconfiguration to
+choose hardware endpoints and initialize their descriptors.
+
+A potential example of particular interest
 is code implementing standard USB-IF protocols for
 HID, networking, storage, or audio classes.
 Some developers are interested in KDB or KGDB hooks, to let
 target hardware be remotely debugged.
 Most such USB protocol code doesn't need to be hardware-specific,
 any more than network protocols like X11, HTTP, or NFS are.
-Such interface drivers might be combined, to support composite devices.
+Such gadget-side interface drivers should eventually be combined,
+to implement composite devices.
 </para>
 
 </chapter>
@@ -284,7 +320,7 @@
 <para>However, docproc does not understand all the C constructs
 that are used, so some relevant information is likely omitted from
 what you are reading.  
-One example of such information is several per-request flags.
+One example of such information is endpoint autoconfiguration.
 You'll have to read the header file, and use example source
 code (such as that for "Gadget Zero"), to fully understand the API.
 </para>
@@ -292,7 +328,7 @@
 <para>The part of the API implementing some basic
 driver capabilities is specific to the version of the
 Linux kernel that's in use.
-The 2.5 kernel includes a <emphasis>driver model</emphasis>
+The 2.6 kernel includes a <emphasis>driver model</emphasis>
 framework that has no analogue on earlier kernels;
 so those parts of the gadget API are not fully portable.
 (They are implemented on 2.4 kernels, but in a different way.)
@@ -308,17 +344,21 @@
 that would be added using hardware-specific APIs.
 </para>
 
-<para>This API expects drivers to use conditional compilation to handle
-endpoint capabilities of different hardware.
-Those tend to have arbitrary restrictions, relating to
+<para>This API allows drivers to use conditional compilation to handle
+endpoint capabilities of different hardware, but doesn't require that.
+Hardware tends to have arbitrary restrictions, relating to
 transfer types, addressing, packet sizes, buffering, and availability.
 As a rule, such differences only matter for "endpoint zero" logic
 that handles device configuration and management.
-The API only supports limited run-time
+The API supports limited run-time
 detection of capabilities, through naming conventions for endpoints.
-Although a gadget driver could scan the endpoints available to it and
-choose to map those capabilities onto driver functionality in some way,
-few drivers will want to reconfigure themselves at run-time.
+Many drivers will be able to at least partially autoconfigure
+themselves.
+In particular, driver init sections will often have endpoint
+autoconfiguration logic that scans the hardware's list of endpoints
+to find ones matching the driver requirements
+(relying on those conventions), to eliminate some of the most
+common reasons for conditional compilation.
 </para>
 
 <para>Like the Linux-USB host side API, this API exposes
@@ -355,10 +395,14 @@
 At this point the device is logically in the USB ch9 initial state
 ("attached"), drawing no power and not usable
 (since it does not yet support enumeration).
+Any host should not see the device, since it's not
+activated the data line pullup used by the host to
+detect a device, even if VBUS power is available.
 </para></listitem>
 
 <listitem><para>Register a gadget driver that implements some higher level
-device function.  That will then bind() to a usb_gadget.
+device function.  That will then bind() to a usb_gadget, which
+activates the data line pullup sometime after detecting VBUS.
 </para></listitem>
 
 <listitem><para>The hardware driver can now start enumerating.
@@ -373,6 +417,8 @@
 functionality being implemented.
 That can involve alternate settings or configurations,
 unless the hardware prevents such operation.
+For OTG devices, each configuration descriptor includes
+an OTG descriptor.
 </para></listitem>
 
 <listitem><para>The gadget driver handles the last step of enumeration,
@@ -381,13 +427,18 @@
 with all interfaces in their default settings.
 That involves using a list of the hardware's endpoints, enabling each
 endpoint according to its descriptor.
+It may also involve using <function>usb_gadget_vbus_draw</function>
+to let more power be drawn from VBUS, as allowed by that configuration.
+For OTG devices, setting a configuration may also involve reporting
+HNP capabilities through a user interface.
 </para></listitem>
 
 <listitem><para>Do real work and perform data transfers, possibly involving
 changes to interface settings or switching to new configurations, until the
 device is disconnect()ed from the host.
 Queue any number of transfer requests to each endpoint.
-The drivers then go back to step 3 (above).
+It may be suspended and resumed several times before being disconnected.
+On disconnect, the drivers go back to step 3 (above).
 </para></listitem>
 
 <listitem><para>When the gadget driver module is being unloaded,
@@ -399,7 +450,9 @@
 
 <para>Drivers will normally be arranged so that just loading the
 gadget driver module (or statically linking it into a Linux kernel)
-allows the peripheral device to be enumerated.
+allows the peripheral device to be enumerated, but some drivers
+will defer enumeration until some higher level component (like
+a user mode daemon) enables it.
 Note that at this lowest level there are no policies about how
 ep0 configuration logic is implemented,
 except that it should obey USB specifications.
@@ -410,6 +463,18 @@
 be built by integrating reusable components.
 </para>
 
+<para>Note that the lifecycle above can be slightly different
+for OTG devices.
+Other than providing an additional OTG descriptor in each
+configuration, only the HNP-related differences are particularly
+visible to driver code.
+They involve reporting requirements during the SET_CONFIGURATION
+request, and the option to invoke HNP during some suspend callbacks.
+Also, SRP changes the semantics of
+<function>usb_gadget_wakeup</function>
+slightly.
+</para>
+
 </sect1>
 
 <sect1 id="ch9"><title>USB 2.0 Chapter 9 Types and Constants</title>
@@ -418,9 +483,9 @@
 rely on common USB structures and constants
 defined in the
 <filename>&lt;linux/usb_ch9.h&gt;</filename>
-header file, which is standard in Linux 2.5 kernels.
+header file, which is standard in Linux 2.6 kernels.
 These are the same types and constants used by host
-side drivers.
+side drivers (and usbcore).
 </para>
 
 !Iinclude/linux/usb_ch9.h
@@ -451,26 +516,38 @@
 
 <para>The core API is sufficient for writing a USB Gadget Driver,
 but some optional utilities are provided to simplify common tasks.
+These utilities include endpoint autoconfiguration.
 </para>
 
 !Edrivers/usb/gadget/usbstring.c
 !Edrivers/usb/gadget/config.c
+<!-- !Edrivers/usb/gadget/epautoconf.c -->
 </sect1>
 
 </chapter>
 
 <chapter id="controllers"><title>Peripheral Controller Drivers</title>
 
-<para>The first hardware supporting this API is the NetChip 2280
+<para>The first hardware supporting this API was the NetChip 2280
 controller, which supports USB 2.0 high speed and is based on PCI.
 This is the <filename>net2280</filename> driver module.
-The driver supports Linux kernel versions 2.4 and 2.5;
+The driver supports Linux kernel versions 2.4 and 2.6;
 contact NetChip Technologies for development boards and product
 information.
 </para> 
 
-<para>For users of Intel's PXA 2xx series processors,
-a <filename>pxa2xx_udc</filename> driver is available.
+<para>Other hardware working in the "gadget" framework includes:
+Intel's PXA 25x and IXP42x series processors
+(<filename>pxa2xx_udc</filename>),
+Toshiba TC86c001 "Goku-S" (<filename>goku_udc</filename>),
+Renesas SH7705/7727 (<filename>sh_udc</filename>),
+MediaQ 11xx (<filename>mq11xx_udc</filename>),
+Hynix HMS30C7202 (<filename>h7202_udc</filename>),
+National 9303/4 (<filename>n9604_udc</filename>),
+Texas Instruments OMAP (<filename>omap_udc</filename>),
+Sharp LH7A40x (<filename>lh7a40x_udc</filename>),
+and more.
+Most of those are full speed controllers.
 </para>
 
 <para>At this writing, there are people at work on drivers in
@@ -526,6 +603,15 @@
 to avoid creating problems.)
 </para>
 
+<para>Support for Microsoft's <emphasis>RNDIS</emphasis>
+protocol has been contributed by Pengutronix and Auerswald GmbH.
+This is like CDC Ethernet, but it runs on more slightly USB hardware
+(but less than the CDC subset).
+However, its main claim to fame is being able to connect directly to
+recent versions of Windows, using drivers that Microsoft bundles
+and supports, making it much simpler to network with Windows.
+</para>
+
 <para>There is also support for user mode gadget drivers,
 using <emphasis>gadgetfs</emphasis>.
 This provides a <emphasis>User Mode API</emphasis> that presents
@@ -535,6 +621,10 @@
 develop and debug user mode drivers, so that once a robust
 controller driver is available many applications for it
 won't require new kernel mode software.
+Linux 2.6 <emphasis>Async I/O (AIO)</emphasis>
+support is available, so that user mode software
+can stream data with only slightly more overhead
+than a kernel driver.
 </para>
 
 <para>There's a USB Mass Storage class driver, which provides
@@ -548,6 +638,16 @@
 to access the data from the backing store.
 </para>
 
+<para>There's a "serial line" driver, useful for TTY style
+operation over USB.
+The latest version of that driver supports CDC ACM style
+operation, like a USB modem, and so on most hardware it can
+interoperate easily with MS-Windows.
+One interesting use of that driver is in boot firmware (like a BIOS),
+which can sometimes use that model with very small systems without
+real serial lines.
+</para>
+
 <para>Support for other kinds of gadget is expected to
 be developed and contributed
 over time, as this driver framework evolves.
@@ -555,6 +655,96 @@
 
 </chapter>
 
+<chapter id="otg"><title>USB On-The-GO (OTG)</title>
+
+<para>USB OTG support on Linux 2.6 was initially developed
+by Texas Instruments for
+<ulink url="http://www.omap.com";>OMAP</ulink> 16xx and 17xx
+series processors.
+Other OTG systems should work in similar ways, but the
+hardware level details could be very different.
+</para> 
+
+<para>Systems need specialized hardware support to implement OTG,
+notably including a special <emphasis>Mini-AB</emphasis> jack
+and associated transciever to support <emphasis>Dual-Role</emphasis>
+operation:
+they can act either as a host, using the standard
+Linux-USB host side driver stack,
+or as a peripheral, using this "gadget" framework.
+To do that, the system software relies on small additions
+to those programming interfaces,
+and on a new internal component (here called an "OTG Controller")
+affecting which driver stack connects to the OTG port.
+In each role, the system can re-use the existing pool of
+hardware-neutral drivers, layered on top of the controller
+driver interfaces (<emphasis>usb_bus</emphasis> or
+<emphasis>usb_gadget</emphasis>).
+Such drivers need at most minor changes, and most of the calls
+added to support OTG can also benefit non-OTG products.
+</para>
+
+<itemizedlist>
+    <listitem><para>Gadget drivers test the <emphasis>is_otg</emphasis>
+       flag, and use it to determine whether or not to include
+       an OTG descriptor in each of their configurations.
+       </para></listitem>
+    <listitem><para>Gadget drivers may need changes to support the
+       two new OTG protocols, exposed in new gadget attributes
+       such as <emphasis>b_hnp_enable</emphasis> flag.
+       HNP support should be reported through a user interface
+       (two LEDs could suffice), and is triggered in some cases
+       when the host suspends the peripheral.
+       SRP support can be user-initiated just like remote wakeup,
+       probably by pressing the same button.
+       </para></listitem>
+    <listitem><para>On the host side, USB device drivers need
+       to be taught to trigger HNP at appropriate moments, using
+       <function>usb_suspend_device()</function>.
+       That also conserves battery power, which is useful even
+       for non-OTG configurations.
+       </para></listitem>
+    <listitem><para>Also on the host side, a driver must support the
+       OTG "Targeted Peripheral List".  That's just a whitelist,
+       used to reject peripherals not supported with a given
+       Linux OTG host.
+       <emphasis>This whitelist is product-specific;
+       each product must modify <filename>otg_whitelist.h</filename>
+       to match its interoperability specification.
+       </emphasis>
+       </para>
+       <para>Non-OTG Linux hosts, like PCs and workstations,
+       normally have some solution for adding drivers, so that
+       peripherals that aren't recognized can eventually be supported.
+       That approach is unreasonable for consumer products that may
+       never have their firmware upgraded, and where it's usually
+       unrealistic to expect traditional PC/workstation/server kinds
+       of support model to work.
+       For example, it's often impractical to change device firmware
+       once the product has been distributed, so driver bugs can't
+       normally be fixed if they're found after shipment.
+       </para></listitem>
+</itemizedlist>
+
+<para>
+Additional changes are needed below those hardware-neutral
+<emphasis>usb_bus</emphasis> and <emphasis>usb_gadget</emphasis>
+driver interfaces; those aren't discussed here in any detail.
+Those affect the hardware-specific code for each USB Host or Peripheral
+controller, and how the HCD initializes (since OTG can be active only
+on a single port).
+They also involve what may be called an <emphasis>OTG Controller
+Driver</emphasis>, managing the OTG transceiver and the OTG state
+machine logic as well as much of the root hub behavior for the
+OTG port.
+The OTG controller driver needs to activate and deactivate USB
+controllers depending on the relevant device role.
+Some related changes were needed inside usbcore, so that it
+can identify OTG-capable devices and respond appropriately
+to HNP or SRP protocols.
+</para> 
+
+</chapter>
 
 </book>
 <!--
diff -urN malta/linux/Documentation/DocBook/journal-api.tmpl 
malta/linux/Documentation/DocBook/journal-api.tmpl
--- malta/linux/Documentation/DocBook/journal-api.tmpl  2003/06/05 00:04:28     
1.7
+++ malta/linux/Documentation/DocBook/journal-api.tmpl  2005/06/21 13:20:32     
1.7.1000.1
@@ -1,4 +1,7 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
+
 <book id="LinuxJBDAPI">
  <bookinfo>
   <title>The Linux Journalling API</title>
diff -urN malta/linux/Documentation/DocBook/kernel-api.tmpl 
malta/linux/Documentation/DocBook/kernel-api.tmpl
--- malta/linux/Documentation/DocBook/kernel-api.tmpl   2003/10/09 13:09:26     
1.34
+++ malta/linux/Documentation/DocBook/kernel-api.tmpl   2005/06/21 13:20:32     
1.34.1000.1
@@ -1,4 +1,7 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
+
 <book id="LinuxKernelAPI">
  <bookinfo>
   <title>The Linux Kernel API</title>
@@ -46,13 +49,33 @@
 !Iinclude/asm-i386/unaligned.h
      </sect1>
 
-<!-- FIXME:
-  kernel/sched.c has no docs, which stuffs up the sgml.  Comment
-  out until somebody adds docs.  KAO
      <sect1><title>Delaying, scheduling, and timer routines</title>
-X!Ekernel/sched.c
+!Iinclude/linux/sched.h
+!Ekernel/sched.c
+!Ekernel/timer.c
+     </sect1>
+     <sect1><title>Internal Functions</title>
+!Ikernel/exit.c
+!Ikernel/signal.c
      </sect1>
-KAO -->
+
+     <sect1><title>Kernel objects manipulation</title>
+<!--
+X!Iinclude/linux/kobject.h
+-->
+!Elib/kobject.c
+     </sect1>
+
+     <sect1><title>Kernel utility functions</title>
+!Iinclude/linux/kernel.h
+<!-- This needs to clean up to make kernel-doc happy
+X!Ekernel/printk.c
+ -->
+!Ekernel/panic.c
+!Ekernel/sys.c
+!Ekernel/rcupdate.c
+     </sect1>
+
   </chapter>
 
   <chapter id="adt">
@@ -78,7 +101,9 @@
 !Elib/vsprintf.c
      </sect1>
      <sect1><title>String Manipulation</title>
-!Ilib/string.c
+<!-- All functions are exported at now
+X!Ilib/string.c
+ -->
 !Elib/string.c
      </sect1>
      <sect1><title>Bit Operations</title>
@@ -95,6 +120,33 @@
 !Iinclude/asm-i386/uaccess.h
 !Iarch/i386/lib/usercopy.c
      </sect1>
+     <sect1><title>More Memory Management Functions</title>
+!Iinclude/linux/rmap.h
+!Emm/readahead.c
+!Emm/filemap.c
+!Emm/memory.c
+!Emm/vmalloc.c
+!Emm/mempool.c
+!Emm/page-writeback.c
+!Emm/truncate.c
+     </sect1>
+  </chapter>
+
+
+  <chapter id="ipc">
+     <title>Kernel IPC facilities</title>
+
+     <sect1><title>IPC utilities</title>
+!Iipc/util.c
+     </sect1>
+  </chapter>
+
+  <chapter id="kfifo">
+     <title>FIFO Buffer</title>
+     <sect1><title>kfifo interface</title>
+!Iinclude/linux/kfifo.h
+!Ekernel/kfifo.c
+     </sect1>
   </chapter>
 
   <chapter id="proc">
@@ -103,10 +155,27 @@
      <sect1><title>sysctl interface</title>
 !Ekernel/sysctl.c
      </sect1>
+
+     <sect1><title>proc filesystem interface</title>
+!Ifs/proc/base.c
+     </sect1>
+  </chapter>
+
+  <chapter id="debugfs">
+     <title>The debugfs filesystem</title>
+ 
+     <sect1><title>debugfs interface</title>
+!Efs/debugfs/inode.c
+!Efs/debugfs/file.c
+     </sect1>
   </chapter>
 
   <chapter id="vfs">
      <title>The Linux VFS</title>
+     <sect1><title>The Filesystem types</title>
+!Iinclude/linux/fs.h
+!Einclude/linux/fs.h
+     </sect1>
      <sect1><title>The Directory Cache</title>
 !Efs/dcache.c
 !Iinclude/linux/dcache.h
@@ -122,23 +191,53 @@
 !Efs/locks.c
 !Ifs/locks.c
      </sect1>
+     <sect1><title>Other Functions</title>
+!Efs/mpage.c
+!Efs/namei.c
+!Efs/buffer.c
+!Efs/bio.c
+!Efs/seq_file.c
+!Efs/filesystems.c
+!Efs/fs-writeback.c
+!Efs/block_dev.c
+     </sect1>
   </chapter>
 
   <chapter id="netcore">
      <title>Linux Networking</title>
+     <sect1><title>Networking Base Types</title>
+!Iinclude/linux/net.h
+     </sect1>
      <sect1><title>Socket Buffer Functions</title>
 !Iinclude/linux/skbuff.h
+!Iinclude/net/sock.h
+!Enet/socket.c
 !Enet/core/skbuff.c
+!Enet/core/sock.c
+!Enet/core/datagram.c
+!Enet/core/stream.c
      </sect1>
      <sect1><title>Socket Filter</title>
 !Enet/core/filter.c
      </sect1>
+     <sect1><title>Generic Network Statistics</title>
+!Iinclude/linux/gen_stats.h
+!Enet/core/gen_stats.c
+!Enet/core/gen_estimator.c
+     </sect1>
+     <sect1><title>SUN RPC subsystem</title>
+<!-- The !D functionality is not perfect, garbage has to be protected by 
comments
+!Dnet/sunrpc/sunrpc_syms.c
+-->
+!Enet/sunrpc/xdr.c
+!Enet/sunrpc/svcsock.c
+!Enet/sunrpc/sched.c
+     </sect1>
   </chapter>
 
   <chapter id="netdev">
      <title>Network device support</title>
      <sect1><title>Driver Support</title>
-!Edrivers/net/net_init.c
 !Enet/core/dev.c
      </sect1>
      <sect1><title>8390 Based Network Cards</title>
@@ -170,11 +269,26 @@
 !Iarch/i386/kernel/irq.c
      </sect1>
 
+     <sect1><title>Resources Management</title>
+!Ekernel/resource.c
+     </sect1>
+
      <sect1><title>MTRR Handling</title>
 !Earch/i386/kernel/cpu/mtrr/main.c
      </sect1>
      <sect1><title>PCI Support Library</title>
 !Edrivers/pci/pci.c
+!Edrivers/pci/pci-driver.c
+!Edrivers/pci/remove.c
+!Edrivers/pci/pci-acpi.c
+<!-- kerneldoc does not understand to __devinit
+X!Edrivers/pci/search.c
+ -->
+!Edrivers/pci/msi.c
+!Edrivers/pci/bus.c
+!Edrivers/pci/hotplug.c
+!Edrivers/pci/probe.c
+!Edrivers/pci/rom.c
      </sect1>
      <sect1><title>PCI Hotplug Support Library</title>
 !Edrivers/pci/hotplug/pci_hotplug_core.c
@@ -199,6 +313,14 @@
 !Efs/devfs/base.c
   </chapter>
 
+  <chapter id="sysfs">
+     <title>The Filesystem for Exporting Kernel Objects</title>
+!Efs/sysfs/file.c
+!Efs/sysfs/dir.c
+!Efs/sysfs/symlink.c
+!Efs/sysfs/bin.c
+  </chapter>
+
   <chapter id="security">
      <title>Security Framework</title>
 !Esecurity/security.c
@@ -209,6 +331,61 @@
 !Ekernel/power/pm.c
   </chapter>
 
+  <chapter id="devdrivers">
+     <title>Device drivers infrastructure</title>
+     <sect1><title>Device Drivers Base</title>
+<!--
+X!Iinclude/linux/device.h
+-->
+!Edrivers/base/driver.c
+!Edrivers/base/class_simple.c
+!Edrivers/base/core.c
+!Edrivers/base/firmware_class.c
+!Edrivers/base/transport_class.c
+!Edrivers/base/dmapool.c
+<!-- Cannot be included, because
+     attribute_container_add_class_device_adapter
+ and attribute_container_classdev_to_container
+     exceed allowed 44 characters maximum
+X!Edrivers/base/attribute_container.c
+-->
+!Edrivers/base/sys.c
+<!--
+X!Edrivers/base/interface.c
+-->
+!Edrivers/base/platform.c
+!Edrivers/base/bus.c
+     </sect1>
+     <sect1><title>Device Drivers Power Management</title>
+!Edrivers/base/power/main.c
+!Edrivers/base/power/resume.c
+!Edrivers/base/power/suspend.c
+     </sect1>
+     <sect1><title>Device Drivers ACPI Support</title>
+<!-- Internal functions only
+X!Edrivers/acpi/sleep/main.c
+X!Edrivers/acpi/sleep/wakeup.c
+X!Edrivers/acpi/motherboard.c
+X!Edrivers/acpi/bus.c
+-->
+!Edrivers/acpi/scan.c
+<!-- No correct structured comments
+X!Edrivers/acpi/pci_bind.c
+-->
+     </sect1>
+     <sect1><title>Device drivers PnP support</title>
+!Edrivers/pnp/core.c
+<!-- No correct structured comments
+X!Edrivers/pnp/system.c
+ -->
+!Edrivers/pnp/card.c
+!Edrivers/pnp/driver.c
+!Edrivers/pnp/manager.c
+!Edrivers/pnp/support.c
+     </sect1>
+  </chapter>
+
+
   <chapter id="blkdev">
      <title>Block Devices</title>
 !Edrivers/block/ll_rw_blk.c
@@ -226,7 +403,23 @@
 
   <chapter id="snddev">
      <title>Sound Devices</title>
+!Iinclude/sound/core.h
 !Esound/sound_core.c
+!Iinclude/sound/pcm.h
+!Esound/core/pcm.c
+!Esound/core/device.c
+!Esound/core/info.c
+!Esound/core/rawmidi.c
+!Esound/core/sound.c
+!Esound/core/memory.c
+!Esound/core/pcm_memory.c
+!Esound/core/init.c
+!Esound/core/isadma.c
+!Esound/core/control.c
+!Esound/core/pcm_lib.c
+!Esound/core/hwdep.c
+!Esound/core/pcm_native.c
+!Esound/core/memalloc.c
 <!-- FIXME: Removed for now since no structured comments in source
 X!Isound/sound_firmware.c
 -->
@@ -234,6 +427,7 @@
 
   <chapter id="uart16x50">
      <title>16x50 UART Driver</title>
+!Iinclude/linux/serial_core.h
 !Edrivers/serial/serial_core.c
 !Edrivers/serial/8250.c
   </chapter>
@@ -286,9 +480,11 @@
      <sect1><title>Frame Buffer Memory</title>
 !Edrivers/video/fbmem.c
      </sect1>
+<!--
      <sect1><title>Frame Buffer Console</title>
-!Edrivers/video/console/fbcon.c
+X!Edrivers/video/console/fbcon.c
      </sect1>
+-->
      <sect1><title>Frame Buffer Colormap</title>
 !Edrivers/video/fbcmap.c
      </sect1>
diff -urN malta/linux/Documentation/DocBook/kernel-hacking.tmpl 
malta/linux/Documentation/DocBook/kernel-hacking.tmpl
--- malta/linux/Documentation/DocBook/kernel-hacking.tmpl       2004/09/14 
16:27:37     1.15.1000.2
+++ malta/linux/Documentation/DocBook/kernel-hacking.tmpl       2005/06/21 
13:20:32     1.15.1000.3
@@ -1,4 +1,6 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
 
 <book id="lk-hacking-guide">
  <bookinfo>
@@ -145,7 +147,7 @@
     In user context, the <varname>current</varname> pointer (indicating 
     the task we are currently executing) is valid, and
     <function>in_interrupt()</function>
-    (<filename>include/asm/hardirq.h</filename>) is <returnvalue>false
+    (<filename>include/linux/interrupt.h</filename>) is <returnvalue>false
     </returnvalue>.  
    </para>
 
@@ -241,7 +243,7 @@
    <para>
     You can tell you are in a softirq (or bottom half, or tasklet)
     using the <function>in_softirq()</function> macro 
-    (<filename class="headerfile">include/asm/hardirq.h</filename>).
+    (<filename class="headerfile">include/linux/interrupt.h</filename>).
    </para>
    <caution>
     <para>
@@ -888,7 +890,7 @@
    The second class of atomic operations is atomic bit operations on a
    <type>long</type>, defined in
 
-   <filename class="headerfile">include/asm/bitops.h</filename>.  These
+   <filename class="headerfile">include/linux/bitops.h</filename>.  These
    operations generally take a pointer to the bit pattern, and a bit
    number: 0 is the least significant bit.
    <function>set_bit()</function>, <function>clear_bit()</function>
diff -urN malta/linux/Documentation/DocBook/kernel-locking.tmpl 
malta/linux/Documentation/DocBook/kernel-locking.tmpl
--- malta/linux/Documentation/DocBook/kernel-locking.tmpl       2004/05/12 
17:14:19     1.14.1000.1
+++ malta/linux/Documentation/DocBook/kernel-locking.tmpl       2005/06/21 
13:20:32     1.14.1000.2
@@ -1,4 +1,6 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
 
 <book id="LKLockingGuide">
  <bookinfo>
@@ -236,12 +238,12 @@
      your task will put itself on the queue, and be woken up when the
      semaphore is released.  This means the CPU will do something
      else while you are waiting, but there are many cases when you
-     simply can't sleep (see <xref linkend="sleeping-things">), and so
+     simply can't sleep (see <xref linkend="sleeping-things"/>), and so
      have to use a spinlock instead.
    </para>
    <para>
      Neither type of lock is recursive: see
-     <xref linkend="deadlock">.
+     <xref linkend="deadlock"/>.
    </para>
    </sect1>
  
@@ -326,7 +328,7 @@
     <para>
       Note that you can also use <function>spin_lock_irq()</function>
       or <function>spin_lock_irqsave()</function> here, which stop
-      hardware interrupts as well: see <xref linkend="hardirq-context">.
+      hardware interrupts as well: see <xref linkend="hardirq-context"/>.
     </para>
 
     <para>
@@ -403,7 +405,7 @@
 
      <para>
        The same softirq can run on the other CPUs: you can use a
-       per-CPU array (see <xref linkend="per-cpu">) for better
+       per-CPU array (see <xref linkend="per-cpu"/>) for better
        performance.  If you're going so far as to use a softirq,
        you probably care about scalable performance enough
        to justify the extra complexity.
@@ -545,120 +547,120 @@
    </para>
    <table>
 <title>Table of Locking Requirements</title>
-<TGROUP COLS="11">
-<TBODY>
-<ROW>
-<ENTRY></ENTRY>
-<ENTRY>IRQ Handler A</ENTRY>
-<ENTRY>IRQ Handler B</ENTRY>
-<ENTRY>Softirq A</ENTRY>
-<ENTRY>Softirq B</ENTRY>
-<ENTRY>Tasklet A</ENTRY>
-<ENTRY>Tasklet B</ENTRY>
-<ENTRY>Timer A</ENTRY>
-<ENTRY>Timer B</ENTRY>
-<ENTRY>User Context A</ENTRY>
-<ENTRY>User Context B</ENTRY>
-</ROW>
-
-<ROW>
-<ENTRY>IRQ Handler A</ENTRY>
-<ENTRY>None</ENTRY>
-</ROW>
-
-<ROW>
-<ENTRY>IRQ Handler B</ENTRY>
-<ENTRY>spin_lock_irqsave</ENTRY>
-<ENTRY>None</ENTRY>
-</ROW>
-
-<ROW>
-<ENTRY>Softirq A</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-</ROW>
-
-<ROW>
-<ENTRY>Softirq B</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-</ROW>
-
-<ROW>
-<ENTRY>Tasklet A</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>None</ENTRY>
-</ROW>
-
-<ROW>
-<ENTRY>Tasklet B</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>None</ENTRY>
-</ROW>
-
-<ROW>
-<ENTRY>Timer A</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>None</ENTRY>
-</ROW>
-
-<ROW>
-<ENTRY>Timer B</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>spin_lock</ENTRY>
-<ENTRY>None</ENTRY>
-</ROW>
-
-<ROW>
-<ENTRY>User Context A</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock_bh</ENTRY>
-<ENTRY>spin_lock_bh</ENTRY>
-<ENTRY>spin_lock_bh</ENTRY>
-<ENTRY>spin_lock_bh</ENTRY>
-<ENTRY>spin_lock_bh</ENTRY>
-<ENTRY>spin_lock_bh</ENTRY>
-<ENTRY>None</ENTRY>
-</ROW>
-
-<ROW>
-<ENTRY>User Context B</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock_irq</ENTRY>
-<ENTRY>spin_lock_bh</ENTRY>
-<ENTRY>spin_lock_bh</ENTRY>
-<ENTRY>spin_lock_bh</ENTRY>
-<ENTRY>spin_lock_bh</ENTRY>
-<ENTRY>spin_lock_bh</ENTRY>
-<ENTRY>spin_lock_bh</ENTRY>
-<ENTRY>down_interruptible</ENTRY>
-<ENTRY>None</ENTRY>
-</ROW>
-
-</TBODY>
-</TGROUP>
-</TABLE>
+<tgroup cols="11">
+<tbody>
+<row>
+<entry></entry>
+<entry>IRQ Handler A</entry>
+<entry>IRQ Handler B</entry>
+<entry>Softirq A</entry>
+<entry>Softirq B</entry>
+<entry>Tasklet A</entry>
+<entry>Tasklet B</entry>
+<entry>Timer A</entry>
+<entry>Timer B</entry>
+<entry>User Context A</entry>
+<entry>User Context B</entry>
+</row>
+
+<row>
+<entry>IRQ Handler A</entry>
+<entry>None</entry>
+</row>
+
+<row>
+<entry>IRQ Handler B</entry>
+<entry>spin_lock_irqsave</entry>
+<entry>None</entry>
+</row>
+
+<row>
+<entry>Softirq A</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock</entry>
+</row>
+
+<row>
+<entry>Softirq B</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock</entry>
+<entry>spin_lock</entry>
+</row>
+
+<row>
+<entry>Tasklet A</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock</entry>
+<entry>spin_lock</entry>
+<entry>None</entry>
+</row>
+
+<row>
+<entry>Tasklet B</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock</entry>
+<entry>spin_lock</entry>
+<entry>spin_lock</entry>
+<entry>None</entry>
+</row>
+
+<row>
+<entry>Timer A</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock</entry>
+<entry>spin_lock</entry>
+<entry>spin_lock</entry>
+<entry>spin_lock</entry>
+<entry>None</entry>
+</row>
+
+<row>
+<entry>Timer B</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock</entry>
+<entry>spin_lock</entry>
+<entry>spin_lock</entry>
+<entry>spin_lock</entry>
+<entry>spin_lock</entry>
+<entry>None</entry>
+</row>
+
+<row>
+<entry>User Context A</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock_bh</entry>
+<entry>spin_lock_bh</entry>
+<entry>spin_lock_bh</entry>
+<entry>spin_lock_bh</entry>
+<entry>spin_lock_bh</entry>
+<entry>spin_lock_bh</entry>
+<entry>None</entry>
+</row>
+
+<row>
+<entry>User Context B</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock_irq</entry>
+<entry>spin_lock_bh</entry>
+<entry>spin_lock_bh</entry>
+<entry>spin_lock_bh</entry>
+<entry>spin_lock_bh</entry>
+<entry>spin_lock_bh</entry>
+<entry>spin_lock_bh</entry>
+<entry>down_interruptible</entry>
+<entry>None</entry>
+</row>
+
+</tbody>
+</tgroup>
+</table>
 </sect1>
 </chapter>
 
diff -urN malta/linux/Documentation/DocBook/libata.tmpl 
malta/linux/Documentation/DocBook/libata.tmpl
--- malta/linux/Documentation/DocBook/libata.tmpl       2004/09/14 16:27:37     
1.1.1000.1
+++ malta/linux/Documentation/DocBook/libata.tmpl       2005/06/21 13:20:32     
1.1.1000.2
@@ -1,4 +1,6 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
 
 <book id="libataDevGuide">
  <bookinfo>
@@ -12,7 +14,7 @@
   </authorgroup>
 
   <copyright>
-   <year>2003</year>
+   <year>2003-2005</year>
    <holder>Jeff Garzik</holder>
   </copyright>
 
@@ -42,25 +44,287 @@
 
 <toc></toc>
 
-  <chapter id="libataThanks">
-     <title>Thanks</title>
+  <chapter id="libataIntroduction">
+     <title>Introduction</title>
   <para>
-  The bulk of the ATA knowledge comes thanks to long conversations with
-  Andre Hedrick (www.linux-ide.org).
+  libATA is a library used inside the Linux kernel to support ATA host
+  controllers and devices.  libATA provides an ATA driver API, class
+  transports for ATA and ATAPI devices, and SCSI&lt;-&gt;ATA translation
+  for ATA devices according to the T10 SAT specification.
   </para>
   <para>
-  Thanks to Alan Cox for pointing out similarities 
-  between SATA and SCSI, and in general for motivation to hack on
-  libata.
-  </para>
-  <para>
-  libata's device detection
-  method, ata_pio_devchk, and in general all the early probing was
-  based on extensive study of Hale Landis's probe/reset code in his
-  ATADRVR driver (www.ata-atapi.com).
+  This Guide documents the libATA driver API, library functions, library
+  internals, and a couple sample ATA low-level drivers.
   </para>
   </chapter>
 
+  <chapter id="libataDriverApi">
+     <title>libata Driver API</title>
+     <para>
+     struct ata_port_operations is defined for every low-level libata
+     hardware driver, and it controls how the low-level driver
+     interfaces with the ATA and SCSI layers.
+     </para>
+     <para>
+     FIS-based drivers will hook into the system with ->qc_prep() and
+     ->qc_issue() high-level hooks.  Hardware which behaves in a manner
+     similar to PCI IDE hardware may utilize several generic helpers,
+     defining at a bare minimum the bus I/O addresses of the ATA shadow
+     register blocks.
+     </para>
+     <sect1>
+        <title>struct ata_port_operations</title>
+
+       <sect2><title>Disable ATA port</title>
+       <programlisting>
+void (*port_disable) (struct ata_port *);
+       </programlisting>
+
+       <para>
+       Called from ata_bus_probe() and ata_bus_reset() error paths,
+       as well as when unregistering from the SCSI module (rmmod, hot
+       unplug).
+       </para>
+
+       </sect2>
+
+       <sect2><title>Post-IDENTIFY device configuration</title>
+       <programlisting>
+void (*dev_config) (struct ata_port *, struct ata_device *);
+       </programlisting>
+
+       <para>
+       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.
+       </para>
+
+       </sect2>
+
+       <sect2><title>Set PIO/DMA mode</title>
+       <programlisting>
+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);
+       </programlisting>
+
+       <para>
+       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.
+       </para>
+
+       <para>
+       ->set_piomode() is always called (if present), but
+       ->set_dma_mode() is only called if DMA is possible.
+       </para>
+
+       </sect2>
+
+       <sect2><title>Taskfile read/write</title>
+       <programlisting>
+void (*tf_load) (struct ata_port *ap, struct ata_taskfile *tf);
+void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf);
+       </programlisting>
+
+       <para>
+       ->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.
+       </para>
+
+       </sect2>
+
+       <sect2><title>ATA command execute</title>
+       <programlisting>
+void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf);
+       </programlisting>
+
+       <para>
+       causes an ATA command, previously loaded with
+       ->tf_load(), to be initiated in hardware.
+       </para>
+
+       </sect2>
+
+       <sect2><title>Per-cmd ATAPI DMA capabilities filter</title>
+       <programlisting>
+int (*check_atapi_dma) (struct ata_queued_cmd *qc);
+       </programlisting>
+
+       <para>
+Allow low-level driver to filter ATA PACKET commands, returning a status
+indicating whether or not it is OK to use DMA for the supplied PACKET
+command.
+       </para>
+
+       </sect2>
+
+       <sect2><title>Read specific ATA shadow registers</title>
+       <programlisting>
+u8   (*check_status)(struct ata_port *ap);
+u8   (*check_altstatus)(struct ata_port *ap);
+u8   (*check_err)(struct ata_port *ap);
+       </programlisting>
+
+       <para>
+       Reads the Status/AltStatus/Error ATA shadow register from
+       hardware.  On some hardware, reading the Status register has
+       the side effect of clearing the interrupt condition.
+       </para>
+
+       </sect2>
+
+       <sect2><title>Select ATA device on bus</title>
+       <programlisting>
+void (*dev_select)(struct ata_port *ap, unsigned int device);
+       </programlisting>
+
+       <para>
+       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.  This generally has no
+meaning on FIS-based devices.
+       </para>
+
+       </sect2>
+
+       <sect2><title>Reset ATA bus</title>
+       <programlisting>
+void (*phy_reset) (struct ata_port *ap);
+       </programlisting>
+
+       <para>
+       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.
+       </para>
+
+       </sect2>
+
+       <sect2><title>Control PCI IDE BMDMA engine</title>
+       <programlisting>
+void (*bmdma_setup) (struct ata_queued_cmd *qc);
+void (*bmdma_start) (struct ata_queued_cmd *qc);
+void (*bmdma_stop) (struct ata_port *ap);
+u8   (*bmdma_status) (struct ata_port *ap);
+       </programlisting>
+
+       <para>
+When setting up an IDE BMDMA transaction, these hooks arm
+(->bmdma_setup), fire (->bmdma_start), and halt (->bmdma_stop)
+the hardware's DMA engine.  ->bmdma_status is used to read the standard
+PCI IDE DMA Status register.
+       </para>
+
+       <para>
+These hooks are typically either no-ops, or simply not implemented, in
+FIS-based drivers.
+       </para>
+
+       </sect2>
+
+       <sect2><title>High-level taskfile hooks</title>
+       <programlisting>
+void (*qc_prep) (struct ata_queued_cmd *qc);
+int (*qc_issue) (struct ata_queued_cmd *qc);
+       </programlisting>
+
+       <para>
+       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.
+       </para>
+       <para>
+       ->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 implement their own ->qc_issue.
+       </para>
+
+       </sect2>
+
+       <sect2><title>Timeout (error) handling</title>
+       <programlisting>
+void (*eng_timeout) (struct ata_port *ap);
+       </programlisting>
+
+       <para>
+This is a high level error handling function, called from the
+error handling thread, when a command times out.  Most newer
+hardware will implement its own error handling code here.  IDE BMDMA
+drivers may use the helper function ata_eng_timeout().
+       </para>
+
+       </sect2>
+
+       <sect2><title>Hardware interrupt handling</title>
+       <programlisting>
+irqreturn_t (*irq_handler)(int, void *, struct pt_regs *);
+void (*irq_clear) (struct ata_port *);
+       </programlisting>
+
+       <para>
+       ->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.
+       </para>
+
+       </sect2>
+
+       <sect2><title>SATA phy read/write</title>
+       <programlisting>
+u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg);
+void (*scr_write) (struct ata_port *ap, unsigned int sc_reg,
+                   u32 val);
+       </programlisting>
+
+       <para>
+       Read and write standard SATA phy registers.  Currently only used
+       if ->phy_reset hook called the sata_phy_reset() helper function.
+       </para>
+
+       </sect2>
+
+       <sect2><title>Init and shutdown</title>
+       <programlisting>
+int (*port_start) (struct ata_port *ap);
+void (*port_stop) (struct ata_port *ap);
+void (*host_stop) (struct ata_host_set *host_set);
+       </programlisting>
+
+       <para>
+       ->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.  
+       </para>
+       <para>
+       ->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.
+       </para>
+       <para>
+       ->host_stop() is called after all ->port_stop() calls
+have completed.  The hook must finalize hardware shutdown, release DMA
+and other resources, etc.
+       </para>
+
+       </sect2>
+
+     </sect1>
+  </chapter>
+
   <chapter id="libataExt">
      <title>libata Library</title>
 !Edrivers/scsi/libata-core.c
@@ -83,8 +347,28 @@
   </chapter>
 
   <chapter id="SILInt">
-     <title>ata_sil Internals</title>
+     <title>sata_sil Internals</title>
 !Idrivers/scsi/sata_sil.c
   </chapter>
 
+  <chapter id="libataThanks">
+     <title>Thanks</title>
+  <para>
+  The bulk of the ATA knowledge comes thanks to long conversations with
+  Andre Hedrick (www.linux-ide.org), and long hours pondering the ATA
+  and SCSI specifications.
+  </para>
+  <para>
+  Thanks to Alan Cox for pointing out similarities 
+  between SATA and SCSI, and in general for motivation to hack on
+  libata.
+  </para>
+  <para>
+  libata's device detection
+  method, ata_pio_devchk, and in general all the early probing was
+  based on extensive study of Hale Landis's probe/reset code in his
+  ATADRVR driver (www.ata-atapi.com).
+  </para>
+  </chapter>
+
 </book>
diff -urN malta/linux/Documentation/DocBook/lsm.tmpl 
malta/linux/Documentation/DocBook/lsm.tmpl
--- malta/linux/Documentation/DocBook/lsm.tmpl  2004/05/12 17:14:19     
1.2.1000.1
+++ malta/linux/Documentation/DocBook/lsm.tmpl  2005/06/21 13:20:32     
1.2.1000.2
@@ -1,6 +1,9 @@
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
+
 <article class="whitepaper" id="LinuxSecurityModule" lang="en">
- <artheader>
+ <articleinfo>
  <title>Linux Security Modules:  General Security Hooks for Linux</title>
  <authorgroup>
  <author>
@@ -28,7 +31,7 @@
  </affiliation>
  </author>
  </authorgroup>
- </artheader>
+ </articleinfo>
 
 <sect1><title>Introduction</title>
 
@@ -84,7 +87,7 @@
 modules.  The LSM kernel patch also moves most of the capabilities
 logic into an optional security module, with the system defaulting
 to the traditional superuser logic.  This capabilities module
-is discussed further in <XRef LinkEnd="cap">.
+is discussed further in <xref linkend="cap"/>.
 </para>
 
 <para>
diff -urN malta/linux/Documentation/DocBook/mcabook.tmpl 
malta/linux/Documentation/DocBook/mcabook.tmpl
--- malta/linux/Documentation/DocBook/mcabook.tmpl      2000/03/19 01:28:42     
1.1
+++ malta/linux/Documentation/DocBook/mcabook.tmpl      2005/06/21 13:20:32     
1.1.1000.1
@@ -1,4 +1,6 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
 
 <book id="MCAGuide">
  <bookinfo>
diff -urN malta/linux/Documentation/DocBook/procfs-guide.tmpl 
malta/linux/Documentation/DocBook/procfs-guide.tmpl
--- malta/linux/Documentation/DocBook/procfs-guide.tmpl 2003/07/14 12:23:54     
1.4
+++ malta/linux/Documentation/DocBook/procfs-guide.tmpl 2005/06/21 13:20:32     
1.4.1000.1
@@ -1,6 +1,7 @@
-<!-- -*- sgml -*- -->
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[
-<!ENTITY procfsexample SYSTEM "procfs_example.sgml">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY procfsexample SYSTEM "procfs_example.xml">
 ]>
 
 <book id="LKProcfsGuide">
@@ -100,8 +101,8 @@
     <para>
       I'd like to thank Jeff Garzik
       <email>jgarzik@pobox.com</email> and Alexander Viro
-      <email>viro@math.psu.edu</email> for their input, Tim Waugh
-      <email>twaugh@redhat.com</email> for his <ulink
+      <email>viro@parcelfarce.linux.theplanet.co.uk</email> for their input,
+      Tim Waugh <email>twaugh@redhat.com</email> for his <ulink
       
url="http://people.redhat.com/twaugh/docbook/selfdocbook/";>Selfdocbook</ulink>,
       and Marc Joosen <email>marcj@historia.et.tudelft.nl</email> for
       proofreading.
@@ -205,7 +206,7 @@
         function will return a pointer to the freshly created
         <structname>struct proc_dir_entry</structname>; otherwise it
         will return <constant>NULL</constant>. <xref
-        linkend="userland"> describes how to do something useful with
+        linkend="userland"/> describes how to do something useful with
         regular files.
       </para>
 
@@ -221,7 +222,7 @@
     <para>
       If you only want to be able to read the file, the function
       <function>create_proc_read_entry</function> described in <xref
-      linkend="convenience"> may be used to create and initialise
+      linkend="convenience"/> may be used to create and initialise
       the procfs entry in one single call.
     </para>
     </sect1>
@@ -298,7 +299,7 @@
         the <structname>struct proc_dir_entry</structname> before
         <function>remove_proc_entry</function> is called (that is: if
         there was some <structfield>data</structfield> allocated, of
-        course). See <xref linkend="usingdata"> for more information
+        course). See <xref linkend="usingdata"/> for more information
         on using the <structfield>data</structfield> entry.
       </para>
     </sect1>
@@ -333,7 +334,7 @@
       If you only want to use a the
       <structfield>read_proc</structfield>, the function
       <function>create_proc_read_entry</function> described in <xref
-      linkend="convenience"> may be used to create and initialise the
+      linkend="convenience"/> may be used to create and initialise the
       procfs entry in one single call.
     </para>
 
@@ -386,7 +387,7 @@
         The parameter <parameter>start</parameter> doesn't seem to be
         used anywhere in the kernel. The <parameter>data</parameter>
         parameter can be used to create a single call back function for
-        several files, see <xref linkend="usingdata">.
+        several files, see <xref linkend="usingdata"/>.
       </para>
 
       <para>
@@ -395,7 +396,7 @@
       </para>
 
       <para>
-        <xref linkend="example"> shows how to use a read call back
+        <xref linkend="example"/> shows how to use a read call back
         function.
       </para>
     </sect1>
@@ -429,12 +430,12 @@
         kernel's memory space, so it should first be copied to kernel
         space with <function>copy_from_user</function>. The
         <parameter>file</parameter> parameter is usually
-        ignored. <xref linkend="usingdata"> shows how to use the
+        ignored. <xref linkend="usingdata"/> shows how to use the
         <parameter>data</parameter> parameter.
       </para>
 
       <para>
-        Again, <xref linkend="example"> shows how to use this call back
+        Again, <xref linkend="example"/> shows how to use this call back
         function.
       </para>
     </sect1>
@@ -525,10 +526,10 @@
       <para>
         This function creates a regular file in exactly the same way
         as <function>create_proc_entry</function> from <xref
-        linkend="regularfile"> does, but also allows to set the read
+        linkend="regularfile"/> does, but also allows to set the read
         function <parameter>read_proc</parameter> in one call. This
         function can set the <parameter>data</parameter> as well, like
-        explained in <xref linkend="usingdata">.
+        explained in <xref linkend="usingdata"/>.
       </para>
     </sect1>
 
diff -urN malta/linux/Documentation/DocBook/scsidrivers.tmpl 
malta/linux/Documentation/DocBook/scsidrivers.tmpl
--- malta/linux/Documentation/DocBook/scsidrivers.tmpl  2003/09/09 16:40:54     
1.4
+++ malta/linux/Documentation/DocBook/scsidrivers.tmpl  2005/06/21 13:20:32     
1.4.1000.1
@@ -1,5 +1,6 @@
-<!-- -*- sgml -*- -->
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
 
 <book id="scsidrivers">
  <bookinfo>
diff -urN malta/linux/Documentation/DocBook/sis900.tmpl 
malta/linux/Documentation/DocBook/sis900.tmpl
--- malta/linux/Documentation/DocBook/sis900.tmpl       2004/05/12 17:14:19     
1.4.1000.1
+++ malta/linux/Documentation/DocBook/sis900.tmpl       2005/06/21 13:20:32     
1.4.1000.2
@@ -1,25 +1,27 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
 
 <book id="SiS900Guide">
 
 <bookinfo>
 
-<title>SiS 900/7016 Fast Ethernet Device Driver</Title>
+<title>SiS 900/7016 Fast Ethernet Device Driver</title>
 
 <authorgroup>
 <author>
-<FirstName>Ollie</FirstName>
+<firstname>Ollie</firstname>
 <surname>Lho</surname>
 </author>
 
 <author>
-<FirstName>Lei Chun</FirstName>
+<firstname>Lei Chun</firstname>
 <surname>Chang</surname>
 </author>
 </authorgroup>
 
-<edition>Document Revision: 0.3 for SiS900 driver v1.06 & v1.07</edition>
-<PubDate>November 16, 2000</PubDate>
+<edition>Document Revision: 0.3 for SiS900 driver v1.06 &amp; v1.07</edition>
+<pubdate>November 16, 2000</pubdate>
 
 <copyright>
  <year>1999</year>
@@ -48,21 +50,21 @@
  </para>
 </legalnotice>
 
-<Abstract>
-<Para>
+<abstract>
+<para>
 This document gives some information on installation and usage of SiS 900/7016
 device driver under Linux.
-</Para>
-</Abstract>
+</para>
+</abstract>
 
 </bookinfo>
 
 <toc></toc>
 
 <chapter id="intro">
- <Title>Introduction</Title>
+ <title>Introduction</title>
 
-<Para>
+<para>
 This document describes the revision 1.06 and 1.07 of SiS 900/7016 Fast 
Ethernet 
 device driver under Linux. The driver is developed by Silicon Integrated
 System Corp. and distributed freely under the GNU General Public License (GPL).
@@ -70,265 +72,265 @@
 version 2.2.x. (rev. 1.06)
 With minimal changes, the driver can also be used under 2.3.x and 2.4.x kernel 
 (rev. 1.07), please see 
-<XRef LinkEnd="install">. If you are intended to 
+<xref linkend="install"/>. If you are intended to
 use the driver for earlier kernels, you are on your own.
-</Para>
+</para>
 
-<Para>
+<para>
 The driver is tested with usual TCP/IP applications including
 FTP, Telnet, Netscape etc. and is used constantly by the developers.
-</Para>
+</para>
 
-<Para>
+<para>
 Please send all comments/fixes/questions to
-<ULink URL="mailto:lcchang@sis.com.tw";>Lei-Chun Chang</ULink>.
-</Para>
+<ulink url="mailto:lcchang@sis.com.tw";>Lei-Chun Chang</ulink>.
+</para>
 </chapter>
 
 <chapter id="changes">
- <Title>Changes</Title>
+ <title>Changes</title>
 
-<Para>
+<para>
 Changes made in Revision 1.07
 
-<OrderedList>
-<ListItem>
-<Para>
+<orderedlist>
+<listitem>
+<para>
 Separation of sis900.c and sis900.h in order to move most 
 constant definition to sis900.h (many of those constants were
 corrected)
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 Clean up PCI detection, the pci-scan from Donald Becker were not used,
 just simple pci&lowbar;find&lowbar;*.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 MII detection is modified to support multiple mii transceiver.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 Bugs in read&lowbar;eeprom, mdio&lowbar;* were removed.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 Lot of sis900 irrelevant comments were removed/changed and
 more comments were added to reflect the real situation.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 Clean up of physical/virtual address space mess in buffer 
 descriptors.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 Better transmit/receive error handling.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 The driver now uses zero-copy single buffer management
 scheme to improve performance.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 Names of variables were changed to be more consistent.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 Clean up of auo-negotiation and timer code.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 Automatic detection and change of PHY on the fly.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 Bug in mac probing fixed.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 Fix 630E equalier problem by modifying the equalizer workaround rule.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 Support for ICS1893 10/100 Interated PHYceiver.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 Support for media select by ifconfig.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 Added kernel-doc extratable documentation.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-</OrderedList>
-</Para>
+</orderedlist>
+</para>
 </chapter>
 
 <chapter id="tested">
- <Title>Tested Environment</Title>
+ <title>Tested Environment</title>
 
-<Para>
+<para>
 This driver is developed on the following hardware
 
-<ItemizedList>
-<ListItem>
+<itemizedlist>
+<listitem>
 
-<Para>
+<para>
 Intel Celeron 500 with SiS 630 (rev 02) chipset
-</Para>
-</ListItem>
-<ListItem>
+</para>
+</listitem>
+<listitem>
 
-<Para>
+<para>
 SiS 900 (rev 01) and SiS 7016/7014 Fast Ethernet Card
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-</ItemizedList>
+</itemizedlist>
 
 and tested with these software environments
 
-<ItemizedList>
-<ListItem>
+<itemizedlist>
+<listitem>
 
-<Para>
+<para>
 Red Hat Linux version 6.2
-</Para>
-</ListItem>
-<ListItem>
+</para>
+</listitem>
+<listitem>
 
-<Para>
+<para>
 Linux kernel version 2.4.0
-</Para>
-</ListItem>
-<ListItem>
+</para>
+</listitem>
+<listitem>
 
-<Para>
+<para>
 Netscape version 4.6
-</Para>
-</ListItem>
-<ListItem>
+</para>
+</listitem>
+<listitem>
 
-<Para>
+<para>
 NcFTP 3.0.0 beta 18
-</Para>
-</ListItem>
-<ListItem>
+</para>
+</listitem>
+<listitem>
 
-<Para>
+<para>
 Samba version 2.0.3
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-</ItemizedList>
+</itemizedlist>
 
-</Para>
+</para>
 
 </chapter>
 
 <chapter id="files">
-<Title>Files in This Package</Title>
+<title>Files in This Package</title>
 
-<Para>
+<para>
 In the package you can find these files:
-</Para>
+</para>
 
-<Para>
-<VariableList>
+<para>
+<variablelist>
 
-<VarListEntry>
-<Term>sis900.c</Term>
-<ListItem>
-<Para>
+<varlistentry>
+<term>sis900.c</term>
+<listitem>
+<para>
 Driver source file in C 
-</Para>
-</ListItem>
-</VarListEntry>
-
-<VarListEntry>
-<Term>sis900.h</Term>
-<ListItem>
-<Para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>sis900.h</term>
+<listitem>
+<para>
 Header file for sis900.c
-</Para>
-</ListItem>
-</VarListEntry>
-
-<VarListEntry>
-<Term>sis900.sgml</Term>
-<ListItem>
-<Para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>sis900.sgml</term>
+<listitem>
+<para>
 DocBook SGML source of the document
-</Para>
-</ListItem>
-</VarListEntry>
-
-<VarListEntry>
-<Term>sis900.txt</Term>
-<ListItem>
-<Para>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>sis900.txt</term>
+<listitem>
+<para>
 Driver document in plain text
-</Para>
-</ListItem>
-</VarListEntry>
+</para>
+</listitem>
+</varlistentry>
 
-</VariableList>
-</Para>
+</variablelist>
+</para>
 </chapter>
 
 <chapter id="install">
- <Title>Installation</Title>
+ <title>Installation</title>
 
-<Para>
+<para>
 Silicon Integrated System Corp. is cooperating closely with core Linux Kernel
 developers. The revisions of SiS 900 driver are distributed by the usuall 
channels
 for kernel tar files and patches. Those kernel tar files for official kernel 
and
 patches for kernel pre-release can be download at 
-<ULink URL="http://ftp.kernel.org/pub/linux/kernel/";>official kernel ftp 
site</ULink> 
+<ulink url="http://ftp.kernel.org/pub/linux/kernel/";>official kernel ftp 
site</ulink>
 and its mirrors.
 The 1.06 revision can be found in kernel version later than 2.3.15 and 
pre-2.2.14, 
 and 1.07 revision can be found in kernel version 2.4.0.
 If you have no prior experience in networking under Linux, please read
-<ULink URL="http://www.tldp.org/";>Ethernet HOWTO</ULink> and
-<ULink URL="http://www.tldp.org/";>Networking HOWTO</ULink> available from
+<ulink url="http://www.tldp.org/";>Ethernet HOWTO</ulink> and
+<ulink url="http://www.tldp.org/";>Networking HOWTO</ulink> available from
 Linux Documentation Project (LDP).
-</Para>
+</para>
 
-<Para>
+<para>
 The driver is bundled in release later than 2.2.11 and 2.3.15 so this 
 is the most easy case. 
 Be sure you have the appropriate packages for compiling kernel source.
@@ -338,63 +340,63 @@
 <filename>sis900.c</filename> and <filename>sis900.h</filename> 
 copied into <filename class="directory">/usr/src/linux/drivers/net/</filename> 
first.
 There are two alternative ways to install the driver
-</Para>
+</para>
 
-<Sect1>
-<Title>Building the driver as loadable module</Title>
+<sect1>
+<title>Building the driver as loadable module</title>
 
-<Para>
+<para>
 To build the driver as a loadable kernel module you have to reconfigure
 the kernel to activate network support by
-</Para>
+</para>
 
-<Para><screen>
+<para><screen>
 make menuconfig
-</screen></Para>
+</screen></para>
 
-<Para>
+<para>
 Choose <quote>Loadable module support  ---></quote>, 
 then select <quote>Enable loadable module support</quote>.
-</Para>
+</para>
 
-<Para>
+<para>
 Choose <quote>Network Device Support  ---></quote>, select 
 <quote>Ethernet (10 or 100Mbit)</quote>.
 Then select <quote>EISA, VLB, PCI and on board controllers</quote>, 
 and choose <quote>SiS 900/7016 PCI Fast Ethernet Adapter support</quote> 
 to <quote>M</quote>.
-</Para>
+</para>
 
-<Para>
+<para>
 After reconfiguring the kernel, you can make the driver module by
-</Para>
+</para>
 
-<Para><screen>
+<para><screen>
 make modules
-</screen></Para>
+</screen></para>
 
-<Para>
+<para>
 The driver should be compiled with no errors. After compiling the driver,
 the driver can be installed to proper place by
-</Para>
+</para>
 
-<Para><screen>
+<para><screen>
 make modules_install
-</screen></Para>
+</screen></para>
 
-<Para>
+<para>
 Load the driver into kernel by
-</Para>
+</para>
 
-<Para><screen>
+<para><screen>
 insmod sis900
-</screen></Para>
+</screen></para>
 
-<Para>
+<para>
 When loading the driver into memory, some information message can be view by
-</Para>
+</para>
 
-<Para>
+<para>
 <screen>
 dmesg
 </screen>
@@ -404,103 +406,103 @@
 <screen>
 cat /var/log/message
 </screen>
-</Para>
+</para>
 
-<Para>
+<para>
 If the driver is loaded properly you will have messages similar to this:
-</Para>
+</para>
 
-<Para><screen>
+<para><screen>
 sis900.c: v1.07.06  11/07/2000
 eth0: SiS 900 PCI Fast Ethernet at 0xd000, IRQ 10, 00:00:e8:83:7f:a4.
 eth0: SiS 900 Internal MII PHY transceiver found at address 1.
 eth0: Using SiS 900 Internal MII PHY as default
-</screen></Para>
+</screen></para>
 
-<Para>
+<para>
 showing the version of the driver and the results of probing routine.
-</Para>
+</para>
 
-<Para>
+<para>
 Once the driver is loaded, network can be brought up by
-</Para>
+</para>
 
-<Para><screen>
+<para><screen>
 /sbin/ifconfig eth0 IPADDR broadcast BROADCAST netmask NETMASK media TYPE
-</screen></Para>
+</screen></para>
 
-<Para>
+<para>
 where IPADDR, BROADCAST, NETMASK are your IP address, broadcast address and
 netmask respectively. TYPE is used to set medium type used by the device. 
 Typical values are "10baseT"(twisted-pair 10Mbps Ethernet) or "100baseT"
 (twisted-pair 100Mbps Ethernet). For more information on how to configure 
 network interface, please refer to  
-<ULink URL="http://www.tldp.org/";>Networking HOWTO</ULink>.
-</Para>
+<ulink url="http://www.tldp.org/";>Networking HOWTO</ulink>.
+</para>
 
-<Para>
+<para>
 The link status is also shown by kernel messages. For example, after the
 network interface is activated, you may have the message:
-</Para>
+</para>
 
-<Para><screen>
+<para><screen>
 eth0: Media Link On 100mbps full-duplex
-</screen></Para>
+</screen></para>
 
-<Para>
+<para>
 If you try to unplug the twist pair (TP) cable you will get
-</Para>
+</para>
 
-<Para><screen>
+<para><screen>
 eth0: Media Link Off
-</screen></Para>
+</screen></para>
 
-<Para>
+<para>
 indicating that the link is failed.
-</Para>
-</Sect1>
+</para>
+</sect1>
 
-<Sect1>
-<Title>Building the driver into kernel</Title>
+<sect1>
+<title>Building the driver into kernel</title>
 
-<Para>
+<para>
 If you want to make the driver into kernel, choose <quote>Y</quote> 
 rather than <quote>M</quote> on 
 <quote>SiS 900/7016 PCI Fast Ethernet Adapter support</quote> 
 when configuring the kernel. Build the kernel image in the usual way
-</Para>
+</para>
 
-<Para><screen>
+<para><screen>
 make clean
 
 make bzlilo
-</screen></Para>
+</screen></para>
 
-<Para>
+<para>
 Next time the system reboot, you have the driver in memory.
-</Para>
+</para>
 
-</Sect1>
+</sect1>
 </chapter>
 
 <chapter id="problems">
- <Title>Known Problems and Bugs</Title>
+ <title>Known Problems and Bugs</title>
 
-<Para>
+<para>
 There are some known problems and bugs. If you find any other bugs please 
-mail to <ULink URL="mailto:lcchang@sis.com.tw";>lcchang@sis.com.tw</ULink>
+mail to <ulink url="mailto:lcchang@sis.com.tw";>lcchang@sis.com.tw</ulink>
 
-<OrderedList>
+<orderedlist>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 AM79C901 HomePNA PHY is not thoroughly tested, there may be some 
 bugs in the <quote>on the fly</quote> change of transceiver. 
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 A bug is hidden somewhere in the receive buffer management code, 
 the bug causes NULL pointer reference in the kernel. This fault is 
 caught before bad things happen and reported with the message:
@@ -509,70 +511,70 @@
 eth0: NULL pointer encountered in Rx ring, skipping 
 </computeroutput>
 
-which can be viewed with <Literal remap="tt">dmesg</Literal> or 
-<Literal remap="tt">cat /var/log/message</Literal>.
-</Para>
-</ListItem>
+which can be viewed with <literal remap="tt">dmesg</literal> or
+<literal remap="tt">cat /var/log/message</literal>.
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 The media type change from 10Mbps to 100Mbps twisted-pair ethernet 
 by ifconfig causes the media link down.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-</OrderedList>
-</Para>
+</orderedlist>
+</para>
 </chapter>
 
 <chapter id="RHistory">
- <Title>Revision History</Title>
+ <title>Revision History</title>
 
-<Para>
-<ItemizedList>
+<para>
+<itemizedlist>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 November 13, 2000, Revision 1.07, seventh release, 630E problem fixed 
 and further clean up.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 November 4, 1999, Revision 1.06, Second release, lots of clean up
 and optimization.
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-<ListItem>
-<Para>
+<listitem>
+<para>
 August 8, 1999, Revision 1.05, Initial Public Release
-</Para>
-</ListItem>
+</para>
+</listitem>
 
-</ItemizedList>
-</Para>
+</itemizedlist>
+</para>
 </chapter>
 
 <chapter id="acknowledgements">
- <Title>Acknowledgements</Title>
+ <title>Acknowledgements</title>
 
-<Para>
+<para>
 This driver was originally derived form 
-<ULink URL="mailto:becker@cesdis1.gsfc.nasa.gov";>Donald Becker</ULink>'s
-<ULink 
URL="ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/kern-2.3/pci-skeleton.c";
->pci-skeleton</ULink> and
-<ULink URL="ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/kern-2.3/rtl8139.c";
->rtl8139</ULink> drivers. Donald also provided various suggestion
+<ulink url="mailto:becker@cesdis1.gsfc.nasa.gov";>Donald Becker</ulink>'s
+<ulink 
url="ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/kern-2.3/pci-skeleton.c";
+>pci-skeleton</ulink> and
+<ulink url="ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/kern-2.3/rtl8139.c";
+>rtl8139</ulink> drivers. Donald also provided various suggestion
 regarded with improvements made in revision 1.06.
-</Para>
+</para>
 
-<Para>
+<para>
 The 1.05 revision was created by 
-<ULink URL="mailto:cmhuang@sis.com.tw";>Jim Huang</ULink>, AMD 79c901 
-support was added by <ULink URL="mailto:lcs@sis.com.tw";>Chin-Shan Li</ULink>.
-</Para>
+<ulink url="mailto:cmhuang@sis.com.tw";>Jim Huang</ulink>, AMD 79c901
+support was added by <ulink url="mailto:lcs@sis.com.tw";>Chin-Shan Li</ulink>.
+</para>
 </chapter>
 
 <chapter id="functions">
diff -urN malta/linux/Documentation/DocBook/usb.tmpl 
malta/linux/Documentation/DocBook/usb.tmpl
--- malta/linux/Documentation/DocBook/usb.tmpl  2004/09/14 16:27:37     
1.2.1000.1
+++ malta/linux/Documentation/DocBook/usb.tmpl  2005/06/21 13:20:33     
1.2.1000.2
@@ -1,4 +1,7 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
+
 <book id="Linux-USB-API">
  <bookinfo>
   <title>The Linux-USB Host Side API</title>
diff -urN malta/linux/Documentation/DocBook/videobook.tmpl 
malta/linux/Documentation/DocBook/videobook.tmpl
--- malta/linux/Documentation/DocBook/videobook.tmpl    2004/09/14 16:27:37     
1.8.1000.2
+++ malta/linux/Documentation/DocBook/videobook.tmpl    2005/06/21 13:20:33     
1.8.1000.3
@@ -1,4 +1,6 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
 
 <book id="V4LGuide">
  <bookinfo>
@@ -180,23 +182,23 @@
    <tgroup cols="3" align="left">
    <tbody>
    <row>
-        <entry>VFL_TYPE_RADIO</><entry>/dev/radio{n}</><entry>
+        <entry>VFL_TYPE_RADIO</entry><entry>/dev/radio{n}</entry><entry>
 
         Radio devices are assigned in this block. As with all of these
         selections the actual number assignment is done by the video layer
         accordijng to what is free.</entry>
        </row><row>
-        <entry>VFL_TYPE_GRABBER</><entry>/dev/video{n}</><entry>
+        <entry>VFL_TYPE_GRABBER</entry><entry>/dev/video{n}</entry><entry>
         Video capture devices and also -- counter-intuitively for the name --
         hardware video playback devices such as MPEG2 cards.</entry>
        </row><row>
-        <entry>VFL_TYPE_VBI</><entry>/dev/vbi{n}</><entry>
+        <entry>VFL_TYPE_VBI</entry><entry>/dev/vbi{n}</entry><entry>
         The VBI devices capture the hidden lines on a television picture
         that carry further information like closed caption data, teletext
         (primarily in Europe) and now Intercast and the ATVEC internet
         television encodings.</entry>
        </row><row>
-        <entry>VFL_TYPE_VTX</><entry>/dev/vtx[n}</><entry>
+        <entry>VFL_TYPE_VTX</entry><entry>/dev/vtx[n}</entry><entry>
         VTX is 'Videotext' also known as 'Teletext'. This is a system for
         sending numbered, 40x25, mostly textual page images over the hidden
         lines. Unlike the /dev/vbi interfaces, this is for 'smart' decoder 
@@ -301,25 +303,25 @@
    <tgroup cols="2" align="left">
    <tbody>
    <row>
-        <entry>name</><entry>The device text name. This is intended for the 
user.</>
+        <entry>name</entry><entry>The device text name. This is intended for 
the user.</entry>
        </row><row>
-        <entry>channels</><entry>The number of different channels you can tune 
on
+        <entry>channels</entry><entry>The number of different channels you can 
tune on
                         this card. It could even by zero for a card that has
                         no tuning capability. For our simple FM radio it is 1. 
                         An AM/FM radio would report 2.</entry>
        </row><row>
-        <entry>audios</><entry>The number of audio inputs on this device. For 
our
+        <entry>audios</entry><entry>The number of audio inputs on this device. 
For our
                         radio there is only one audio input.</entry>
        </row><row>
-        <entry>minwidth,minheight</><entry>The smallest size the card is 
capable of capturing
+        <entry>minwidth,minheight</entry><entry>The smallest size the card is 
capable of capturing
                        images in. We set these to zero. Radios do not
                         capture pictures</entry>
        </row><row>
-        <entry>maxwidth,maxheight</><entry>The largest image size the card is 
capable of
+        <entry>maxwidth,maxheight</entry><entry>The largest image size the 
card is capable of
                                       capturing. For our radio we report 0.
                                </entry>
        </row><row>
-        <entry>type</><entry>This reports the capabilities of the device, and
+        <entry>type</entry><entry>This reports the capabilities of the device, 
and
                         matches the field we filled in in the struct
                         video_device when registering.</entry>
     </row>
@@ -375,26 +377,26 @@
    <tgroup cols="2" align="left">
    <tbody>
    <row>
-        <entry>int tuner</><entry>The number of the tuner in question</entry>
+        <entry>int tuner</entry><entry>The number of the tuner in 
question</entry>
    </row><row>
-        <entry>char name[32]</><entry>A text description of this tuner. "FM" 
will do fine.
+        <entry>char name[32]</entry><entry>A text description of this tuner. 
"FM" will do fine.
                         This is intended for the application.</entry>
    </row><row>
-        <entry>u32 flags</>
+        <entry>u32 flags</entry>
         <entry>Tuner capability flags</entry>
    </row>
    <row>
-        <entry>u16 mode</><entry>The current reception mode</entry>
+        <entry>u16 mode</entry><entry>The current reception mode</entry>
 
    </row><row>
-        <entry>u16 signal</><entry>The signal strength scaled between 0 and 
65535. If
+        <entry>u16 signal</entry><entry>The signal strength scaled between 0 
and 65535. If
                         a device cannot tell the signal strength it should
                         report 65535. Many simple cards contain only a 
                         signal/no signal bit. Such cards will report either
                         0 or 65535.</entry>
 
    </row><row>
-        <entry>u32 rangelow, rangehigh</><entry>
+        <entry>u32 rangelow, rangehigh</entry><entry>
                         The range of frequencies supported by the radio
                         or TV. It is scaled according to the VIDEO_TUNER_LOW
                         flag.</entry>
@@ -408,20 +410,20 @@
    <tgroup cols="2" align="left">
    <tbody>
    <row>
-       <entry>VIDEO_TUNER_PAL</><entry>A PAL TV tuner</entry>
+       <entry>VIDEO_TUNER_PAL</entry><entry>A PAL TV tuner</entry>
        </row><row>
-        <entry>VIDEO_TUNER_NTSC</><entry>An NTSC (US) TV tuner</entry>
+        <entry>VIDEO_TUNER_NTSC</entry><entry>An NTSC (US) TV tuner</entry>
        </row><row>
-        <entry>VIDEO_TUNER_SECAM</><entry>A SECAM (French) TV tuner</entry>
+        <entry>VIDEO_TUNER_SECAM</entry><entry>A SECAM (French) TV 
tuner</entry>
        </row><row>
-        <entry>VIDEO_TUNER_LOW</><entry>
+        <entry>VIDEO_TUNER_LOW</entry><entry>
              The tuner frequency is scaled in 1/16th of a KHz
              steps. If not it is in 1/16th of a MHz steps
        </entry>
        </row><row>
-        <entry>VIDEO_TUNER_NORM</><entry>The tuner can set its format</entry>
+        <entry>VIDEO_TUNER_NORM</entry><entry>The tuner can set its 
format</entry>
        </row><row>
-        <entry>VIDEO_TUNER_STEREO_ON</><entry>The tuner is currently receiving 
a stereo signal</entry>
+        <entry>VIDEO_TUNER_STEREO_ON</entry><entry>The tuner is currently 
receiving a stereo signal</entry>
         </row>
     </tbody>
     </tgroup>
@@ -431,13 +433,13 @@
    <tgroup cols="2" align="left">
    <tbody>
    <row>
-                <entry>VIDEO_MODE_PAL</><entry>PAL Format</entry>
+                <entry>VIDEO_MODE_PAL</entry><entry>PAL Format</entry>
    </row><row>
-                <entry>VIDEO_MODE_NTSC</><entry>NTSC Format (USA)</entry>
+                <entry>VIDEO_MODE_NTSC</entry><entry>NTSC Format (USA)</entry>
    </row><row>
-                <entry>VIDEO_MODE_SECAM</><entry>French Format</entry>
+                <entry>VIDEO_MODE_SECAM</entry><entry>French Format</entry>
    </row><row>
-                <entry>VIDEO_MODE_AUTO</><entry>A device that does not need to 
do
+                <entry>VIDEO_MODE_AUTO</entry><entry>A device that does not 
need to do
                                         TV format switching</entry>
    </row>
     </tbody>
@@ -521,7 +523,7 @@
                         if(copy_from_user(arg, &amp;freq, 
                                 sizeof(unsigned long))!=0)
                                 return -EFAULT;
-                        if(hardware_set_freq(freq)<0)
+                        if(hardware_set_freq(freq)&lt;0)
                                 return -EINVAL;
                         current_freq = freq;
                         return 0;
@@ -582,32 +584,32 @@
    <tgroup cols="2" align="left">
    <tbody>
    <row>
-   <entry>audio</><entry>The input the user wishes to query</>
+   <entry>audio</entry><entry>The input the user wishes to query</entry>
    </row><row>
-   <entry>volume</><entry>The volume setting on a scale of 0-65535</>
+   <entry>volume</entry><entry>The volume setting on a scale of 0-65535</entry>
    </row><row>
-   <entry>base</><entry>The base level on a scale of 0-65535</>
+   <entry>base</entry><entry>The base level on a scale of 0-65535</entry>
    </row><row>
-   <entry>treble</><entry>The treble level on a scale of 0-65535</>
+   <entry>treble</entry><entry>The treble level on a scale of 0-65535</entry>
    </row><row>
-   <entry>flags</><entry>The features this audio device supports
+   <entry>flags</entry><entry>The features this audio device supports
    </entry>
    </row><row>
-   <entry>name</><entry>A text name to display to the user. We picked 
-                        "Radio" as it explains things quite nicely.</>
+   <entry>name</entry><entry>A text name to display to the user. We picked
+                        "Radio" as it explains things quite nicely.</entry>
    </row><row>
-   <entry>mode</><entry>The current reception mode for the audio
+   <entry>mode</entry><entry>The current reception mode for the audio
 
                 We report MONO because our card is too stupid to know if it is 
in
                 mono or stereo. 
    </entry>
    </row><row>
-   <entry>balance</><entry>The stereo balance on a scale of 0-65535, 32768 is
-                        middle.</>
+   <entry>balance</entry><entry>The stereo balance on a scale of 0-65535, 
32768 is
+                        middle.</entry>
    </row><row>
-   <entry>step</><entry>The step by which the volume control jumps. This is
+   <entry>step</entry><entry>The step by which the volume control jumps. This 
is
                         used to help make it easy for applications to set 
-                        slider behaviour.</>   
+                        slider behaviour.</entry>
    </row>
    </tbody>
    </tgroup>
@@ -617,15 +619,15 @@
    <tgroup cols="2" align="left">
    <tbody>
    <row>
-                <entry>VIDEO_AUDIO_MUTE</><entry>The audio is currently muted. 
We
+                <entry>VIDEO_AUDIO_MUTE</entry><entry>The audio is currently 
muted. We
                                         could fake this in our driver but we
                                         choose not to bother.</entry>
    </row><row>
-                <entry>VIDEO_AUDIO_MUTABLE</><entry>The input has a mute 
option</entry>
+                <entry>VIDEO_AUDIO_MUTABLE</entry><entry>The input has a mute 
option</entry>
    </row><row>
-                <entry>VIDEO_AUDIO_TREBLE</><entry>The  input has a treble 
control</entry>
+                <entry>VIDEO_AUDIO_TREBLE</entry><entry>The  input has a 
treble control</entry>
    </row><row>
-                <entry>VIDEO_AUDIO_BASS</><entry>The input has a base 
control</entry>
+                <entry>VIDEO_AUDIO_BASS</entry><entry>The input has a base 
control</entry>
    </row>
    </tbody>
    </tgroup>
@@ -635,13 +637,13 @@
    <tgroup cols="2" align="left">
    <tbody>
    <row>
-                <entry>VIDEO_SOUND_MONO</><entry>Mono sound</entry>
+                <entry>VIDEO_SOUND_MONO</entry><entry>Mono sound</entry>
    </row><row>
-                <entry>VIDEO_SOUND_STEREO</><entry>Stereo sound</entry>
+                <entry>VIDEO_SOUND_STEREO</entry><entry>Stereo sound</entry>
    </row><row>
-                <entry>VIDEO_SOUND_LANG1</><entry>Alternative language 1 (TV 
specific)</entry>
+                <entry>VIDEO_SOUND_LANG1</entry><entry>Alternative language 1 
(TV specific)</entry>
    </row><row>
-                <entry>VIDEO_SOUND_LANG2</><entry>Alternative language 2 (TV 
specific)</entry>
+                <entry>VIDEO_SOUND_LANG2</entry><entry>Alternative language 2 
(TV specific)</entry>
    </row>
    </tbody>
    </tgroup>
@@ -731,13 +733,14 @@
 
 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 +751,26 @@
         return myradio_init(NULL);
 }
 
-void cleanup_module(void)
+static void __exit cleanup(void)
 {
         video_unregister_device(&amp;my_radio);
         release_region(io, MY_IO_SIZE);
 }
 
-#endif
+module_init(init);
+module_exit(cleanup);
 
   </programlisting>
   <para>
         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 <filename>my_radio.c</filename>. 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.
   </para>
   <para>
         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.
   </para>
   <para>
         The clean-up routine unregisters the video_device we registered, and 
frees
@@ -864,37 +868,37 @@
    <tgroup cols="2" align="left">
    <tbody>
    <row>
-<entry>VID_TYPE_CAPTURE</><entry>We support image capture</>
+<entry>VID_TYPE_CAPTURE</entry><entry>We support image capture</entry>
 </row><row>
-<entry>VID_TYPE_TELETEXT</><entry>A teletext capture device (vbi{n])</>
+<entry>VID_TYPE_TELETEXT</entry><entry>A teletext capture device 
(vbi{n])</entry>
 </row><row>
-<entry>VID_TYPE_OVERLAY</><entry>The image can be directly overlaid onto the
-                                frame buffer</>
+<entry>VID_TYPE_OVERLAY</entry><entry>The image can be directly overlaid onto 
the
+                                frame buffer</entry>
 </row><row>
-<entry>VID_TYPE_CHROMAKEY</><entry>Chromakey can be used to select which parts
-                                of the image to display</>
+<entry>VID_TYPE_CHROMAKEY</entry><entry>Chromakey can be used to select which 
parts
+                                of the image to display</entry>
 </row><row>
-<entry>VID_TYPE_CLIPPING</><entry>It is possible to give the board a list of
-                                rectangles to draw around. </>
+<entry>VID_TYPE_CLIPPING</entry><entry>It is possible to give the board a list 
of
+                                rectangles to draw around. </entry>
 </row><row>
-<entry>VID_TYPE_FRAMERAM</><entry>The video capture goes into the video memory
+<entry>VID_TYPE_FRAMERAM</entry><entry>The video capture goes into the video 
memory
                                 and actually changes it. Applications need
                                 to know this so they can clean up after the
-                                card</>
+                                card</entry>
 </row><row>
-<entry>VID_TYPE_SCALES</><entry>The image can be scaled to various sizes,
-                                rather than being a single fixed size.</>
+<entry>VID_TYPE_SCALES</entry><entry>The image can be scaled to various sizes,
+                                rather than being a single fixed size.</entry>
 </row><row>
-<entry>VID_TYPE_MONOCHROME</><entry>The capture will be monochrome. This isn't 
a 
+<entry>VID_TYPE_MONOCHROME</entry><entry>The capture will be monochrome. This 
isn't a
                                 complete answer to the question since a mono
                                 camera on a colour capture card will still
-                                produce mono output.</>
+                                produce mono output.</entry>
 </row><row>
-<entry>VID_TYPE_SUBCAPTURE</><entry>The card allows only part of its field of
+<entry>VID_TYPE_SUBCAPTURE</entry><entry>The card allows only part of its 
field of
                                 view to be captured. This enables
                                 applications to avoid copying all of a large
                                 image into memory when only some section is
-                                relevant.</>
+                                relevant.</entry>
     </row>
     </tbody>
     </tgroup>
@@ -1205,18 +1209,18 @@
    <tbody>
    <row>
 
-   <entry>channel</><entry>The channel number we are selecting</entry>
+   <entry>channel</entry><entry>The channel number we are selecting</entry>
    </row><row>
-   <entry>name</><entry>The name for this channel. This is intended
+   <entry>name</entry><entry>The name for this channel. This is intended
                    to describe the port to the user.
                    Appropriate names are therefore things like
                    "Camera" "SCART input"</entry>
    </row><row>
-   <entry>flags</><entry>Channel properties</entry>
+   <entry>flags</entry><entry>Channel properties</entry>
    </row><row>
-   <entry>type</><entry>Input type</entry>
+   <entry>type</entry><entry>Input type</entry>
    </row><row>
-   <entry>norm</><entry>The current television encoding being used
+   <entry>norm</entry><entry>The current television encoding being used
                    if relevant for this channel.
     </entry>
     </row>
@@ -1227,9 +1231,9 @@
     <tgroup cols="2" align="left">
     <tbody>
     <row>
-        <entry>VIDEO_VC_TUNER</><entry>Channel has a tuner.</entry>
+        <entry>VIDEO_VC_TUNER</entry><entry>Channel has a tuner.</entry>
    </row><row>
-        <entry>VIDEO_VC_AUDIO</><entry>Channel has audio.</entry>
+        <entry>VIDEO_VC_AUDIO</entry><entry>Channel has audio.</entry>
     </row>
     </tbody>
     </tgroup>
@@ -1238,11 +1242,11 @@
     <tgroup cols="2" align="left">
     <tbody>
     <row>
-        <entry>VIDEO_TYPE_TV</><entry>Television input.</entry>
+        <entry>VIDEO_TYPE_TV</entry><entry>Television input.</entry>
    </row><row>
-        <entry>VIDEO_TYPE_CAMERA</><entry>Fixed camera input.</entry>
+        <entry>VIDEO_TYPE_CAMERA</entry><entry>Fixed camera input.</entry>
    </row><row>
-       <entry>0</><entry>Type is unknown.</entry>
+       <entry>0</entry><entry>Type is unknown.</entry>
     </row>
     </tbody>
     </tgroup>
@@ -1251,13 +1255,13 @@
     <tgroup cols="2" align="left">
     <tbody>
     <row>
-        <entry>VIDEO_MODE_PAL</><entry>PAL encoded Television</entry>
+        <entry>VIDEO_MODE_PAL</entry><entry>PAL encoded Television</entry>
    </row><row>
-        <entry>VIDEO_MODE_NTSC</><entry>NTSC (US) encoded Television</entry>
+        <entry>VIDEO_MODE_NTSC</entry><entry>NTSC (US) encoded 
Television</entry>
    </row><row>
-        <entry>VIDEO_MODE_SECAM</><entry>SECAM (French) Television </entry>
+        <entry>VIDEO_MODE_SECAM</entry><entry>SECAM (French) Television 
</entry>
    </row><row>
-        <entry>VIDEO_MODE_AUTO</><entry>Automatic switching, or format does not
+        <entry>VIDEO_MODE_AUTO</entry><entry>Automatic switching, or format 
does not
                                 matter</entry>
     </row>
     </tbody>
@@ -1337,14 +1341,14 @@
    <tgroup cols="2" align="left">
    <tbody>
    <row>
-   <entry>GREY</><entry>Linear greyscale. This is for simple cameras and the
-                        like</>
+   <entry>GREY</entry><entry>Linear greyscale. This is for simple cameras and 
the
+                        like</entry>
    </row><row>
-   <entry>RGB565</><entry>The top 5 bits hold 32 red levels, the next six bits 
-                        hold green and the low 5 bits hold blue. </>
+   <entry>RGB565</entry><entry>The top 5 bits hold 32 red levels, the next six 
bits
+                        hold green and the low 5 bits hold blue. </entry>
    </row><row>
-   <entry>RGB555</><entry>The top bit is clear. The red green and blue levels
-                        each occupy five bits.</>
+   <entry>RGB555</entry><entry>The top bit is clear. The red green and blue 
levels
+                        each occupy five bits.</entry>
     </row>
     </tbody>
     </tgroup>
@@ -1475,32 +1479,32 @@
    <tgroup cols="2" align="left">
    <tbody>
    <row>
-        <entry>width</><entry>The width in pixels of the desired image. The 
card
-                        may use a smaller size if this size is not available</>
+        <entry>width</entry><entry>The width in pixels of the desired image. 
The card
+                        may use a smaller size if this size is not 
available</entry>
        </row><row>
-        <entry>height</><entry>The height of the image. The card may use a 
smaller
-                        size if this size is not available.</>
+        <entry>height</entry><entry>The height of the image. The card may use 
a smaller
+                        size if this size is not available.</entry>
        </row><row>
-        <entry>x</><entry>   The X position of the top left of the window. This
+        <entry>x</entry><entry>   The X position of the top left of the 
window. This
                         is in pixels relative to the left hand edge of the
                         picture. Not all cards can display images aligned on
                         any pixel boundary. If the position is unsuitable
                         the card adjusts the image right and reduces the
-                        width.</>
+                        width.</entry>
        </row><row>
-        <entry>y</><entry>   The Y position of the top left of the window. This
+        <entry>y</entry><entry>   The Y position of the top left of the 
window. This
                         is counted in pixels relative to the top edge of the
                         picture. As with the width if the card cannot
                         display  starting on this line it will adjust the
-                        values.</>
+                        values.</entry>
        </row><row>
-        <entry>chromakey</><entry>The colour (expressed in RGB32 format) for 
the
-                        chromakey colour if chroma keying is being used. </>
+        <entry>chromakey</entry><entry>The colour (expressed in RGB32 format) 
for the
+                        chromakey colour if chroma keying is being used. 
</entry>
        </row><row>
-        <entry>clips</><entry>An array of rectangles that must not be drawn
-                       over.</>
+        <entry>clips</entry><entry>An array of rectangles that must not be 
drawn
+                       over.</entry>
        </row><row>
-        <entry>clipcount</><entry>The number of clips in this array.</>
+        <entry>clipcount</entry><entry>The number of clips in this 
array.</entry>
     </row>
     </tbody>
     </tgroup>
@@ -1512,11 +1516,11 @@
    <tgroup cols="2" align="left">
    <tbody>
    <row>
-        <entry>x, y</><entry>Co-ordinates relative to the display</>
+        <entry>x, y</entry><entry>Co-ordinates relative to the display</entry>
        </row><row>
-        <entry>width, height</><entry>Width and height in pixels</>
+        <entry>width, height</entry><entry>Width and height in pixels</entry>
        </row><row>
-        <entry>next</><entry>A spare field for the application to use</>
+        <entry>next</entry><entry>A spare field for the application to 
use</entry>
     </row>
     </tbody>
     </tgroup>
@@ -1548,9 +1552,9 @@
                         struct video_window v;
                         if(copy_from_user(&amp;v, arg, sizeof(v)))
                                 return -EFAULT;
-                        if(v.width > 640 || v.height > 480)
+                        if(v.width &gt; 640 || v.height &gt; 480)
                                 return -EINVAL;
-                        if(v.width < 16 || v.height < 16)
+                        if(v.width &lt; 16 || v.height &lt; 16)
                                 return -EINVAL;
                         hardware_set_key(v.chromakey);
                         hardware_set_window(v);
diff -urN malta/linux/Documentation/DocBook/wanbook.tmpl 
malta/linux/Documentation/DocBook/wanbook.tmpl
--- malta/linux/Documentation/DocBook/wanbook.tmpl      2000/03/19 01:28:42     
1.1
+++ malta/linux/Documentation/DocBook/wanbook.tmpl      2005/06/21 13:20:33     
1.1.1000.1
@@ -1,4 +1,6 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
 
 <book id="WANGuide">
  <bookinfo>
diff -urN malta/linux/Documentation/DocBook/writing_usb_driver.tmpl 
malta/linux/Documentation/DocBook/writing_usb_driver.tmpl
--- malta/linux/Documentation/DocBook/writing_usb_driver.tmpl   2003/09/30 
14:27:15     1.4
+++ malta/linux/Documentation/DocBook/writing_usb_driver.tmpl   2005/06/21 
13:20:33     1.4.1000.1
@@ -1,4 +1,6 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
 
 <book id="USBDeviceDriver">
  <bookinfo>
diff -urN malta/linux/Documentation/DocBook/z8530book.tmpl 
malta/linux/Documentation/DocBook/z8530book.tmpl
--- malta/linux/Documentation/DocBook/z8530book.tmpl    2001/01/11 04:02:41     
1.2
+++ malta/linux/Documentation/DocBook/z8530book.tmpl    2005/06/21 13:20:33     
1.2.1000.1
@@ -1,4 +1,6 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+       "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; []>
 
 <book id="Z85230Guide">
  <bookinfo>
diff -urN malta/linux/Documentation/DocBook/mousedrivers.tmpl 
malta/linux/Documentation/DocBook/mousedrivers.tmpl
--- malta/linux/Documentation/DocBook/Attic/mousedrivers.tmpl   2005-06-21 
14:20:33.746525000 +0100     1.4.1000.1
+++ malta/linux/Documentation/DocBook/Attic/mousedrivers.tmpl   1970/01/01 
00:00:00+0100
@@ -1,1023 +0,0 @@
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[]>
-
-<book id="MouseGuide">
- <bookinfo>
-  <title>Mouse Drivers</title>
-  
-  <authorgroup>
-   <author>
-    <firstname>Alan</firstname>
-    <surname>Cox</surname>
-    <affiliation>
-     <address>
-      <email>alan@redhat.com</email>
-     </address>
-    </affiliation>
-   </author>
-  </authorgroup>
-
-  <copyright>
-   <year>2000</year>
-   <holder>Alan Cox</holder>
-  </copyright>
-
-  <legalnotice>
-   <para>
-     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.
-   </para>
-      
-   <para>
-     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.
-   </para>
-      
-   <para>
-     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
-   </para>
-      
-   <para>
-     For more details see the file COPYING in the source
-     distribution of Linux.
-   </para>
-  </legalnotice>
- </bookinfo>
-
- <toc></toc>
-
- <chapter id="intro">
-  <title>Introduction</title>
-  <note>
-   <title>Earlier publication</title>
-    <para>
-      Parts of this document first appeared in Linux Magazine under a
-      ninety day exclusivity.
-   </para>
-  </note> 
-
-  <para>
-    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.
-  </para>
-
-  <para>
-    The kernel mouse drivers and userspace drivers for the serial mice are
-    all managed by a system daemon called <application>gpm</application> 
-    - the general purpose mouse driver. <application>gpm</application> 
-    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 
-    <application>X Window System</application> user interface.
-  </para>
-  <para>
-    Sometimes a mouse speaks a sufficiently convoluted protocol that the
-    protocol is handled by <application>Gpm</application> itself. Most 
-    of the mouse drivers follow a common interface called the bus mouse 
-    protocol.
-  </para>
-  <para>
-    Each read from a bus mouse interface device returns a block of data. 
-    The first three bytes of each read are defined as follows: 
-
-   <table frame="all">
-    <title>Mouse Data Encoding</title>
-    <tgroup cols="2" align="left">
-     <tbody>
-      <row>
-       <entry>Byte 0</entry>
-       <entry>0x80 + the buttons currently down.</entry>
-      </row>
-      <row>
-       <entry>Byte 1</entry>
-       <entry>A signed value for the shift in X position</entry>
-      </row>
-      <row>
-       <entry>Byte 2</entry>
-       <entry>A signed value for the shift in Y position</entry>
-      </row>
-     </tbody>
-    </tgroup>
-   </table>
-
-    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.
-  </para>
-  <para>
-    The position values are truncated if they exceed the 8bit range (that
-    is -127 &lt;= delta &lt;= 127). While the value -128 does fit into a 
-    byte is not allowed.
-  </para>
-  <para>
-    The <mousebutton>buttons</mousebutton> 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.
-  </para>
-  <para>
-    All mice are required to support the <function>poll</function> 
-    operation. Indeed pretty much every user of a mouse device uses 
-    <function>poll</function> to wait for mouse events to occur.
-  </para>
-  <para>
-    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.
-  </para>
- </chapter>
-
- <chapter id="driver">
-  <title>A simple mouse driver</title>
-  <para>
-    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.
-  </para>
-
-  <programlisting>
-#define OURMOUSE_BASE        0x300
-
-static struct miscdevice our_mouse = {
-        OURMOUSE_MINOR, "ourmouse", &amp;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(&amp;our_mouse) < 0) {
-               printk(KERN_ERR "ourmouse: cannot register misc device.\n");
-               release_region(OURMOUSE_BASE, 3);
-               return -EBUSY;
-       }
-
-        return 0;
-}
-  </programlisting>
-
-  <para>
-    The <structname>miscdevice</structname> 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.
-  </para>
-  <para>
-    Minor numbers in this space are allocated by a central source, although 
-    you can look in the kernel <filename>Documentation/devices.txt</filename>
-    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.
-  </para>
-  <para>
-    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). 
-  </para>
-  <para>
-    Then we ask the misc driver to allocate our minor device number. We also
-    hand it our name (which is used in 
-    <filename class="directory">/proc/misc</filename>) 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).
-  </para>
-  <para>
-    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:
-  </para>
-  <programlisting>
-#ifdef MODULE
-
-int init_module(void)
-{
-        if(ourmouse_init()&lt;0)
-                return -ENODEV:
-        return 0;
-}
-
-void cleanup_module(void)
-{
-        misc_deregister(&amp;our_mouse);
-        free_region(OURMOUSE_BASE, 3);
-}
-
-
-#endif
-  </programlisting>
-
-  <para>
-    The module code provides the normal two functions. The 
-    <function>init_module</function> 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.
-  </para>
-  <para>
-    The <function>cleanup_module</function> 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.
-  </para>
-  <para>
-    Once the <function>misc_deregister</function> has been called any 
-    attempts to open the mouse device will fail with the error  
-    <errorcode>ENODEV</errorcode> (<errorname>No such device</errorname>).
-  </para>
-  <para>
-    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:
-  </para>
-
-  <programlisting>
-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 */
-};
-  </programlisting>
-
-  <para>
-    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.
-  </para>
-  <para>
-    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.
-  </para>
-  <para>
-    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.
-  </para>
-  <para>
-    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. 
-  </para>
-
-  <programlisting>
-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;
-}
-  </programlisting>
-  <para>
-    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
-    <returnvalue>0</returnvalue> for success.
-  </para>
-  <para>
-    We grab the interrupt and thus start mouse interrupts. If the interrupt 
-    has been borrowed by some other driver then 
<function>request_irq</function>
-    will fail and we will return an error. If we were capable of sharing an 
-    interrupt line we would specify <constant>SA_SHIRQ</constant> instead of 
-    <constant>zero</constant>. Provided that everyone claiming an interrupt 
-    sets this flag, they get to share the line. <hardware>PCI</hardware> can 
-    share interrupts, <hardware>ISA</hardware> normally however cannot. 
-  </para>
-  <para>
-    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.
-  </para>
-  <para>
-    The release function needs to unwind all these:
-  </para>
-  <programlisting>
-static int close_mouse(struct inode *inode, struct file *file)
-{
-        if(--mouse_users)
-                return 0;
-        free_irq(OURMOUSE_IRQ, NULL);
-        return 0;
-}
-  </programlisting>
-  <para>
-    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.
-  </para>
-  <para>
-    We can fill in the write handler at this point as the write function for 
-    our mouse simply declines to allow writes:
-  </para>
-
-  <programlisting>
-static ssize_t write_mouse(struct file *file, const char *buffer, size_t
-                                count, loff_t *ppos)
-{
-        return -EINVAL;
-}
-  </programlisting>
-
-  <para>
-    This is pretty much self-explanatory. Whenever you write you get told 
-    it was an invalid function.
-  </para>
-  <para>
-    To make the poll and read functions work we have to consider how we 
-    handle the mouse interrupt. 
-  </para>
-
-  <programlisting>
-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(&amp;mouse_lock);
-                mouse_event = 1;
-                mouse_dx += delta_x;
-                mouse_dy += delta_y;
-                mouse_buttons = new_buttons;
-                spin_unlock(&amp;mouse_lock);
-                
-                wake_up_interruptible(&amp;mouse_wait);
-        }
-}
-  </programlisting>
-
-  <para>
-    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. 
-  </para>
-  <para>
-    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.
-  </para>
-  <para>
-    If a change has occurred we also need to wake sleeping processes, so we 
-    add a wakeup call and a <structname>wait_queue</structname> to use when 
-    we wish to await a mouse event.
-  </para>
-  <para>
-    Now we have the wait queue we can implement the poll function for the 
-    mouse relatively easily:
-  </para>
-
-  <programlisting>
-static unsigned int mouse_poll(struct file *file, poll_table *wait)
-{
-        poll_wait(file, &amp;mouse_wait, wait);
-        if(mouse_event)
-                return POLLIN | POLLRDNORM;
-        return 0;
-}
-  </programlisting>
-
-  <para>
-    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 
-    <varname>mouse_event</varname> 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.
-  </para>
-  <para>
-    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 
-    <function>poll</function> call will exit back to the user.
-  </para>
-  <para>
-    After the poll completes the user will want to read the data. We now 
-    need to think about how our <function>mouse_read</function> function 
-    will work:
-  </para>
-  <programlisting>
-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&lt;3)
-                return -EINVAL;
-
-        /*
-          *        Wait for an event
-         */
-
-        while(!mouse_event)
-        {
-                if(file-&gt;f_flags&amp;O_NDELAY)
-                        return -EAGAIN;
-                interruptible_sleep_on(&amp;mouse_wait);
-                if(signal_pending(current))
-                        return -ERESTARTSYS;
-        }
-  </programlisting>
-
-  <para>
-    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.
-  </para>
-  <para>
-    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. 
-  </para>
-  <para>
-    A user process can set the <constant>O_NDELAY</constant> 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. 
-  </para>
-  <para>
-    Next we sleep until the mouse or a signal awakens us. A signal will 
-    awaken us as we have used <function>wakeup_interruptible</function>. 
-    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.
-  </para>
-  <para>
-    This code contains a classic Linux bug. All will be revealed later in this
-    article as well as explanations for how to avoid it.
-  </para>
-  <programlisting>
-        /* Grab the event */
-
-        spinlock_irqsave(&amp;mouse_lock, flags);
-
-        dx = mouse_dx;
-        dy = mouse_dy;
-        button = mouse_buttons;
-
-        if(dx&lt;=-127)
-                dx=-127;
-        if(dx&gt;=127)
-                dx=127;
-        if(dy&lt;=-127)
-                dy=-127;
-        if(dy&gt;=127)
-                dy=127;
-
-        mouse_dx -= dx;
-        mouse_dy -= dy;
-        
-        if(mouse_dx == 0 &amp;&amp; mouse_dy == 0)
-                mouse_event = 0;
-
-        spin_unlock_irqrestore(&amp;mouse_lock, flags);
-  </programlisting>
-  <para>
-    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 <function>spinlock_irqsave</function>. We 
-    need to disable interrupts on the local processor otherwise bad things 
-    will happen.
-  </para>
-  <para>
-    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.
-  </para>
-  <para>
-    By blocking the interrupt on this processor we ensure that the lock 
-    holder will always give the lock back without deadlocking.
-  </para>
-  <para>
-    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 
-    <varname>mouse_dx</varname> and <varname>mouse_dy</varname>. Eventually 
-    when these counts hit zero we clear the <varname>mouse_event</varname>
-    flag as there is nothing else left to report.
-  </para>
-
-  <programlisting>
-        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 -EFA