]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
Pull kmalloc into release branch
authorLen Brown <len.brown@intel.com>
Sat, 1 Jul 2006 00:07:01 +0000 (20:07 -0400)
committerLen Brown <len.brown@intel.com>
Sat, 1 Jul 2006 00:07:01 +0000 (20:07 -0400)
3265 files changed:
Documentation/DocBook/mtdnand.tmpl
Documentation/IPMI.txt
Documentation/arm/IXP4xx
Documentation/digiepca.txt
Documentation/filesystems/configfs/configfs_example.c
Documentation/memory-barriers.txt
Documentation/networking/pktgen.txt
Documentation/pcmcia/crc32hash.c [new file with mode: 0644]
Documentation/pcmcia/devicetable.txt
Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
Documentation/sysctl/vm.txt
Documentation/video4linux/CARDLIST.cx88
MAINTAINERS
arch/alpha/kernel/alpha_ksyms.c
arch/alpha/kernel/console.c
arch/alpha/kernel/entry.S
arch/alpha/kernel/gct.c
arch/alpha/kernel/head.S
arch/alpha/kernel/irq.c
arch/alpha/kernel/irq_alpha.c
arch/alpha/kernel/irq_i8259.c
arch/alpha/kernel/machvec_impl.h
arch/alpha/kernel/pci.c
arch/alpha/kernel/process.c
arch/alpha/kernel/proto.h
arch/alpha/kernel/smc37c93x.c
arch/alpha/kernel/srm_env.c
arch/alpha/kernel/srmcons.c
arch/alpha/kernel/sys_alcor.c
arch/alpha/kernel/sys_cabriolet.c
arch/alpha/kernel/sys_dp264.c
arch/alpha/kernel/sys_eb64p.c
arch/alpha/kernel/sys_mikasa.c
arch/alpha/kernel/sys_noritake.c
arch/alpha/kernel/sys_sable.c
arch/alpha/kernel/sys_sio.c
arch/alpha/kernel/sys_titan.c
arch/alpha/kernel/time.c
arch/alpha/kernel/traps.c
arch/alpha/kernel/vmlinux.lds.S
arch/alpha/lib/callback_srm.S
arch/alpha/lib/udelay.c
arch/alpha/mm/extable.c
arch/alpha/mm/fault.c
arch/alpha/mm/init.c
arch/alpha/mm/numa.c
arch/arm/boot/compressed/head-clps7500.S
arch/arm/boot/compressed/head-l7200.S
arch/arm/boot/compressed/head-sa1100.S
arch/arm/boot/compressed/head-sharpsl.S
arch/arm/boot/compressed/head-xscale.S
arch/arm/boot/compressed/head.S
arch/arm/common/locomo.c
arch/arm/common/sa1111.c
arch/arm/common/uengine.c
arch/arm/common/via82c505.c
arch/arm/kernel/apm.c
arch/arm/kernel/bios32.c
arch/arm/kernel/compat.c
arch/arm/kernel/debug.S
arch/arm/kernel/ecard.c
arch/arm/kernel/entry-armv.S
arch/arm/kernel/entry-common.S
arch/arm/kernel/entry-header.S
arch/arm/kernel/head-nommu.S
arch/arm/kernel/head.S
arch/arm/kernel/irq.c
arch/arm/kernel/module.c
arch/arm/kernel/process.c
arch/arm/kernel/ptrace.c
arch/arm/kernel/setup.c
arch/arm/kernel/signal.c
arch/arm/kernel/smp.c
arch/arm/kernel/time.c
arch/arm/kernel/traps.c
arch/arm/kernel/vmlinux.lds.S
arch/arm/lib/backtrace.S
arch/arm/lib/bitops.h
arch/arm/lib/ucmpdi2.S
arch/arm/mach-aaec2000/core.c
arch/arm/mach-at91rm9200/board-csb337.c
arch/arm/mach-at91rm9200/board-csb637.c
arch/arm/mach-at91rm9200/board-dk.c
arch/arm/mach-at91rm9200/board-ek.c
arch/arm/mach-at91rm9200/common.c
arch/arm/mach-at91rm9200/devices.c
arch/arm/mach-at91rm9200/irq.c
arch/arm/mach-at91rm9200/leds.c
arch/arm/mach-at91rm9200/time.c
arch/arm/mach-clps711x/fortunet.c
arch/arm/mach-clps711x/p720t.c
arch/arm/mach-ep93xx/core.c
arch/arm/mach-ep93xx/gesbc9312.c
arch/arm/mach-ep93xx/ts72xx.c
arch/arm/mach-footbridge/common.c
arch/arm/mach-footbridge/dma.c
arch/arm/mach-footbridge/ebsa285-leds.c
arch/arm/mach-footbridge/netwinder-hw.c
arch/arm/mach-footbridge/netwinder-leds.c
arch/arm/mach-h720x/h7201-eval.c
arch/arm/mach-h720x/h7202-eval.c
arch/arm/mach-imx/time.c
arch/arm/mach-integrator/pci_v3.c
arch/arm/mach-iop3xx/common.c
arch/arm/mach-iop3xx/iop321-setup.c
arch/arm/mach-iop3xx/iop331-setup.c
arch/arm/mach-ixp2000/core.c
arch/arm/mach-ixp2000/enp2611.c
arch/arm/mach-ixp2000/ixdp2400.c
arch/arm/mach-ixp2000/ixdp2800.c
arch/arm/mach-ixp2000/ixdp2x00.c
arch/arm/mach-ixp2000/ixdp2x01.c
arch/arm/mach-ixp23xx/core.c
arch/arm/mach-ixp23xx/espresso.c
arch/arm/mach-ixp23xx/ixdp2351.c
arch/arm/mach-ixp23xx/pci.c
arch/arm/mach-ixp23xx/roadrunner.c
arch/arm/mach-ixp4xx/common.c
arch/arm/mach-ixp4xx/ixdp425-pci.c
arch/arm/mach-ixp4xx/nas100d-pci.c
arch/arm/mach-ixp4xx/nslu2-pci.c
arch/arm/mach-lh7a40x/time.c
arch/arm/mach-omap1/board-h3.c
arch/arm/mach-omap1/devices.c
arch/arm/mach-omap1/fpga.c
arch/arm/mach-omap1/id.c
arch/arm/mach-omap1/io.c
arch/arm/mach-omap1/irq.c
arch/arm/mach-omap1/leds-h2p2-debug.c
arch/arm/mach-omap1/leds-innovator.c
arch/arm/mach-omap1/leds-osk.c
arch/arm/mach-omap1/mux.c
arch/arm/mach-omap1/serial.c
arch/arm/mach-omap1/sleep.S
arch/arm/mach-omap1/time.c
arch/arm/mach-omap2/clock.c
arch/arm/mach-omap2/devices.c
arch/arm/mach-omap2/id.c
arch/arm/mach-omap2/io.c
arch/arm/mach-omap2/irq.c
arch/arm/mach-omap2/memory.c
arch/arm/mach-omap2/mux.c
arch/arm/mach-omap2/prcm.c
arch/arm/mach-omap2/sleep.S
arch/arm/mach-omap2/sram-fn.S
arch/arm/mach-pxa/leds-idp.c
arch/arm/mach-pxa/leds-lubbock.c
arch/arm/mach-pxa/leds-mainstone.c
arch/arm/mach-pxa/pm.c
arch/arm/mach-pxa/pxa25x.c
arch/arm/mach-pxa/pxa27x.c
arch/arm/mach-pxa/sleep.S
arch/arm/mach-pxa/standby.S
arch/arm/mach-pxa/time.c
arch/arm/mach-realview/core.c
arch/arm/mach-realview/realview_eb.c
arch/arm/mach-s3c2410/devs.h
arch/arm/mach-s3c2410/dma.c
arch/arm/mach-s3c2410/pm.c
arch/arm/mach-s3c2410/sleep.S
arch/arm/mach-s3c2410/time.c
arch/arm/mach-sa1100/assabet.c
arch/arm/mach-sa1100/cerf.c
arch/arm/mach-sa1100/collie.c
arch/arm/mach-sa1100/generic.c
arch/arm/mach-sa1100/h3600.c
arch/arm/mach-sa1100/leds-assabet.c
arch/arm/mach-sa1100/leds-badge4.c
arch/arm/mach-sa1100/leds-cerf.c
arch/arm/mach-sa1100/leds-hackkit.c
arch/arm/mach-sa1100/leds-lart.c
arch/arm/mach-sa1100/leds-simpad.c
arch/arm/mach-sa1100/shannon.c
arch/arm/mach-sa1100/simpad.c
arch/arm/mach-shark/dma.c
arch/arm/mach-shark/leds.c
arch/arm/mach-versatile/core.c
arch/arm/mach-versatile/pci.c
arch/arm/mach-versatile/versatile_ab.c
arch/arm/mach-versatile/versatile_pb.c
arch/arm/mm/alignment.c
arch/arm/mm/cache-v4wb.S
arch/arm/mm/fault.c
arch/arm/mm/init.c
arch/arm/mm/mm-armv.c
arch/arm/mm/mmap.c
arch/arm/mm/proc-arm1020.S
arch/arm/mm/proc-arm1020e.S
arch/arm/mm/proc-arm1022.S
arch/arm/mm/proc-arm1026.S
arch/arm/mm/proc-arm920.S
arch/arm/mm/proc-arm922.S
arch/arm/mm/proc-arm925.S
arch/arm/mm/proc-arm926.S
arch/arm/nwfpe/fpa11.c
arch/arm/nwfpe/fpa11.h
arch/arm/nwfpe/fpa11_cpdo.c
arch/arm/nwfpe/fpa11_cpdt.c
arch/arm/nwfpe/fpa11_cprt.c
arch/arm/nwfpe/fpmodule.c
arch/arm/nwfpe/fpopcode.c
arch/arm/nwfpe/fpopcode.h
arch/arm/nwfpe/softfloat.h
arch/arm/plat-omap/clock.c
arch/arm/plat-omap/common.c
arch/arm/plat-omap/devices.c
arch/arm/plat-omap/fb.c
arch/arm/plat-omap/gpio.c
arch/arm/plat-omap/mux.c
arch/arm/plat-omap/ocpi.c
arch/arm/plat-omap/sram-fn.S
arch/arm/plat-omap/sram.c
arch/arm/plat-omap/timer32k.c
arch/arm/plat-omap/usb.c
arch/arm/vfp/vfpmodule.c
arch/arm26/Kconfig
arch/arm26/boot/compressed/head.S
arch/arm26/kernel/armksyms.c
arch/arm26/kernel/asm-offsets.c
arch/arm26/kernel/compat.c
arch/arm26/kernel/ecard.c
arch/arm26/kernel/fiq.c
arch/arm26/kernel/head.S
arch/arm26/kernel/irq.c
arch/arm26/kernel/process.c
arch/arm26/kernel/ptrace.c
arch/arm26/kernel/semaphore.c
arch/arm26/kernel/setup.c
arch/arm26/kernel/signal.c
arch/arm26/kernel/time.c
arch/arm26/kernel/traps.c
arch/arm26/kernel/vmlinux.lds.S
arch/arm26/lib/backtrace.S
arch/arm26/lib/csumpartialcopyuser.S
arch/arm26/lib/kbd.c
arch/arm26/lib/lib1funcs.S
arch/arm26/machine/dma.c
arch/arm26/machine/irq.c
arch/arm26/mm/extable.c
arch/arm26/mm/fault.c
arch/arm26/mm/init.c
arch/arm26/nwfpe/fpmodule.c
arch/arm26/nwfpe/fpmodule.h
arch/cris/arch-v10/boot/compressed/head.S
arch/cris/arch-v10/boot/compressed/misc.c
arch/cris/arch-v10/boot/rescue/head.S
arch/cris/arch-v10/boot/rescue/kimagerescue.S
arch/cris/arch-v10/drivers/axisflashmap.c
arch/cris/arch-v10/drivers/ds1302.c
arch/cris/arch-v10/drivers/eeprom.c
arch/cris/arch-v10/drivers/gpio.c
arch/cris/arch-v10/drivers/i2c.c
arch/cris/arch-v10/drivers/pcf8563.c
arch/cris/arch-v10/kernel/crisksyms.c
arch/cris/arch-v10/kernel/debugport.c
arch/cris/arch-v10/kernel/entry.S
arch/cris/arch-v10/kernel/fasttimer.c
arch/cris/arch-v10/kernel/head.S
arch/cris/arch-v10/kernel/irq.c
arch/cris/arch-v10/kernel/process.c
arch/cris/arch-v10/kernel/setup.c
arch/cris/arch-v10/kernel/time.c
arch/cris/arch-v10/kernel/traps.c
arch/cris/arch-v10/lib/dram_init.S
arch/cris/arch-v10/mm/init.c
arch/cris/arch-v10/vmlinux.lds.S
arch/cris/arch-v32/boot/compressed/head.S
arch/cris/arch-v32/boot/compressed/misc.c
arch/cris/arch-v32/boot/rescue/head.S
arch/cris/arch-v32/drivers/axisflashmap.c
arch/cris/arch-v32/drivers/gpio.c
arch/cris/arch-v32/drivers/i2c.c
arch/cris/arch-v32/drivers/pcf8563.c
arch/cris/arch-v32/drivers/sync_serial.c
arch/cris/arch-v32/kernel/arbiter.c
arch/cris/arch-v32/kernel/crisksyms.c
arch/cris/arch-v32/kernel/debugport.c
arch/cris/arch-v32/kernel/dma.c
arch/cris/arch-v32/kernel/entry.S
arch/cris/arch-v32/kernel/fasttimer.c
arch/cris/arch-v32/kernel/head.S
arch/cris/arch-v32/kernel/io.c
arch/cris/arch-v32/kernel/irq.c
arch/cris/arch-v32/kernel/kgdb_asm.S
arch/cris/arch-v32/kernel/process.c
arch/cris/arch-v32/kernel/setup.c
arch/cris/arch-v32/kernel/time.c
arch/cris/arch-v32/kernel/traps.c
arch/cris/arch-v32/lib/dram_init.S
arch/cris/arch-v32/lib/hw_settings.S
arch/cris/arch-v32/lib/nand_init.S
arch/cris/arch-v32/mm/init.c
arch/cris/arch-v32/vmlinux.lds.S
arch/cris/kernel/crisksyms.c
arch/cris/kernel/irq.c
arch/cris/kernel/setup.c
arch/frv/kernel/break.S
arch/frv/kernel/cmode.S
arch/frv/kernel/entry-table.S
arch/frv/kernel/entry.S
arch/frv/kernel/frv_ksyms.c
arch/frv/kernel/head-mmu-fr451.S
arch/frv/kernel/head-uc-fr401.S
arch/frv/kernel/head-uc-fr451.S
arch/frv/kernel/head-uc-fr555.S
arch/frv/kernel/head.S
arch/frv/kernel/irq-mb93091.c
arch/frv/kernel/irq-mb93093.c
arch/frv/kernel/irq-mb93493.c
arch/frv/kernel/irq.c
arch/frv/kernel/pm-mb93093.c
arch/frv/kernel/pm.c
arch/frv/kernel/process.c
arch/frv/kernel/ptrace.c
arch/frv/kernel/semaphore.c
arch/frv/kernel/setup.c
arch/frv/kernel/sleep.S
arch/frv/kernel/switch_to.S
arch/frv/kernel/sysctl.c
arch/frv/kernel/traps.c
arch/frv/mb93090-mb00/pci-irq.c
arch/frv/mb93090-mb00/pci-vdk.c
arch/frv/mm/dma-alloc.c
arch/frv/mm/extable.c
arch/frv/mm/init.c
arch/frv/mm/kmap.c
arch/frv/mm/tlb-flush.S
arch/frv/mm/tlb-miss.S
arch/frv/mm/unaligned.c
arch/h8300/kernel/gpio.c
arch/h8300/kernel/h8300_ksyms.c
arch/h8300/kernel/process.c
arch/h8300/kernel/ptrace.c
arch/h8300/kernel/semaphore.c
arch/h8300/kernel/setup.c
arch/h8300/kernel/syscalls.S
arch/h8300/kernel/vmlinux.lds.S
arch/h8300/lib/romfs.S
arch/h8300/mm/init.c
arch/h8300/mm/kmap.c
arch/h8300/mm/memory.c
arch/h8300/platform/h8300h/aki3068net/crt0_ram.S
arch/h8300/platform/h8300h/aki3068net/timer.c
arch/h8300/platform/h8300h/entry.S
arch/h8300/platform/h8300h/generic/crt0_ram.S
arch/h8300/platform/h8300h/generic/crt0_rom.S
arch/h8300/platform/h8300h/generic/timer.c
arch/h8300/platform/h8300h/h8max/crt0_ram.S
arch/h8300/platform/h8300h/h8max/timer.c
arch/h8300/platform/h8300h/ints_h8300h.c
arch/h8300/platform/h8s/edosk2674/crt0_ram.S
arch/h8300/platform/h8s/edosk2674/crt0_rom.S
arch/h8300/platform/h8s/edosk2674/timer.c
arch/h8300/platform/h8s/entry.S
arch/h8300/platform/h8s/generic/crt0_ram.S
arch/h8300/platform/h8s/generic/crt0_rom.S
arch/h8300/platform/h8s/generic/timer.c
arch/h8300/platform/h8s/ints_h8s.c
arch/i386/Kconfig
arch/i386/boot/setup.S
arch/i386/kernel/acpi/boot.c
arch/i386/kernel/apic.c
arch/i386/kernel/apm.c
arch/i386/kernel/bootflag.c
arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
arch/i386/kernel/cpu/cpufreq/p4-clockmod.c
arch/i386/kernel/cpu/cpufreq/powernow-k7.c
arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
arch/i386/kernel/cpu/intel.c
arch/i386/kernel/cpu/mcheck/k7.c
arch/i386/kernel/cpu/mcheck/mce.c
arch/i386/kernel/cpu/mcheck/non-fatal.c
arch/i386/kernel/cpu/mcheck/p4.c
arch/i386/kernel/cpuid.c
arch/i386/kernel/efi.c
arch/i386/kernel/efi_stub.S
arch/i386/kernel/entry.S
arch/i386/kernel/head.S
arch/i386/kernel/i386_ksyms.c
arch/i386/kernel/i387.c
arch/i386/kernel/i8259.c
arch/i386/kernel/io_apic.c
arch/i386/kernel/kprobes.c
arch/i386/kernel/mca.c
arch/i386/kernel/mpparse.c
arch/i386/kernel/msr.c
arch/i386/kernel/numaq.c
arch/i386/kernel/process.c
arch/i386/kernel/quirks.c
arch/i386/kernel/reboot.c
arch/i386/kernel/scx200.c
arch/i386/kernel/semaphore.c
arch/i386/kernel/setup.c
arch/i386/kernel/smpboot.c
arch/i386/kernel/srat.c
arch/i386/kernel/time.c
arch/i386/kernel/time_hpet.c
arch/i386/kernel/traps.c
arch/i386/kernel/vm86.c
arch/i386/lib/checksum.S
arch/i386/lib/memcpy.c
arch/i386/lib/mmx.c
arch/i386/lib/usercopy.c
arch/i386/mach-default/setup.c
arch/i386/mach-generic/bigsmp.c
arch/i386/mach-generic/default.c
arch/i386/mach-generic/es7000.c
arch/i386/mach-generic/probe.c
arch/i386/mach-generic/summit.c
arch/i386/mach-visws/mpparse.c
arch/i386/mach-visws/traps.c
arch/i386/mach-visws/visws_apic.c
arch/i386/mach-voyager/setup.c
arch/i386/mach-voyager/voyager_basic.c
arch/i386/mach-voyager/voyager_cat.c
arch/i386/mach-voyager/voyager_smp.c
arch/i386/mach-voyager/voyager_thread.c
arch/i386/mm/boot_ioremap.c
arch/i386/mm/discontig.c
arch/i386/mm/extable.c
arch/i386/mm/fault.c
arch/i386/mm/hugetlbpage.c
arch/i386/mm/init.c
arch/i386/mm/pageattr.c
arch/i386/mm/pgtable.c
arch/i386/pci/init.c
arch/i386/pci/irq.c
arch/i386/pci/visws.c
arch/i386/power/cpu.c
arch/ia64/Kconfig
arch/ia64/dig/setup.c
arch/ia64/hp/common/sba_iommu.c
arch/ia64/hp/sim/boot/bootloader.c
arch/ia64/hp/sim/boot/fw-emu.c
arch/ia64/hp/sim/hpsim_console.c
arch/ia64/hp/sim/hpsim_setup.c
arch/ia64/hp/sim/simeth.c
arch/ia64/hp/sim/simserial.c
arch/ia64/ia32/binfmt_elf32.c
arch/ia64/ia32/ia32priv.h
arch/ia64/ia32/sys_ia32.c
arch/ia64/kernel/acpi-ext.c
arch/ia64/kernel/acpi.c
arch/ia64/kernel/asm-offsets.c
arch/ia64/kernel/cpufreq/acpi-cpufreq.c
arch/ia64/kernel/efi.c
arch/ia64/kernel/entry.S
arch/ia64/kernel/entry.h
arch/ia64/kernel/gate.S
arch/ia64/kernel/gate.lds.S
arch/ia64/kernel/head.S
arch/ia64/kernel/ia64_ksyms.c
arch/ia64/kernel/iosapic.c
arch/ia64/kernel/irq_ia64.c
arch/ia64/kernel/ivt.S
arch/ia64/kernel/kprobes.c
arch/ia64/kernel/machvec.c
arch/ia64/kernel/mca.c
arch/ia64/kernel/mca_asm.S
arch/ia64/kernel/mca_drv.c
arch/ia64/kernel/mca_drv_asm.S
arch/ia64/kernel/minstate.h
arch/ia64/kernel/module.c
arch/ia64/kernel/numa.c
arch/ia64/kernel/palinfo.c
arch/ia64/kernel/perfmon.c
arch/ia64/kernel/perfmon_default_smpl.c
arch/ia64/kernel/process.c
arch/ia64/kernel/ptrace.c
arch/ia64/kernel/sal.c
arch/ia64/kernel/setup.c
arch/ia64/kernel/signal.c
arch/ia64/kernel/smpboot.c
arch/ia64/kernel/sys_ia64.c
arch/ia64/kernel/time.c
arch/ia64/kernel/topology.c
arch/ia64/kernel/traps.c
arch/ia64/kernel/vmlinux.lds.S
arch/ia64/lib/clear_page.S
arch/ia64/lib/io.c
arch/ia64/lib/memcpy_mck.S
arch/ia64/mm/contig.c
arch/ia64/mm/extable.c
arch/ia64/mm/hugetlbpage.c
arch/ia64/mm/init.c
arch/ia64/mm/numa.c
arch/ia64/mm/tlb.c
arch/ia64/oprofile/perfmon.c
arch/ia64/pci/pci.c
arch/ia64/sn/kernel/bte.c
arch/ia64/sn/kernel/setup.c
arch/ia64/sn/kernel/sn2/prominfo_proc.c
arch/ia64/sn/kernel/sn2/sn_proc_fs.c
arch/ia64/sn/kernel/xpnet.c
arch/m32r/boot/compressed/head.S
arch/m32r/boot/compressed/m32r_sio.c
arch/m32r/boot/compressed/misc.c
arch/m32r/boot/compressed/vmlinux.lds.S
arch/m32r/boot/setup.S
arch/m32r/kernel/align.c
arch/m32r/kernel/entry.S
arch/m32r/kernel/head.S
arch/m32r/kernel/io_m32104ut.c
arch/m32r/kernel/io_m32700ut.c
arch/m32r/kernel/io_mappi.c
arch/m32r/kernel/io_mappi2.c
arch/m32r/kernel/io_mappi3.c
arch/m32r/kernel/io_oaks32r.c
arch/m32r/kernel/io_opsput.c
arch/m32r/kernel/io_usrv.c
arch/m32r/kernel/m32r_ksyms.c
arch/m32r/kernel/module.c
arch/m32r/kernel/process.c
arch/m32r/kernel/ptrace.c
arch/m32r/kernel/semaphore.c
arch/m32r/kernel/setup.c
arch/m32r/kernel/setup_m32104ut.c
arch/m32r/kernel/setup_m32700ut.c
arch/m32r/kernel/setup_mappi.c
arch/m32r/kernel/setup_mappi2.c
arch/m32r/kernel/setup_mappi3.c
arch/m32r/kernel/setup_oaks32r.c
arch/m32r/kernel/setup_opsput.c
arch/m32r/kernel/setup_usrv.c
arch/m32r/kernel/signal.c
arch/m32r/kernel/smpboot.c
arch/m32r/kernel/sys_m32r.c
arch/m32r/kernel/time.c
arch/m32r/kernel/traps.c
arch/m32r/kernel/vmlinux.lds.S
arch/m32r/lib/ashxdi3.S
arch/m32r/lib/checksum.S
arch/m32r/lib/delay.c
arch/m32r/lib/memcpy.S
arch/m32r/lib/memset.S
arch/m32r/lib/strlen.S
arch/m32r/lib/usercopy.c
arch/m32r/mm/cache.c
arch/m32r/mm/discontig.c
arch/m32r/mm/fault-nommu.c
arch/m32r/mm/fault.c
arch/m68k/amiga/amiga_ksyms.c
arch/m68k/amiga/amisound.c
arch/m68k/amiga/chipram.c
arch/m68k/amiga/config.c
arch/m68k/apollo/config.c
arch/m68k/atari/config.c
arch/m68k/atari/debug.c
arch/m68k/atari/hades-pci.c
arch/m68k/atari/stram.c
arch/m68k/hp300/config.c
arch/m68k/kernel/bios32.c
arch/m68k/kernel/entry.S
arch/m68k/kernel/head.S
arch/m68k/kernel/ints.c
arch/m68k/kernel/m68k_ksyms.c
arch/m68k/kernel/process.c
arch/m68k/kernel/ptrace.c
arch/m68k/kernel/semaphore.c
arch/m68k/kernel/setup.c
arch/m68k/kernel/traps.c
arch/m68k/kernel/vmlinux.lds.S
arch/m68k/mac/config.c
arch/m68k/mac/debug.c
arch/m68k/mac/iop.c
arch/m68k/mac/misc.c
arch/m68k/math-emu/fp_entry.S
arch/m68k/math-emu/fp_util.S
arch/m68k/mm/init.c
arch/m68k/mm/kmap.c
arch/m68k/mm/memory.c
arch/m68k/mm/motorola.c
arch/m68k/q40/config.c
arch/m68k/sun3/config.c
arch/m68k/sun3/prom/init.c
arch/m68k/sun3/prom/printf.c
arch/m68k/sun3/sun3dvma.c
arch/m68k/sun3/sun3ints.c
arch/m68k/sun3x/config.c
arch/m68knommu/kernel/comempci.c
arch/m68knommu/kernel/entry.S
arch/m68knommu/kernel/m68k_ksyms.c
arch/m68knommu/kernel/process.c
arch/m68knommu/kernel/ptrace.c
arch/m68knommu/kernel/semaphore.c
arch/m68knommu/kernel/setup.c
arch/m68knommu/kernel/syscalltable.S
arch/m68knommu/kernel/time.c
arch/m68knommu/kernel/traps.c
arch/m68knommu/kernel/vmlinux.lds.S
arch/m68knommu/lib/semaphore.S
arch/m68knommu/mm/init.c
arch/m68knommu/mm/kmap.c
arch/m68knommu/mm/memory.c
arch/m68knommu/platform/5206/config.c
arch/m68knommu/platform/5206e/config.c
arch/m68knommu/platform/520x/config.c
arch/m68knommu/platform/523x/config.c
arch/m68knommu/platform/5249/config.c
arch/m68knommu/platform/5272/config.c
arch/m68knommu/platform/527x/config.c
arch/m68knommu/platform/528x/config.c
arch/m68knommu/platform/5307/config.c
arch/m68knommu/platform/5307/entry.S
arch/m68knommu/platform/5307/head.S
arch/m68knommu/platform/5307/ints.c
arch/m68knommu/platform/5307/pit.c
arch/m68knommu/platform/5307/timers.c
arch/m68knommu/platform/5307/vectors.c
arch/m68knommu/platform/5407/config.c
arch/m68knommu/platform/68328/config.c
arch/m68knommu/platform/68328/entry.S
arch/m68knommu/platform/68328/head-de2.S
arch/m68knommu/platform/68328/head-pilot.S
arch/m68knommu/platform/68328/head-ram.S
arch/m68knommu/platform/68328/head-rom.S
arch/m68knommu/platform/68328/timers.c
arch/m68knommu/platform/68360/config.c
arch/m68knommu/platform/68360/entry.S
arch/m68knommu/platform/68360/head-ram.S
arch/m68knommu/platform/68360/head-rom.S
arch/m68knommu/platform/68360/ints.c
arch/m68knommu/platform/68EZ328/config.c
arch/m68knommu/platform/68VZ328/config.c
arch/mips/arc/identify.c
arch/mips/au1000/common/au1xxx_irqmap.c
arch/mips/au1000/common/dbdma.c
arch/mips/au1000/common/dbg_io.c
arch/mips/au1000/common/dma.c
arch/mips/au1000/common/gpio.c
arch/mips/au1000/common/irq.c
arch/mips/au1000/common/pci.c
arch/mips/au1000/common/platform.c
arch/mips/au1000/common/power.c
arch/mips/au1000/common/reset.c
arch/mips/au1000/common/setup.c
arch/mips/au1000/common/time.c
arch/mips/au1000/csb250/board_setup.c
arch/mips/au1000/db1x00/board_setup.c
arch/mips/au1000/db1x00/init.c
arch/mips/au1000/db1x00/irqmap.c
arch/mips/au1000/db1x00/mirage_ts.c
arch/mips/au1000/hydrogen3/board_setup.c
arch/mips/au1000/hydrogen3/init.c
arch/mips/au1000/mtx-1/board_setup.c
arch/mips/au1000/pb1000/board_setup.c
arch/mips/au1000/pb1100/board_setup.c
arch/mips/au1000/pb1200/board_setup.c
arch/mips/au1000/pb1200/irqmap.c
arch/mips/au1000/pb1500/board_setup.c
arch/mips/au1000/xxs1500/board_setup.c
arch/mips/cobalt/console.c
arch/mips/cobalt/setup.c
arch/mips/ddb5xxx/common/prom.c
arch/mips/ddb5xxx/ddb5477/irq.c
arch/mips/ddb5xxx/ddb5477/setup.c
arch/mips/dec/int-handler.S
arch/mips/dec/prom/init.c
arch/mips/dec/prom/memory.c
arch/mips/galileo-boards/ev96100/setup.c
arch/mips/galileo-boards/ev96100/time.c
arch/mips/gt64120/common/time.c
arch/mips/gt64120/momenco_ocelot/dbg_io.c
arch/mips/ite-boards/generic/dbg_io.c
arch/mips/ite-boards/generic/it8172_cir.c
arch/mips/ite-boards/generic/it8172_setup.c
arch/mips/ite-boards/generic/pmon_prom.c
arch/mips/jazz/setup.c
arch/mips/jmr3927/rbhma3100/init.c
arch/mips/jmr3927/rbhma3100/irq.c
arch/mips/jmr3927/rbhma3100/setup.c
arch/mips/kernel/asm-offsets.c
arch/mips/kernel/cpu-bugs64.c
arch/mips/kernel/cpu-probe.c
arch/mips/kernel/entry.S
arch/mips/kernel/gdb-low.S
arch/mips/kernel/gdb-stub.c
arch/mips/kernel/genex.S
arch/mips/kernel/head.S
arch/mips/kernel/irq.c
arch/mips/kernel/linux32.c
arch/mips/kernel/mips_ksyms.c
arch/mips/kernel/proc.c
arch/mips/kernel/process.c
arch/mips/kernel/ptrace.c
arch/mips/kernel/r2300_switch.S
arch/mips/kernel/r4k_fpu.S
arch/mips/kernel/r4k_switch.S
arch/mips/kernel/scall32-o32.S
arch/mips/kernel/scall64-64.S
arch/mips/kernel/scall64-n32.S
arch/mips/kernel/scall64-o32.S
arch/mips/kernel/setup.c
arch/mips/kernel/signal-common.h
arch/mips/kernel/signal.c
arch/mips/kernel/syscall.c
arch/mips/kernel/time.c
arch/mips/kernel/traps.c
arch/mips/kernel/unaligned.c
arch/mips/kernel/vmlinux.lds.S
arch/mips/lasat/lasat_board.c
arch/mips/lasat/reset.c
arch/mips/lasat/setup.c
arch/mips/lasat/sysctl.c
arch/mips/lib-32/dump_tlb.c
arch/mips/lib-64/dump_tlb.c
arch/mips/lib/memcpy.S
arch/mips/math-emu/kernel_linkage.c
arch/mips/mips-boards/atlas/atlas_setup.c
arch/mips/mips-boards/generic/init.c
arch/mips/mips-boards/generic/memory.c
arch/mips/mips-boards/generic/printf.c
arch/mips/mips-boards/generic/reset.c
arch/mips/mips-boards/generic/time.c
arch/mips/mips-boards/malta/malta_setup.c
arch/mips/mips-boards/sead/sead_setup.c
arch/mips/mips-boards/sim/sim_IRQ.c
arch/mips/mips-boards/sim/sim_irq.S
arch/mips/mips-boards/sim/sim_setup.c
arch/mips/mips-boards/sim/sim_smp.c
arch/mips/mips-boards/sim/sim_time.c
arch/mips/mm/c-r4k.c
arch/mips/mm/c-sb1.c
arch/mips/mm/cache.c
arch/mips/mm/cerr-sb1.c
arch/mips/mm/dma-coherent.c
arch/mips/mm/dma-noncoherent.c
arch/mips/mm/highmem.c
arch/mips/mm/init.c
arch/mips/mm/pg-sb1.c
arch/mips/mm/pgtable-32.c
arch/mips/mm/pgtable.c
arch/mips/mm/tlb-r4k.c
arch/mips/mm/tlb-r8k.c
arch/mips/mm/tlbex.c
arch/mips/momentum/jaguar_atx/dbg_io.c
arch/mips/momentum/jaguar_atx/prom.c
arch/mips/momentum/jaguar_atx/reset.c
arch/mips/momentum/jaguar_atx/setup.c
arch/mips/momentum/ocelot_3/prom.c
arch/mips/momentum/ocelot_c/dbg_io.c
arch/mips/momentum/ocelot_c/ocelot_c_fpga.h
arch/mips/momentum/ocelot_c/prom.c
arch/mips/momentum/ocelot_c/reset.c
arch/mips/momentum/ocelot_c/setup.c
arch/mips/momentum/ocelot_g/dbg_io.c
arch/mips/momentum/ocelot_g/gt-irq.c
arch/mips/momentum/ocelot_g/prom.c
arch/mips/momentum/ocelot_g/setup.c
arch/mips/pci/fixup-atlas.c
arch/mips/pci/fixup-vr4133.c
arch/mips/pci/ops-au1000.c
arch/mips/pci/pci-bcm1480.c
arch/mips/pci/pci-bcm1480ht.c
arch/mips/pci/pci-ip32.c
arch/mips/pci/pci-sb1250.c
arch/mips/pci/pci.c
arch/mips/philips/pnx8550/common/int.c
arch/mips/philips/pnx8550/common/setup.c
arch/mips/pmc-sierra/yosemite/ht.c
arch/mips/pmc-sierra/yosemite/irq.c
arch/mips/pmc-sierra/yosemite/prom.c
arch/mips/sgi-ip22/ip22-eisa.c
arch/mips/sgi-ip22/ip22-int.c
arch/mips/sgi-ip22/ip22-setup.c
arch/mips/sgi-ip27/ip27-init.c
arch/mips/sgi-ip27/ip27-irq.c
arch/mips/sgi-ip27/ip27-klnuma.c
arch/mips/sgi-ip27/ip27-memory.c
arch/mips/sgi-ip27/ip27-reset.c
arch/mips/sgi-ip32/ip32-setup.c
arch/mips/sibyte/bcm1480/irq.c
arch/mips/sibyte/bcm1480/setup.c
arch/mips/sibyte/bcm1480/time.c
arch/mips/sibyte/cfe/console.c
arch/mips/sibyte/cfe/setup.c
arch/mips/sibyte/sb1250/bus_watcher.c
arch/mips/sibyte/sb1250/irq.c
arch/mips/sibyte/sb1250/prom.c
arch/mips/sibyte/sb1250/setup.c
arch/mips/sibyte/sb1250/time.c
arch/mips/sibyte/swarm/setup.c
arch/mips/sni/setup.c
arch/mips/tx4927/common/tx4927_irq.c
arch/mips/tx4927/common/tx4927_setup.c
arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c
arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c
arch/mips/tx4938/toshiba_rbtx4938/prom.c
arch/mips/tx4938/toshiba_rbtx4938/setup.c
arch/mips/tx4938/toshiba_rbtx4938/spi_eeprom.c
arch/mips/vr41xx/nec-cmbvr4133/init.c
arch/mips/vr41xx/nec-cmbvr4133/m1535plus.c
arch/mips/vr41xx/nec-cmbvr4133/setup.c
arch/parisc/kernel/entry.S
arch/parisc/kernel/irq.c
arch/parisc/kernel/pacache.S
arch/parisc/kernel/parisc_ksyms.c
arch/parisc/kernel/pci.c
arch/parisc/kernel/pdc_cons.c
arch/parisc/kernel/perf_asm.S
arch/parisc/kernel/processor.c
arch/parisc/kernel/real2.S
arch/parisc/kernel/setup.c
arch/parisc/kernel/smp.c
arch/parisc/kernel/sys_parisc32.c
arch/parisc/kernel/time.c
arch/parisc/kernel/traps.c
arch/parisc/kernel/unaligned.c
arch/parisc/kernel/unwind.c
arch/parisc/kernel/vmlinux.lds.S
arch/parisc/lib/bitops.c
arch/parisc/lib/fixup.S
arch/parisc/lib/memcpy.c
arch/parisc/mm/init.c
arch/powerpc/kernel/asm-offsets.c
arch/powerpc/kernel/binfmt_elf32.c
arch/powerpc/kernel/btext.c
arch/powerpc/kernel/cpu_setup_6xx.S
arch/powerpc/kernel/cpu_setup_power4.S
arch/powerpc/kernel/cputable.c
arch/powerpc/kernel/entry_32.S
arch/powerpc/kernel/entry_64.S
arch/powerpc/kernel/firmware.c
arch/powerpc/kernel/fpu.S
arch/powerpc/kernel/head_32.S
arch/powerpc/kernel/head_44x.S
arch/powerpc/kernel/head_4xx.S
arch/powerpc/kernel/head_64.S
arch/powerpc/kernel/head_8xx.S
arch/powerpc/kernel/head_fsl_booke.S
arch/powerpc/kernel/idle.c
arch/powerpc/kernel/idle_6xx.S
arch/powerpc/kernel/idle_power4.S
arch/powerpc/kernel/iommu.c
arch/powerpc/kernel/irq.c
arch/powerpc/kernel/kprobes.c
arch/powerpc/kernel/l2cr_6xx.S
arch/powerpc/kernel/legacy_serial.c
arch/powerpc/kernel/lparcfg.c
arch/powerpc/kernel/misc_32.S
arch/powerpc/kernel/misc_64.S
arch/powerpc/kernel/of_device.c
arch/powerpc/kernel/paca.c
arch/powerpc/kernel/pci_32.c
arch/powerpc/kernel/pci_64.c
arch/powerpc/kernel/perfmon_fsl_booke.c
arch/powerpc/kernel/pmc.c
arch/powerpc/kernel/ppc_ksyms.c
arch/powerpc/kernel/proc_ppc64.c
arch/powerpc/kernel/process.c
arch/powerpc/kernel/prom.c
arch/powerpc/kernel/prom_init.c
arch/powerpc/kernel/ptrace-common.h
arch/powerpc/kernel/ptrace.c
arch/powerpc/kernel/ptrace32.c
arch/powerpc/kernel/setup-common.c
arch/powerpc/kernel/setup_32.c
arch/powerpc/kernel/setup_64.c
arch/powerpc/kernel/signal_32.c
arch/powerpc/kernel/signal_64.c
arch/powerpc/kernel/smp-tbsync.c
arch/powerpc/kernel/smp.c
arch/powerpc/kernel/swsusp_32.S
arch/powerpc/kernel/sys_ppc32.c
arch/powerpc/kernel/sysfs.c
arch/powerpc/kernel/systbl.S
arch/powerpc/kernel/tau_6xx.c
arch/powerpc/kernel/time.c
arch/powerpc/kernel/traps.c
arch/powerpc/kernel/udbg.c
arch/powerpc/kernel/udbg_16550.c
arch/powerpc/kernel/vdso.c
arch/powerpc/kernel/vdso32/cacheflush.S
arch/powerpc/kernel/vdso32/datapage.S
arch/powerpc/kernel/vdso32/gettimeofday.S
arch/powerpc/kernel/vdso32/sigtramp.S
arch/powerpc/kernel/vdso64/cacheflush.S
arch/powerpc/kernel/vdso64/datapage.S
arch/powerpc/kernel/vdso64/gettimeofday.S
arch/powerpc/kernel/vdso64/sigtramp.S
arch/powerpc/kernel/vector.S
arch/powerpc/kernel/vmlinux.lds.S
arch/powerpc/lib/copy_32.S
arch/powerpc/lib/locks.c
arch/powerpc/lib/sstep.c
arch/powerpc/lib/string.S
arch/powerpc/math-emu/math.c
arch/powerpc/mm/44x_mmu.c
arch/powerpc/mm/4xx_mmu.c
arch/powerpc/mm/fault.c
arch/powerpc/mm/fsl_booke_mmu.c
arch/powerpc/mm/hash_low_32.S
arch/powerpc/mm/hash_low_64.S
arch/powerpc/mm/hash_utils_64.c
arch/powerpc/mm/init_32.c
arch/powerpc/mm/init_64.c
arch/powerpc/mm/lmb.c
arch/powerpc/mm/mem.c
arch/powerpc/mm/mmu_context_32.c
arch/powerpc/mm/mmu_context_64.c
arch/powerpc/mm/pgtable_32.c
arch/powerpc/mm/pgtable_64.c
arch/powerpc/mm/ppc_mmu_32.c
arch/powerpc/mm/slb.c
arch/powerpc/mm/slb_low.S
arch/powerpc/mm/stab.c
arch/powerpc/mm/tlb_32.c
arch/powerpc/mm/tlb_64.c
arch/powerpc/platforms/83xx/misc.c
arch/powerpc/platforms/83xx/mpc834x_sys.c
arch/powerpc/platforms/83xx/pci.c
arch/powerpc/platforms/85xx/mpc8540_ads.h
arch/powerpc/platforms/85xx/mpc85xx_ads.c
arch/powerpc/platforms/85xx/pci.c
arch/powerpc/platforms/cell/interrupt.c
arch/powerpc/platforms/cell/pervasive.c
arch/powerpc/platforms/cell/setup.c
arch/powerpc/platforms/cell/smp.c
arch/powerpc/platforms/cell/spufs/backing_ops.c
arch/powerpc/platforms/cell/spufs/hw_ops.c
arch/powerpc/platforms/cell/spufs/sched.c
arch/powerpc/platforms/cell/spufs/switch.c
arch/powerpc/platforms/chrp/pci.c
arch/powerpc/platforms/chrp/setup.c
arch/powerpc/platforms/chrp/smp.c
arch/powerpc/platforms/iseries/irq.c
arch/powerpc/platforms/iseries/lpardata.c
arch/powerpc/platforms/iseries/setup.c
arch/powerpc/platforms/iseries/smp.c
arch/powerpc/platforms/maple/setup.c
arch/powerpc/platforms/maple/time.c
arch/powerpc/platforms/powermac/backlight.c
arch/powerpc/platforms/powermac/bootx_init.c
arch/powerpc/platforms/powermac/cache.S
arch/powerpc/platforms/powermac/cpufreq_32.c
arch/powerpc/platforms/powermac/cpufreq_64.c
arch/powerpc/platforms/powermac/feature.c
arch/powerpc/platforms/powermac/low_i2c.c
arch/powerpc/platforms/powermac/nvram.c
arch/powerpc/platforms/powermac/pfunc_base.c
arch/powerpc/platforms/powermac/pfunc_core.c
arch/powerpc/platforms/powermac/pic.c
arch/powerpc/platforms/powermac/setup.c
arch/powerpc/platforms/powermac/sleep.S
arch/powerpc/platforms/powermac/smp.c
arch/powerpc/platforms/powermac/time.c
arch/powerpc/platforms/powermac/udbg_adb.c
arch/powerpc/platforms/powermac/udbg_scc.c
arch/powerpc/platforms/pseries/eeh_driver.c
arch/powerpc/platforms/pseries/iommu.c
arch/powerpc/platforms/pseries/lpar.c
arch/powerpc/platforms/pseries/setup.c
arch/powerpc/platforms/pseries/smp.c
arch/powerpc/platforms/pseries/xics.c
arch/powerpc/sysdev/dart_iommu.c
arch/powerpc/sysdev/fsl_soc.c
arch/powerpc/sysdev/mpic.c
arch/powerpc/xmon/xmon.c
arch/ppc/4xx_io/serial_sicc.c
arch/ppc/8260_io/fcc_enet.c
arch/ppc/8xx_io/cs4218.h
arch/ppc/8xx_io/cs4218_tdm.c
arch/ppc/8xx_io/enet.c
arch/ppc/8xx_io/fec.c
arch/ppc/8xx_io/micropatch.c
arch/ppc/amiga/amiints.c
arch/ppc/amiga/config.c
arch/ppc/boot/common/crt0.S
arch/ppc/boot/common/misc-common.c
arch/ppc/boot/common/ns16550.c
arch/ppc/boot/simple/embed_config.c
arch/ppc/boot/simple/head.S
arch/ppc/boot/simple/m8xx_tty.c
arch/ppc/boot/simple/misc-chestnut.c
arch/ppc/boot/simple/misc-embedded.c
arch/ppc/boot/simple/misc-ev64260.c
arch/ppc/boot/simple/misc-ev64360.c
arch/ppc/boot/simple/misc-katana.c
arch/ppc/boot/simple/misc-mv64x60.c
arch/ppc/boot/simple/misc-prep.c
arch/ppc/boot/simple/misc-spruce.c
arch/ppc/boot/simple/misc.c
arch/ppc/boot/simple/mpc52xx_tty.c
arch/ppc/boot/simple/mv64x60_tty.c
arch/ppc/boot/simple/openbios.c
arch/ppc/boot/simple/pibs.c
arch/ppc/boot/simple/relocate.S
arch/ppc/kernel/asm-offsets.c
arch/ppc/kernel/cpu_setup_power4.S
arch/ppc/kernel/dma-mapping.c
arch/ppc/kernel/entry.S
arch/ppc/kernel/head.S
arch/ppc/kernel/head_44x.S
arch/ppc/kernel/head_4xx.S
arch/ppc/kernel/head_8xx.S
arch/ppc/kernel/head_fsl_booke.S
arch/ppc/kernel/misc.S
arch/ppc/kernel/pci.c
arch/ppc/kernel/ppc-stub.c
arch/ppc/kernel/ppc_htab.c
arch/ppc/kernel/ppc_ksyms.c
arch/ppc/kernel/setup.c
arch/ppc/kernel/smp-tbsync.c
arch/ppc/kernel/smp.c
arch/ppc/kernel/time.c
arch/ppc/kernel/traps.c
arch/ppc/lib/locks.c
arch/ppc/lib/string.S
arch/ppc/mm/44x_mmu.c
arch/ppc/mm/4xx_mmu.c
arch/ppc/mm/fault.c
arch/ppc/mm/fsl_booke_mmu.c
arch/ppc/mm/hashtable.S
arch/ppc/mm/init.c
arch/ppc/mm/mem_pieces.c
arch/ppc/mm/mmu_context.c
arch/ppc/mm/pgtable.c
arch/ppc/mm/ppc_mmu.c
arch/ppc/mm/tlb.c
arch/ppc/platforms/4xx/bamboo.c
arch/ppc/platforms/4xx/bamboo.h
arch/ppc/platforms/4xx/bubinga.c
arch/ppc/platforms/4xx/bubinga.h
arch/ppc/platforms/4xx/cpci405.c
arch/ppc/platforms/4xx/ebony.c
arch/ppc/platforms/4xx/ebony.h
arch/ppc/platforms/4xx/ep405.c
arch/ppc/platforms/4xx/ibm405ep.c
arch/ppc/platforms/4xx/ibm405ep.h
arch/ppc/platforms/4xx/ibm405gp.c
arch/ppc/platforms/4xx/ibm405gp.h
arch/ppc/platforms/4xx/ibm405gpr.c
arch/ppc/platforms/4xx/ibm405gpr.h
arch/ppc/platforms/4xx/ibm440ep.h
arch/ppc/platforms/4xx/ibm440gp.h
arch/ppc/platforms/4xx/ibm440gx.h
arch/ppc/platforms/4xx/ibm440sp.h
arch/ppc/platforms/4xx/ibmnp405h.c
arch/ppc/platforms/4xx/ibmnp405h.h
arch/ppc/platforms/4xx/ibmstb4.h
arch/ppc/platforms/4xx/ibmstbx25.h
arch/ppc/platforms/4xx/luan.c
arch/ppc/platforms/4xx/luan.h
arch/ppc/platforms/4xx/ocotea.c
arch/ppc/platforms/4xx/ocotea.h
arch/ppc/platforms/4xx/ppc440spe.h
arch/ppc/platforms/4xx/redwood5.c
arch/ppc/platforms/4xx/redwood6.c
arch/ppc/platforms/4xx/sycamore.c
arch/ppc/platforms/4xx/sycamore.h
arch/ppc/platforms/4xx/walnut.c
arch/ppc/platforms/4xx/walnut.h
arch/ppc/platforms/4xx/xilinx_ml300.c
arch/ppc/platforms/4xx/xilinx_ml403.c
arch/ppc/platforms/4xx/xparameters/xparameters.h
arch/ppc/platforms/4xx/yucca.c
arch/ppc/platforms/4xx/yucca.h
arch/ppc/platforms/83xx/mpc834x_sys.c
arch/ppc/platforms/83xx/mpc834x_sys.h
arch/ppc/platforms/85xx/mpc8540_ads.c
arch/ppc/platforms/85xx/mpc8540_ads.h
arch/ppc/platforms/85xx/mpc8555_cds.h
arch/ppc/platforms/85xx/mpc8560_ads.c
arch/ppc/platforms/85xx/mpc8560_ads.h
arch/ppc/platforms/85xx/mpc85xx_ads_common.c
arch/ppc/platforms/85xx/mpc85xx_ads_common.h
arch/ppc/platforms/85xx/mpc85xx_cds_common.c
arch/ppc/platforms/85xx/mpc85xx_cds_common.h
arch/ppc/platforms/85xx/sbc8560.c
arch/ppc/platforms/85xx/sbc8560.h
arch/ppc/platforms/85xx/sbc85xx.c
arch/ppc/platforms/85xx/sbc85xx.h
arch/ppc/platforms/85xx/stx_gp3.c
arch/ppc/platforms/85xx/stx_gp3.h
arch/ppc/platforms/85xx/tqm85xx.c
arch/ppc/platforms/85xx/tqm85xx.h
arch/ppc/platforms/apus_pci.c
arch/ppc/platforms/apus_setup.c
arch/ppc/platforms/ccm.h
arch/ppc/platforms/chestnut.c
arch/ppc/platforms/cpci690.c
arch/ppc/platforms/ev64260.c
arch/ppc/platforms/ev64360.c
arch/ppc/platforms/fads.h
arch/ppc/platforms/gemini_prom.S
arch/ppc/platforms/gemini_serial.h
arch/ppc/platforms/gemini_setup.c
arch/ppc/platforms/hdpu.c
arch/ppc/platforms/hermes.h
arch/ppc/platforms/ip860.h
arch/ppc/platforms/ivms8.h
arch/ppc/platforms/katana.c
arch/ppc/platforms/lantec.h
arch/ppc/platforms/lite5200.c
arch/ppc/platforms/lopec.c
arch/ppc/platforms/lwmon.h
arch/ppc/platforms/mpc866ads_setup.c
arch/ppc/platforms/mpc885ads.h
arch/ppc/platforms/mpc885ads_setup.c
arch/ppc/platforms/mvme5100.c
arch/ppc/platforms/pal4_setup.c
arch/ppc/platforms/pcu_e.h
arch/ppc/platforms/powerpmc250.c
arch/ppc/platforms/pplus.c
arch/ppc/platforms/pq2ads.h
arch/ppc/platforms/prep_pci.c
arch/ppc/platforms/prep_setup.c
arch/ppc/platforms/prpmc750.c
arch/ppc/platforms/prpmc800.c
arch/ppc/platforms/radstone_ppc7d.c
arch/ppc/platforms/rpxclassic.h
arch/ppc/platforms/rpxlite.h
arch/ppc/platforms/sandpoint.c
arch/ppc/platforms/sbc82xx.c
arch/ppc/platforms/spruce.c
arch/ppc/platforms/tqm8260.h
arch/ppc/platforms/tqm8xx.h
arch/ppc/syslib/btext.c
arch/ppc/syslib/gen550_dbg.c
arch/ppc/syslib/gen550_kgdb.c
arch/ppc/syslib/ibm440gp_common.c
arch/ppc/syslib/ibm440gp_common.h
arch/ppc/syslib/ibm440gx_common.c
arch/ppc/syslib/ibm440gx_common.h
arch/ppc/syslib/ibm440sp_common.c
arch/ppc/syslib/ibm44x_common.c
arch/ppc/syslib/m8260_pci_erratum9.c
arch/ppc/syslib/m8260_setup.c
arch/ppc/syslib/m8xx_setup.c
arch/ppc/syslib/mpc52xx_pci.c
arch/ppc/syslib/mpc52xx_setup.c
arch/ppc/syslib/mv64x60_dbg.c
arch/ppc/syslib/ocp.c
arch/ppc/syslib/open_pic.c
arch/ppc/syslib/open_pic2.c
arch/ppc/syslib/ppc440spe_pcie.c
arch/ppc/syslib/ppc4xx_dma.c
arch/ppc/syslib/ppc4xx_pic.c
arch/ppc/syslib/ppc4xx_setup.c
arch/ppc/syslib/ppc4xx_sgdma.c
arch/ppc/syslib/ppc83xx_setup.c
arch/ppc/syslib/ppc83xx_setup.h
arch/ppc/syslib/ppc85xx_common.c
arch/ppc/syslib/ppc85xx_common.h
arch/ppc/syslib/ppc85xx_rio.c
arch/ppc/syslib/ppc85xx_rio.h
arch/ppc/syslib/ppc85xx_setup.c
arch/ppc/syslib/ppc85xx_setup.h
arch/ppc/syslib/ppc8xx_pic.c
arch/ppc/syslib/ppc8xx_pic.h
arch/ppc/syslib/qspan_pci.c
arch/ppc/xmon/privinst.h
arch/ppc/xmon/start.c
arch/ppc/xmon/xmon.c
arch/s390/appldata/appldata_base.c
arch/s390/appldata/appldata_mem.c
arch/s390/appldata/appldata_net_sum.c
arch/s390/appldata/appldata_os.c
arch/s390/kernel/asm-offsets.c
arch/s390/kernel/binfmt_elf32.c
arch/s390/kernel/compat_linux.c
arch/s390/kernel/compat_linux.h
arch/s390/kernel/compat_signal.c
arch/s390/kernel/debug.c
arch/s390/kernel/entry.S
arch/s390/kernel/entry64.S
arch/s390/kernel/head.S
arch/s390/kernel/process.c
arch/s390/kernel/s390_ksyms.c
arch/s390/kernel/setup.c
arch/s390/kernel/signal.c
arch/s390/kernel/time.c
arch/s390/kernel/traps.c
arch/s390/kernel/vmlinux.lds.S
arch/s390/kernel/vtime.c
arch/s390/lib/delay.c
arch/s390/math-emu/math.c
arch/s390/mm/cmm.c
arch/s390/mm/fault.c
arch/s390/mm/init.c
arch/sh/boards/adx/irq_maskreg.c
arch/sh/boards/bigsur/io.c
arch/sh/boards/bigsur/irq.c
arch/sh/boards/bigsur/led.c
arch/sh/boards/bigsur/setup.c
arch/sh/boards/cat68701/setup.c
arch/sh/boards/cqreek/setup.c
arch/sh/boards/harp/irq.c
arch/sh/boards/harp/led.c
arch/sh/boards/harp/setup.c
arch/sh/boards/hp6xx/setup.c
arch/sh/boards/mpc1211/led.c
arch/sh/boards/mpc1211/pci.c
arch/sh/boards/mpc1211/setup.c
arch/sh/boards/overdrive/fpga.c
arch/sh/boards/overdrive/galileo.c
arch/sh/boards/overdrive/io.c
arch/sh/boards/overdrive/irq.c
arch/sh/boards/overdrive/led.c
arch/sh/boards/overdrive/setup.c
arch/sh/boards/renesas/edosk7705/setup.c
arch/sh/boards/renesas/hs7751rvoip/io.c
arch/sh/boards/renesas/hs7751rvoip/irq.c
arch/sh/boards/renesas/hs7751rvoip/led.c
arch/sh/boards/renesas/hs7751rvoip/mach.c
arch/sh/boards/renesas/hs7751rvoip/pci.c
arch/sh/boards/renesas/hs7751rvoip/setup.c
arch/sh/boards/renesas/rts7751r2d/irq.c
arch/sh/boards/renesas/rts7751r2d/led.c
arch/sh/boards/renesas/rts7751r2d/mach.c
arch/sh/boards/renesas/systemh/irq.c
arch/sh/boards/se/7300/io.c
arch/sh/boards/se/7300/irq.c
arch/sh/boards/se/7300/led.c
arch/sh/boards/se/7300/setup.c
arch/sh/boards/se/73180/io.c
arch/sh/boards/se/73180/irq.c
arch/sh/boards/se/73180/led.c
arch/sh/boards/se/73180/setup.c
arch/sh/boards/se/770x/irq.c
arch/sh/boards/se/770x/led.c
arch/sh/boards/se/770x/mach.c
arch/sh/boards/se/770x/setup.c
arch/sh/boards/se/7751/irq.c
arch/sh/boards/se/7751/led.c
arch/sh/boards/se/7751/mach.c
arch/sh/boards/se/7751/pci.c
arch/sh/boards/se/7751/setup.c
arch/sh/boards/sh03/led.c
arch/sh/boards/sh03/setup.c
arch/sh/boards/sh2000/setup.c
arch/sh/boards/snapgear/setup.c
arch/sh/boards/superh/microdev/io.c
arch/sh/boards/superh/microdev/irq.c
arch/sh/boards/superh/microdev/led.c
arch/sh/boards/superh/microdev/setup.c
arch/sh/boards/unknown/setup.c
arch/sh/boot/compressed/head.S
arch/sh/boot/compressed/misc.c
arch/sh/cchips/hd6446x/hd64461/io.c
arch/sh/cchips/hd6446x/hd64461/setup.c
arch/sh/cchips/hd6446x/hd64465/io.c
arch/sh/cchips/hd6446x/hd64465/setup.c
arch/sh/cchips/voyagergx/irq.c
arch/sh/drivers/dma/dma-sh.c
arch/sh/drivers/pci/dma-dreamcast.c
arch/sh/drivers/pci/fixups-dreamcast.c
arch/sh/drivers/pci/ops-bigsur.c
arch/sh/drivers/pci/ops-dreamcast.c
arch/sh/drivers/pci/ops-rts7751r2d.c
arch/sh/drivers/pci/ops-sh03.c
arch/sh/drivers/pci/ops-snapgear.c
arch/sh/drivers/pci/pci-sh7751.c
arch/sh/drivers/pci/pci-st40.c
arch/sh/kernel/cf-enabler.c
arch/sh/kernel/cpu/irq/ipr.c
arch/sh/kernel/cpu/irq/pint.c
arch/sh/kernel/cpu/sh3/ex.S
arch/sh/kernel/cpu/sh4/ex.S
arch/sh/kernel/cpu/sh4/sq.c
arch/sh/kernel/entry.S
arch/sh/kernel/ptrace.c
arch/sh/kernel/relocate_kernel.S
arch/sh/kernel/sh_ksyms.c
arch/sh/kernel/smp.c
arch/sh/kernel/time.c
arch/sh/kernel/traps.c
arch/sh/kernel/vmlinux.lds.S
arch/sh/lib/memcpy-sh4.S
arch/sh/mm/cache-sh4.c
arch/sh/mm/clear_page.S
arch/sh/mm/extable.c
arch/sh/mm/hugetlbpage.c
arch/sh/mm/init.c
arch/sh/mm/pg-sh4.c
arch/sh64/boot/compressed/misc.c
arch/sh64/boot/compressed/vmlinux.lds.S
arch/sh64/kernel/alphanum.c
arch/sh64/kernel/entry.S
arch/sh64/kernel/head.S
arch/sh64/kernel/irq.c
arch/sh64/kernel/irq_intc.c
arch/sh64/kernel/led.c
arch/sh64/kernel/pci_sh5.c
arch/sh64/kernel/process.c
arch/sh64/kernel/ptrace.c
arch/sh64/kernel/setup.c
arch/sh64/kernel/sh_ksyms.c
arch/sh64/kernel/time.c
arch/sh64/kernel/vmlinux.lds.S
arch/sh64/lib/c-checksum.c
arch/sh64/lib/dbg.c
arch/sh64/lib/io.c
arch/sh64/lib/iomap.c
arch/sh64/lib/memcpy.c
arch/sh64/lib/udelay.c
arch/sh64/mach-cayman/iomap.c
arch/sh64/mach-cayman/irq.c
arch/sh64/mach-cayman/setup.c
arch/sh64/mach-harp/setup.c
arch/sh64/mach-romram/setup.c
arch/sh64/mach-sim/setup.c
arch/sh64/mm/cache.c
arch/sh64/mm/extable.c
arch/sh64/mm/hugetlbpage.c
arch/sparc/kernel/asm-offsets.c
arch/sparc/kernel/auxio.c
arch/sparc/kernel/cpu.c
arch/sparc/kernel/devices.c
arch/sparc/kernel/ebus.c
arch/sparc/kernel/entry.S
arch/sparc/kernel/head.S
arch/sparc/kernel/idprom.c
arch/sparc/kernel/ioport.c
arch/sparc/kernel/irq.c
arch/sparc/kernel/of_device.c
arch/sparc/kernel/pcic.c
arch/sparc/kernel/process.c
arch/sparc/kernel/prom.c
arch/sparc/kernel/setup.c
arch/sparc/kernel/signal.c
arch/sparc/kernel/sparc_ksyms.c
arch/sparc/kernel/sun4c_irq.c
arch/sparc/kernel/sun4d_irq.c
arch/sparc/kernel/sun4m_irq.c
arch/sparc/kernel/sys_solaris.c
arch/sparc/kernel/sys_sunos.c
arch/sparc/kernel/systbls.S
arch/sparc/kernel/time.c
arch/sparc/kernel/traps.c
arch/sparc/lib/atomic.S
arch/sparc/lib/bitops.S
arch/sparc/lib/rwsem.S
arch/sparc/mm/btfixup.c
arch/sparc/mm/extable.c
arch/sparc/mm/hypersparc.S
arch/sparc/mm/init.c
arch/sparc/mm/io-unit.c
arch/sparc/mm/iommu.c
arch/sparc/mm/srmmu.c
arch/sparc/mm/sun4c.c
arch/sparc/mm/swift.S
arch/sparc/mm/tsunami.S
arch/sparc/mm/viking.S
arch/sparc/prom/init.c
arch/sparc/prom/memory.c
arch/sparc/prom/misc.c
arch/sparc64/kernel/auxio.c
arch/sparc64/kernel/binfmt_elf32.c
arch/sparc64/kernel/cpu.c
arch/sparc64/kernel/devices.c
arch/sparc64/kernel/ebus.c
arch/sparc64/kernel/entry.S
arch/sparc64/kernel/etrap.S
arch/sparc64/kernel/head.S
arch/sparc64/kernel/irq.c
arch/sparc64/kernel/isa.c
arch/sparc64/kernel/kprobes.c
arch/sparc64/kernel/ktlb.S
arch/sparc64/kernel/of_device.c
arch/sparc64/kernel/pci.c
arch/sparc64/kernel/pci_common.c
arch/sparc64/kernel/pci_psycho.c
arch/sparc64/kernel/pci_sabre.c
arch/sparc64/kernel/pci_schizo.c
arch/sparc64/kernel/pci_sun4v.c
arch/sparc64/kernel/power.c
arch/sparc64/kernel/process.c
arch/sparc64/kernel/prom.c
arch/sparc64/kernel/rtrap.S
arch/sparc64/kernel/sbus.c
arch/sparc64/kernel/setup.c
arch/sparc64/kernel/signal.c
arch/sparc64/kernel/sparc64_ksyms.c
arch/sparc64/kernel/starfire.c
arch/sparc64/kernel/sys32.S
arch/sparc64/kernel/sys_sparc.c
arch/sparc64/kernel/sys_sparc32.c
arch/sparc64/kernel/sys_sunos32.c
arch/sparc64/kernel/systbls.S
arch/sparc64/kernel/time.c
arch/sparc64/kernel/traps.c
arch/sparc64/kernel/tsb.S
arch/sparc64/kernel/ttable.S
arch/sparc64/kernel/unaligned.c
arch/sparc64/lib/atomic.S
arch/sparc64/lib/bitops.S
arch/sparc64/lib/mcount.S
arch/sparc64/mm/hugetlbpage.c
arch/sparc64/mm/init.c
arch/sparc64/mm/ultra.S
arch/sparc64/prom/misc.c
arch/sparc64/solaris/misc.c
arch/um/Makefile-x86_64
arch/um/drivers/harddog_kern.c
arch/um/drivers/stderr_console.c
arch/um/include/sysdep-x86_64/kernel-offsets.h
arch/um/kernel/skas/mmu.c
arch/um/kernel/time.c [deleted file]
arch/um/kernel/time_kern.c
arch/um/kernel/vmlinux.lds.S
arch/um/os-Linux/mem.c
arch/um/sys-i386/checksum.S
arch/um/sys-i386/ptrace.c
arch/um/sys-i386/sys_call_table.S
arch/um/sys-ppc/misc.S
arch/um/sys-x86_64/syscall_table.c
arch/v850/kernel/anna.c
arch/v850/kernel/as85ep1.c
arch/v850/kernel/fpga85e2c.c
arch/v850/kernel/ma.c
arch/v850/kernel/me2.c
arch/v850/kernel/process.c
arch/v850/kernel/rte_cb.c
arch/v850/kernel/rte_cb_leds.c
arch/v850/kernel/rte_ma1_cb.c
arch/v850/kernel/rte_mb_a_pci.c
arch/v850/kernel/rte_me2_cb.c
arch/v850/kernel/rte_nb85e_cb.c
arch/v850/kernel/sim.c
arch/v850/kernel/sim85e2.c
arch/v850/kernel/syscalls.c
arch/v850/kernel/teg.c
arch/v850/kernel/v850_ksyms.c
arch/v850/kernel/vmlinux.lds.S
arch/x86_64/boot/setup.S
arch/x86_64/ia32/sys_ia32.c
arch/x86_64/kernel/acpi/sleep.c
arch/x86_64/kernel/aperture.c
arch/x86_64/kernel/apic.c
arch/x86_64/kernel/e820.c
arch/x86_64/kernel/entry.S
arch/x86_64/kernel/functionlist
arch/x86_64/kernel/genapic.c
arch/x86_64/kernel/genapic_cluster.c
arch/x86_64/kernel/genapic_flat.c
arch/x86_64/kernel/i387.c
arch/x86_64/kernel/i8259.c
arch/x86_64/kernel/io_apic.c
arch/x86_64/kernel/kprobes.c
arch/x86_64/kernel/mpparse.c
arch/x86_64/kernel/nmi.c
arch/x86_64/kernel/pci-gart.c
arch/x86_64/kernel/setup.c
arch/x86_64/kernel/setup64.c
arch/x86_64/kernel/smpboot.c
arch/x86_64/kernel/suspend.c
arch/x86_64/kernel/syscall.c
arch/x86_64/kernel/traps.c
arch/x86_64/kernel/vmlinux.lds.S
arch/x86_64/mm/extable.c
arch/x86_64/mm/fault.c
arch/x86_64/mm/init.c
arch/x86_64/mm/mmap.c
arch/x86_64/mm/pageattr.c
arch/xtensa/boot/boot-elf/bootstrap.S
arch/xtensa/kernel/coprocessor.S
arch/xtensa/kernel/head.S
arch/xtensa/kernel/pci.c
arch/xtensa/kernel/platform.c
arch/xtensa/kernel/process.c
arch/xtensa/kernel/ptrace.c
arch/xtensa/kernel/setup.c
arch/xtensa/kernel/syscalls.c
arch/xtensa/kernel/time.c
arch/xtensa/kernel/vmlinux.lds.S
arch/xtensa/kernel/xtensa_ksyms.c
arch/xtensa/mm/init.c
arch/xtensa/platform-iss/console.c
arch/xtensa/platform-iss/network.c
arch/xtensa/platform-iss/setup.c
block/as-iosched.c
block/blktrace.c
block/cfq-iosched.c
block/deadline-iosched.c
block/elevator.c
block/genhd.c
block/ll_rw_blk.c
drivers/acorn/block/Kconfig
drivers/acorn/block/mfmhd.c
drivers/acpi/acpi_memhotplug.c
drivers/acpi/numa.c
drivers/acpi/osl.c
drivers/acpi/pci_irq.c
drivers/acpi/scan.c
drivers/acpi/tables.c
drivers/atm/adummy.c
drivers/atm/ambassador.h
drivers/atm/eni.c
drivers/atm/fore200e.c
drivers/atm/fore200e.h
drivers/atm/he.c
drivers/atm/horizon.h
drivers/atm/idt77105.c
drivers/atm/idt77105.h
drivers/atm/idt77252.c
drivers/atm/iphase.c
drivers/atm/iphase.h
drivers/atm/nicstar.c
drivers/atm/suni.c
drivers/atm/zatm.c
drivers/atm/zatm.h
drivers/base/bus.c
drivers/base/class.c
drivers/base/core.c
drivers/base/driver.c
drivers/base/node.c
drivers/base/power/main.c
drivers/base/power/shutdown.c
drivers/base/sys.c
drivers/block/acsi.c
drivers/block/loop.c
drivers/block/paride/paride.c
drivers/block/pktcdvd.c
drivers/block/ps2esdi.c
drivers/block/rd.c
drivers/block/swim3.c
drivers/block/umem.c
drivers/bluetooth/bcm203x.c
drivers/bluetooth/bfusb.c
drivers/bluetooth/bluecard_cs.c
drivers/bluetooth/bpa10x.c
drivers/bluetooth/bt3c_cs.c
drivers/bluetooth/btuart_cs.c
drivers/bluetooth/dtl1_cs.c
drivers/bluetooth/hci_bcsp.c
drivers/bluetooth/hci_h4.c
drivers/bluetooth/hci_ldisc.c
drivers/bluetooth/hci_usb.c
drivers/bluetooth/hci_vhci.c
drivers/cdrom/cdrom.c
drivers/cdrom/cm206.c
drivers/cdrom/sbpcd.c
drivers/char/agp/amd64-agp.c
drivers/char/agp/generic.c
drivers/char/amiserial.c
drivers/char/consolemap.c
drivers/char/cyclades.c
drivers/char/decserial.c
drivers/char/drm/drm.h
drivers/char/drm/drmP.h
drivers/char/drm/drm_memory.c
drivers/char/drm/drm_memory.h
drivers/char/drm/drm_memory_debug.h
drivers/char/drm/drm_scatter.c
drivers/char/drm/drm_sysfs.c
drivers/char/drm/ffb_drv.c
drivers/char/drm/i810_drv.c
drivers/char/drm/i830_drv.c
drivers/char/drm/mga_drv.c
drivers/char/drm/r128_drv.c
drivers/char/drm/radeon_drv.c
drivers/char/drm/savage_drv.c
drivers/char/drm/sis_drv.c
drivers/char/drm/tdfx_drv.c
drivers/char/drm/via_drv.c
drivers/char/ds1302.c
drivers/char/ds1620.c
drivers/char/ec3104_keyb.c
drivers/char/epca.c
drivers/char/ftape/lowlevel/ftape-calibr.c
drivers/char/ftape/lowlevel/ftape-ctl.c
drivers/char/ftape/lowlevel/ftape-init.c
drivers/char/ftape/lowlevel/ftape-proc.c
drivers/char/ftape/lowlevel/ftape-setup.c
drivers/char/ftape/lowlevel/ftape-tracing.h
drivers/char/ftape/lowlevel/ftape_syms.c
drivers/char/ftape/zftape/zftape-ctl.c
drivers/char/ftape/zftape/zftape-ctl.h
drivers/char/ftape/zftape/zftape-init.c
drivers/char/genrtc.c
drivers/char/hpet.c
drivers/char/hvc_console.c
drivers/char/ip2/i2ellis.h
drivers/char/ip2/ip2main.c
drivers/char/ipmi/ipmi_devintf.c
drivers/char/ipmi/ipmi_msghandler.c
drivers/char/ipmi/ipmi_poweroff.c
drivers/char/ipmi/ipmi_si_intf.c
drivers/char/ipmi/ipmi_watchdog.c
drivers/char/isicom.c
drivers/char/istallion.c
drivers/char/keyboard.c
drivers/char/lcd.c
drivers/char/lp.c
drivers/char/mbcs.c
drivers/char/mem.c
drivers/char/misc.c
drivers/char/moxa.c
drivers/char/mwave/3780i.c
drivers/char/mxser.c
drivers/char/n_hdlc.c
drivers/char/nvram.c
drivers/char/nwbutton.c
drivers/char/pc8736x_gpio.c
drivers/char/pcmcia/cm4000_cs.c
drivers/char/pty.c
drivers/char/qtronix.c
drivers/char/random.c
drivers/char/rio/rio_linux.c
drivers/char/rio/rio_linux.h
drivers/char/rio/rioinit.c
drivers/char/rtc.c
drivers/char/scx200_gpio.c
drivers/char/serial167.c
drivers/char/sonypi.c
drivers/char/specialix.c
drivers/char/stallion.c
drivers/char/synclink_gt.c
drivers/char/synclinkmp.c
drivers/char/sysrq.c
drivers/char/tipar.c
drivers/char/tlclk.c
drivers/char/tty_io.c
drivers/char/vc_screen.c
drivers/char/viocons.c
drivers/char/viotape.c
drivers/char/vme_scc.c
drivers/char/vt.c
drivers/char/vt_ioctl.c
drivers/char/watchdog/at91_wdt.c
drivers/char/watchdog/booke_wdt.c
drivers/char/watchdog/eurotechwdt.c
drivers/char/watchdog/ib700wdt.c
drivers/char/watchdog/ibmasr.c
drivers/char/watchdog/indydog.c
drivers/char/watchdog/ixp2000_wdt.c
drivers/char/watchdog/ixp4xx_wdt.c
drivers/char/watchdog/machzwd.c
drivers/char/watchdog/mixcomwd.c
drivers/char/watchdog/mpc83xx_wdt.c
drivers/char/watchdog/mpc8xx_wdt.c
drivers/char/watchdog/mpcore_wdt.c
drivers/char/watchdog/mv64x60_wdt.c
drivers/char/watchdog/pcwd_usb.c
drivers/char/watchdog/s3c2410_wdt.c
drivers/char/watchdog/sa1100_wdt.c
drivers/char/watchdog/sbc8360.c
drivers/char/watchdog/sbc_epx_c3.c
drivers/char/watchdog/sc1200wdt.c
drivers/char/watchdog/scx200_wdt.c
drivers/char/watchdog/shwdt.c
drivers/char/watchdog/softdog.c
drivers/char/watchdog/w83977f_wdt.c
drivers/char/watchdog/wd501p.h
drivers/char/watchdog/wdrtas.c
drivers/char/watchdog/wdt.c
drivers/char/watchdog/wdt977.c
drivers/char/watchdog/wdt_pci.c
drivers/cpufreq/cpufreq.c
drivers/cpufreq/cpufreq_stats.c
drivers/cpufreq/cpufreq_userspace.c
drivers/edac/amd76x_edac.c
drivers/edac/e752x_edac.c
drivers/edac/e7xxx_edac.c
drivers/edac/edac_mc.c
drivers/edac/edac_mc.h
drivers/edac/i82860_edac.c
drivers/edac/i82875p_edac.c
drivers/edac/r82600_edac.c
drivers/eisa/virtual_root.c
drivers/fc4/fc_syms.c
drivers/firmware/dell_rbu.c
drivers/firmware/efivars.c
drivers/firmware/pcdp.c
drivers/hwmon/hwmon-vid.c
drivers/hwmon/w83792d.c
drivers/i2c/busses/i2c-i801.c
drivers/i2c/busses/i2c-ibm_iic.c
drivers/i2c/busses/i2c-iop3xx.c
drivers/i2c/busses/i2c-mpc.c
drivers/i2c/busses/i2c-powermac.c
drivers/i2c/busses/i2c-s3c2410.c
drivers/i2c/busses/scx200_i2c.c
drivers/i2c/chips/isp1301_omap.c
drivers/i2c/chips/tps65010.c
drivers/ide/arm/icside.c
drivers/ide/cris/ide-cris.c
drivers/ide/h8300/ide-h8300.c
drivers/ide/ide-cd.c
drivers/ide/ide-disk.c
drivers/ide/ide-dma.c
drivers/ide/ide-floppy.c
drivers/ide/ide-io.c
drivers/ide/ide-iops.c
drivers/ide/ide-lib.c
drivers/ide/ide-probe.c
drivers/ide/ide-proc.c
drivers/ide/ide-tape.c
drivers/ide/ide-taskfile.c
drivers/ide/ide.c
drivers/ide/legacy/ali14xx.c
drivers/ide/legacy/dtc2278.c
drivers/ide/legacy/gayle.c
drivers/ide/legacy/ht6560b.c
drivers/ide/legacy/ide-cs.c
drivers/ide/legacy/macide.c
drivers/ide/legacy/qd65xx.c
drivers/ide/legacy/umc8672.c
drivers/ide/pci/aec62xx.c
drivers/ide/pci/alim15x3.c
drivers/ide/pci/amd74xx.c
drivers/ide/pci/atiixp.c
drivers/ide/pci/cmd640.c
drivers/ide/pci/cmd64x.c
drivers/ide/pci/cs5520.c
drivers/ide/pci/cs5530.c
drivers/ide/pci/cs5535.c
drivers/ide/pci/cy82c693.c
drivers/ide/pci/hpt34x.c
drivers/ide/pci/hpt366.c
drivers/ide/pci/it8172.c
drivers/ide/pci/it821x.c
drivers/ide/pci/ns87415.c
drivers/ide/pci/pdc202xx_new.c
drivers/ide/pci/pdc202xx_old.c
drivers/ide/pci/piix.c
drivers/ide/pci/sc1200.c
drivers/ide/pci/serverworks.c
drivers/ide/pci/siimage.c
drivers/ide/pci/sis5513.c
drivers/ide/pci/sl82c105.c
drivers/ide/pci/slc90e66.c
drivers/ide/pci/triflex.c
drivers/ide/pci/trm290.c
drivers/ide/pci/via82cxxx.c
drivers/ide/ppc/mpc8xx.c
drivers/ide/ppc/pmac.c
drivers/ide/setup-pci.c
drivers/ieee1394/config_roms.c
drivers/ieee1394/dv1394.c
drivers/ieee1394/highlevel.c
drivers/ieee1394/hosts.c
drivers/ieee1394/ieee1394_core.c
drivers/ieee1394/nodemgr.c
drivers/ieee1394/ohci1394.c
drivers/ieee1394/oui2c.sh
drivers/ieee1394/pcilynx.c
drivers/ieee1394/pcilynx.h
drivers/ieee1394/sbp2.c
drivers/ieee1394/video1394.c
drivers/infiniband/core/cm.c
drivers/infiniband/core/uverbs_cmd.c
drivers/infiniband/hw/ipath/ipath_fs.c
drivers/infiniband/hw/ipath/ipath_intr.c
drivers/infiniband/hw/mthca/mthca_main.c
drivers/infiniband/hw/mthca/mthca_reset.c
drivers/infiniband/ulp/ipoib/ipoib.h
drivers/infiniband/ulp/iser/iscsi_iser.c
drivers/input/gameport/emu10k1-gp.c
drivers/input/gameport/ns558.c
drivers/input/joystick/analog.c
drivers/input/joystick/iforce/iforce.h
drivers/input/keyboard/hilkbd.c
drivers/input/keyboard/locomokbd.c
drivers/input/misc/sparcspkr.c
drivers/input/mouse/inport.c
drivers/input/mouse/sermouse.c
drivers/input/mouse/vsxxxaa.c
drivers/input/mousedev.c
drivers/input/power.c
drivers/input/serio/ct82c710.c
drivers/input/serio/gscps2.c
drivers/input/serio/i8042-sparcio.h
drivers/input/serio/i8042.c
drivers/input/serio/i8042.h
drivers/input/tsdev.c
drivers/isdn/capi/capi.c
drivers/isdn/capi/capiutil.c
drivers/isdn/divert/divert_procfs.c
drivers/isdn/gigaset/gigaset.h
drivers/isdn/hardware/avm/b1dma.c
drivers/isdn/hardware/avm/b1pci.c
drivers/isdn/hardware/avm/c4.c
drivers/isdn/hardware/avm/t1pci.c
drivers/isdn/hardware/eicon/capimain.c
drivers/isdn/hardware/eicon/diva_didd.c
drivers/isdn/hardware/eicon/divamnt.c
drivers/isdn/hardware/eicon/divasi.c
drivers/isdn/hardware/eicon/divasmain.c
drivers/isdn/hardware/eicon/divasproc.c
drivers/isdn/hardware/eicon/platform.h
drivers/isdn/hisax/avm_pci.c
drivers/isdn/hisax/bkm_a4t.c
drivers/isdn/hisax/bkm_a8.c
drivers/isdn/hisax/config.c
drivers/isdn/hisax/diva.c
drivers/isdn/hisax/elsa.c
drivers/isdn/hisax/elsa_ser.c
drivers/isdn/hisax/enternow_pci.c
drivers/isdn/hisax/gazel.c
drivers/isdn/hisax/hfc4s8s_l1.c
drivers/isdn/hisax/hfc_pci.c
drivers/isdn/hisax/hfc_usb.c
drivers/isdn/hisax/hisax.h
drivers/isdn/hisax/hisax_debug.h
drivers/isdn/hisax/ipacx.c
drivers/isdn/hisax/isdnl3.c
drivers/isdn/hisax/l3dss1.c
drivers/isdn/hisax/niccy.c
drivers/isdn/hisax/nj_s.c
drivers/isdn/hisax/nj_u.c
drivers/isdn/hisax/sedlbauer.c
drivers/isdn/hisax/st5481.h
drivers/isdn/hisax/st5481_init.c
drivers/isdn/hisax/telespci.c
drivers/isdn/hisax/w6692.c
drivers/isdn/hysdn/boardergo.c
drivers/isdn/hysdn/hysdn_defs.h
drivers/isdn/hysdn/hysdn_init.c
drivers/isdn/hysdn/hysdn_sched.c
drivers/isdn/i4l/isdn_common.c
drivers/isdn/i4l/isdn_net.c
drivers/isdn/i4l/isdn_ppp.c
drivers/isdn/i4l/isdn_tty.c
drivers/isdn/i4l/isdn_tty.h
drivers/isdn/isdnloop/isdnloop.c
drivers/leds/led-class.c
drivers/leds/led-triggers.c
drivers/leds/leds-corgi.c
drivers/leds/leds-ixp4xx-gpio.c
drivers/leds/leds-locomo.c
drivers/leds/leds-s3c24xx.c
drivers/leds/leds-spitz.c
drivers/leds/leds-tosa.c
drivers/leds/ledtrig-timer.c
drivers/macintosh/adb.c
drivers/macintosh/adbhid.c
drivers/macintosh/apm_emu.c
drivers/macintosh/mac_hid.c
drivers/macintosh/macio_asic.c
drivers/macintosh/macio_sysfs.c
drivers/macintosh/mediabay.c
drivers/macintosh/smu.c
drivers/macintosh/therm_adt746x.c
drivers/macintosh/therm_pm72.c
drivers/macintosh/therm_pm72.h
drivers/macintosh/therm_windtunnel.c
drivers/macintosh/via-cuda.c
drivers/macintosh/via-pmu.c
drivers/macintosh/windfarm_cpufreq_clamp.c
drivers/md/bitmap.c
drivers/md/dm-snap.c
drivers/md/kcopyd.c
drivers/md/md.c
drivers/md/raid5.c
drivers/media/common/saa7146_hlp.c
drivers/media/dvb/b2c2/flexcop-common.h
drivers/media/dvb/cinergyT2/cinergyT2.c
drivers/media/dvb/dvb-core/dvb_frontend.c
drivers/media/dvb/dvb-usb/dvb-usb.h
drivers/media/dvb/frontends/cx22700.c
drivers/media/dvb/frontends/cx24123.c
drivers/media/dvb/frontends/dib3000mb.c
drivers/media/dvb/frontends/dib3000mc.c
drivers/media/dvb/frontends/lgdt330x.c
drivers/media/dvb/frontends/tda10021.c
drivers/media/dvb/frontends/ves1820.c
drivers/media/dvb/ttpci/av7110.c
drivers/media/dvb/ttpci/budget-av.c
drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
drivers/media/radio/radio-gemtek-pci.c
drivers/media/video/arv.c
drivers/media/video/bt8xx/bttv-cards.c
drivers/media/video/bt8xx/bttvp.h
drivers/media/video/compat_ioctl32.c
drivers/media/video/cpia.c
drivers/media/video/cpia2/cpia2_v4l.c
drivers/media/video/cpia_pp.c
drivers/media/video/cx88/cx88-blackbird.c
drivers/media/video/cx88/cx88-cards.c
drivers/media/video/cx88/cx88-dvb.c
drivers/media/video/cx88/cx88-video.c
drivers/media/video/cx88/cx88.h
drivers/media/video/em28xx/em28xx-video.c
drivers/media/video/meye.c
drivers/media/video/meye.h
drivers/media/video/msp3400-driver.h
drivers/media/video/ov511.c
drivers/media/video/pvrusb2/Makefile
drivers/media/video/pvrusb2/pvrusb2-audio.c
drivers/media/video/pvrusb2/pvrusb2-context.c
drivers/media/video/pvrusb2/pvrusb2-ctrl.c
drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.c
drivers/media/video/pvrusb2/pvrusb2-debugifc.c
drivers/media/video/pvrusb2/pvrusb2-demod.c [deleted file]
drivers/media/video/pvrusb2/pvrusb2-demod.h [deleted file]
drivers/media/video/pvrusb2/pvrusb2-eeprom.c
drivers/media/video/pvrusb2/pvrusb2-encoder.c
drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h
drivers/media/video/pvrusb2/pvrusb2-hdw.c
drivers/media/video/pvrusb2/pvrusb2-hdw.h
drivers/media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c
drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.c
drivers/media/video/pvrusb2/pvrusb2-i2c-core.c
drivers/media/video/pvrusb2/pvrusb2-i2c-core.h
drivers/media/video/pvrusb2/pvrusb2-io.c
drivers/media/video/pvrusb2/pvrusb2-io.h
drivers/media/video/pvrusb2/pvrusb2-ioread.c
drivers/media/video/pvrusb2/pvrusb2-ioread.h
drivers/media/video/pvrusb2/pvrusb2-main.c
drivers/media/video/pvrusb2/pvrusb2-std.c
drivers/media/video/pvrusb2/pvrusb2-sysfs.c
drivers/media/video/pvrusb2/pvrusb2-tuner.c
drivers/media/video/pvrusb2/pvrusb2-v4l2.c
drivers/media/video/pvrusb2/pvrusb2-video-v4l.c
drivers/media/video/pvrusb2/pvrusb2-wm8775.c
drivers/media/video/pwc/pwc-uncompress.h
drivers/media/video/pwc/pwc.h
drivers/media/video/saa7134/saa7134-core.c
drivers/media/video/se401.c
drivers/media/video/stv680.c
drivers/media/video/tda9887.c
drivers/media/video/tuner-core.c
drivers/media/video/tuner-simple.c
drivers/media/video/tuner-types.c
drivers/media/video/tvaudio.c
drivers/media/video/tveeprom.c
drivers/media/video/usbvideo/usbvideo.h
drivers/media/video/v4l1-compat.c
drivers/media/video/v4l2-common.c
drivers/media/video/videocodec.c
drivers/media/video/videocodec.h
drivers/media/video/w9968cf.h
drivers/media/video/zoran_card.c
drivers/media/video/zoran_device.c
drivers/media/video/zoran_driver.c
drivers/media/video/zoran_procfs.c
drivers/media/video/zr36120_mem.c
drivers/message/fusion/mptbase.c
drivers/message/fusion/mptbase.h
drivers/message/i2o/debug.c
drivers/mfd/ucb1x00-core.c
drivers/mfd/ucb1x00-ts.c
drivers/misc/ibmasm/ibmasm.h
drivers/mmc/at91_mci.c
drivers/mmc/au1xmmc.c
drivers/mmc/imxmmc.c
drivers/mmc/mmc.c
drivers/mmc/mmci.c
drivers/mmc/omap.c
drivers/mmc/pxamci.c
drivers/mmc/wbsd.c
drivers/mtd/chips/cfi_cmdset_0002.c
drivers/mtd/chips/cfi_probe.c
drivers/mtd/chips/chipreg.c
drivers/mtd/chips/jedec_probe.c
drivers/mtd/devices/block2mtd.c
drivers/mtd/devices/docprobe.c
drivers/mtd/devices/mtd_dataflash.c
drivers/mtd/devices/mtdram.c
drivers/mtd/devices/pmc551.c
drivers/mtd/inftlcore.c
drivers/mtd/maps/alchemy-flash.c
drivers/mtd/maps/amd76xrom.c
drivers/mtd/maps/ceiva.c
drivers/mtd/maps/cstm_mips_ixx.c
drivers/mtd/maps/dbox2-flash.c
drivers/mtd/maps/dc21285.c
drivers/mtd/maps/dilnetpc.c
drivers/mtd/maps/dmv182.c
drivers/mtd/maps/ebony.c
drivers/mtd/maps/edb7312.c
drivers/mtd/maps/h720x-flash.c
drivers/mtd/maps/ichxrom.c
drivers/mtd/maps/impa7.c
drivers/mtd/maps/integrator-flash.c
drivers/mtd/maps/ipaq-flash.c
drivers/mtd/maps/l440gx.c
drivers/mtd/maps/lasat.c
drivers/mtd/maps/mpc1211.c
drivers/mtd/maps/mtx-1_flash.c
drivers/mtd/maps/ocotea.c
drivers/mtd/maps/omap-toto-flash.c
drivers/mtd/maps/physmap.c
drivers/mtd/maps/redwood.c
drivers/mtd/maps/sa1100-flash.c
drivers/mtd/maps/sbc8240.c
drivers/mtd/maps/sc520cdp.c
drivers/mtd/maps/scb2_flash.c
drivers/mtd/maps/scx200_docflash.c
drivers/mtd/maps/solutionengine.c
drivers/mtd/maps/tqm834x.c
drivers/mtd/maps/tqm8xxl.c
drivers/mtd/maps/ts5500_flash.c
drivers/mtd/maps/uclinux.c
drivers/mtd/maps/walnut.c
drivers/mtd/maps/wr_sbc82xx_flash.c
drivers/mtd/mtdblock.c
drivers/mtd/mtdchar.c
drivers/mtd/mtdcore.c
drivers/mtd/mtdpart.c
drivers/mtd/nand/nandsim.c
drivers/mtd/nftlcore.c
drivers/net/3c509.c
drivers/net/3c515.c
drivers/net/3c59x.c
drivers/net/8139cp.c
drivers/net/8139too.c
drivers/net/82596.c
drivers/net/8390.h
drivers/net/Space.c
drivers/net/a2065.c
drivers/net/acenic.c
drivers/net/acenic.h
drivers/net/acenic_firmware.h
drivers/net/amd8111e.c
drivers/net/appletalk/cops.c
drivers/net/appletalk/cops_ffdrv.h
drivers/net/appletalk/cops_ltdrv.h
drivers/net/appletalk/ipddp.c
drivers/net/arcnet/arcnet.c
drivers/net/arm/at91_ether.c
drivers/net/at1700.c
drivers/net/au1000_eth.c
drivers/net/bmac.c
drivers/net/bnx2.c
drivers/net/bnx2.h
drivers/net/bonding/bond_main.c
drivers/net/bonding/bond_sysfs.c
drivers/net/cassini.c
drivers/net/chelsio/common.h
drivers/net/chelsio/cxgb2.c
drivers/net/chelsio/sge.c
drivers/net/cris/eth_v10.c
drivers/net/cs89x0.c
drivers/net/cs89x0.h
drivers/net/declance.c
drivers/net/depca.c
drivers/net/dl2k.c
drivers/net/dummy.c
drivers/net/e100.c
drivers/net/e1000/e1000.h
drivers/net/eepro100.c
drivers/net/eexpress.c
drivers/net/epic100.c
drivers/net/fec.c
drivers/net/fec_8xx/fec_8xx-netta.c
drivers/net/fec_8xx/fec_main.c
drivers/net/fec_8xx/fec_mii.c
drivers/net/fs_enet/fs_enet-main.c
drivers/net/fs_enet/fs_enet-mii.c
drivers/net/fs_enet/mac-fcc.c
drivers/net/fs_enet/mac-fec.c
drivers/net/fs_enet/mac-scc.c
drivers/net/fs_enet/mii-bitbang.c
drivers/net/fs_enet/mii-fixed.c
drivers/net/gianfar.c
drivers/net/gianfar.h
drivers/net/gianfar_ethtool.c
drivers/net/gianfar_mii.c
drivers/net/gianfar_sysfs.c
drivers/net/gt96100eth.h
drivers/net/hamradio/6pack.c
drivers/net/hamradio/bpqether.c
drivers/net/hamradio/mkiss.c
drivers/net/hamradio/scc.c
drivers/net/hamradio/yam.c
drivers/net/ibm_emac/ibm_emac.h
drivers/net/ibm_emac/ibm_emac_core.c
drivers/net/ibm_emac/ibm_emac_core.h
drivers/net/ibm_emac/ibm_emac_debug.c
drivers/net/ibm_emac/ibm_emac_debug.h
drivers/net/ibm_emac/ibm_emac_mal.c
drivers/net/ibm_emac/ibm_emac_mal.h
drivers/net/ibm_emac/ibm_emac_phy.c
drivers/net/ibm_emac/ibm_emac_rgmii.c
drivers/net/ibm_emac/ibm_emac_rgmii.h
drivers/net/ibm_emac/ibm_emac_tah.c
drivers/net/ibm_emac/ibm_emac_tah.h
drivers/net/ibm_emac/ibm_emac_zmii.c
drivers/net/ibm_emac/ibm_emac_zmii.h
drivers/net/ibmveth.c
drivers/net/ifb.c
drivers/net/ioc3-eth.c
drivers/net/irda/Kconfig
drivers/net/irda/au1k_ir.c
drivers/net/irda/mcs7780.c
drivers/net/irda/pxaficp_ir.c
drivers/net/irda/sa1100_ir.c
drivers/net/irda/vlsi_ir.c
drivers/net/iseries_veth.c
drivers/net/ixgb/ixgb.h
drivers/net/ixp2000/caleb.c
drivers/net/ixp2000/enp2611.c
drivers/net/ixp2000/ixp2400-msf.c
drivers/net/ixp2000/ixpdev.c
drivers/net/ixp2000/pm3386.c
drivers/net/mace.c
drivers/net/mv643xx_eth.h
drivers/net/myri_sbus.c
drivers/net/natsemi.c
drivers/net/ns83820.c
drivers/net/pci-skeleton.c
drivers/net/pcmcia/com20020_cs.c
drivers/net/phy/cicada.c
drivers/net/phy/davicom.c
drivers/net/phy/lxt.c
drivers/net/phy/marvell.c
drivers/net/phy/mdio_bus.c
drivers/net/phy/phy.c
drivers/net/phy/phy_device.c
drivers/net/phy/qsemi.c
drivers/net/ppp_generic.c
drivers/net/ppp_mppe.c
drivers/net/rrunner.c
drivers/net/rrunner.h
drivers/net/s2io.c
drivers/net/s2io.h
drivers/net/sb1250-mac.c
drivers/net/shaper.c
drivers/net/sk98lin/skvpd.c
drivers/net/skfp/h/sba.h
drivers/net/skge.c
drivers/net/sky2.c
drivers/net/slhc.c
drivers/net/slip.c
drivers/net/slip.h
drivers/net/smc-ultra.c
drivers/net/smc91x.c
drivers/net/sonic.h
drivers/net/spider_net.c
drivers/net/starfire.c
drivers/net/stnic.c
drivers/net/sungem_phy.c
drivers/net/sunhme.c
drivers/net/sunhme.h
drivers/net/sunlance.c
drivers/net/tg3.c
drivers/net/tg3.h
drivers/net/tokenring/3c359.c
drivers/net/tokenring/lanstreamer.c
drivers/net/tokenring/olympic.c
drivers/net/tokenring/smctr.c
drivers/net/tokenring/smctr_firmware.h
drivers/net/tulip/de2104x.c
drivers/net/tulip/de4x5.c
drivers/net/tulip/interrupt.c
drivers/net/tulip/tulip.h
drivers/net/tulip/tulip_core.c
drivers/net/tulip/xircom_tulip_cb.c
drivers/net/tun.c
drivers/net/via-velocity.c
drivers/net/wan/cosa.c
drivers/net/wan/hdlc_generic.c
drivers/net/wan/lmc/lmc_media.c
drivers/net/wan/sbni.c
drivers/net/wan/syncppp.c
drivers/net/wireless/airo.c
drivers/net/wireless/airo_cs.c
drivers/net/wireless/airport.c
drivers/net/wireless/arlan-main.c
drivers/net/wireless/arlan-proc.c
drivers/net/wireless/arlan.h
drivers/net/wireless/atmel.c
drivers/net/wireless/atmel_cs.c
drivers/net/wireless/atmel_pci.c
drivers/net/wireless/hermes.c
drivers/net/wireless/hostap/hostap_cs.c
drivers/net/wireless/hostap/hostap_hw.c
drivers/net/wireless/hostap/hostap_main.c
drivers/net/wireless/hostap/hostap_pci.c
drivers/net/wireless/hostap/hostap_plx.c
drivers/net/wireless/ipw2100.c
drivers/net/wireless/ipw2200.h
drivers/net/wireless/netwave_cs.c
drivers/net/wireless/orinoco.c
drivers/net/wireless/orinoco_cs.c
drivers/net/wireless/orinoco_nortel.c
drivers/net/wireless/orinoco_pci.c
drivers/net/wireless/orinoco_plx.c
drivers/net/wireless/orinoco_tmd.c
drivers/net/wireless/prism54/islpci_mgt.c
drivers/net/wireless/prism54/prismcompat.h
drivers/net/wireless/ray_cs.c
drivers/net/wireless/spectrum_cs.c
drivers/net/wireless/strip.c
drivers/net/wireless/wavelan_cs.p.h
drivers/net/wireless/wl3501_cs.c
drivers/net/znet.c
drivers/nubus/nubus.c
drivers/nubus/nubus_syms.c
drivers/parisc/ccio-dma.c
drivers/parisc/dino.c
drivers/parisc/gsc.c
drivers/parisc/led.c
drivers/parisc/power.c
drivers/parisc/sba_iommu.c
drivers/parport/ieee1284.c
drivers/parport/ieee1284_ops.c
drivers/parport/parport_pc.c
drivers/parport/procfs.c
drivers/parport/share.c
drivers/pci/hotplug/cpci_hotplug_core.c
drivers/pci/hotplug/cpci_hotplug_pci.c
drivers/pci/hotplug/cpcihp_generic.c
drivers/pci/hotplug/cpcihp_zt5550.c
drivers/pci/hotplug/cpqphp_core.c
drivers/pci/hotplug/cpqphp_ctrl.c
drivers/pci/hotplug/cpqphp_nvram.c
drivers/pci/hotplug/cpqphp_pci.c
drivers/pci/hotplug/cpqphp_sysfs.c
drivers/pci/hotplug/fakephp.c
drivers/pci/hotplug/pci_hotplug_core.c
drivers/pci/hotplug/pcihp_skeleton.c
drivers/pci/hotplug/rpaphp_core.c
drivers/pci/msi.c
drivers/pci/pci-sysfs.c
drivers/pci/quirks.c
drivers/pci/rom.c
drivers/pcmcia/at91_cf.c
drivers/pcmcia/au1000_db1x00.c
drivers/pcmcia/au1000_generic.c
drivers/pcmcia/au1000_generic.h
drivers/pcmcia/au1000_pb1x00.c
drivers/pcmcia/cs.c
drivers/pcmcia/m32r_cfc.c
drivers/pcmcia/m32r_pcc.c
drivers/pcmcia/pcmcia_resource.c
drivers/pcmcia/pxa2xx_base.c
drivers/pcmcia/sa1100_generic.c
drivers/pcmcia/sa1111_generic.c
drivers/pcmcia/sa11xx_base.c
drivers/pcmcia/soc_common.c
drivers/pcmcia/ti113x.h
drivers/pcmcia/yenta_socket.c
drivers/pnp/card.c
drivers/pnp/driver.c
drivers/pnp/isapnp/compat.c
drivers/pnp/isapnp/core.c
drivers/pnp/isapnp/proc.c
drivers/pnp/manager.c
drivers/pnp/pnpacpi/core.c
drivers/pnp/pnpbios/rsparser.c
drivers/pnp/quirks.c
drivers/pnp/resource.c
drivers/pnp/support.c
drivers/rapidio/rio-scan.c
drivers/rapidio/rio-sysfs.c
drivers/rapidio/rio.c
drivers/rtc/Kconfig
drivers/s390/block/dasd.c
drivers/s390/block/dasd_devmap.c
drivers/s390/block/dasd_diag.c
drivers/s390/block/dasd_eckd.c
drivers/s390/block/dasd_erp.c
drivers/s390/block/dasd_fba.c
drivers/s390/block/dasd_genhd.c
drivers/s390/block/dasd_ioctl.c
drivers/s390/block/dasd_proc.c
drivers/s390/char/con3215.c
drivers/s390/char/con3270.c
drivers/s390/char/ctrlchar.c
drivers/s390/char/fs3270.c
drivers/s390/char/keyboard.c
drivers/s390/char/raw3270.c
drivers/s390/char/sclp_con.c
drivers/s390/char/sclp_cpi.c
drivers/s390/char/sclp_quiesce.c
drivers/s390/char/sclp_rw.c
drivers/s390/char/sclp_tty.c
drivers/s390/char/sclp_vt220.c
drivers/s390/char/tape.h
drivers/s390/char/tape_34xx.c
drivers/s390/char/tape_3590.c
drivers/s390/char/tape_block.c
drivers/s390/char/tape_char.c
drivers/s390/char/tape_core.c
drivers/s390/char/tape_proc.c
drivers/s390/char/tape_std.c
drivers/s390/char/tty3270.c
drivers/s390/cio/blacklist.c
drivers/s390/cio/chsc.c
drivers/s390/cio/cio.c
drivers/s390/cio/device.c
drivers/s390/cio/device_fsm.c
drivers/s390/cio/device_id.c
drivers/s390/cio/device_ops.c
drivers/s390/cio/device_pgid.c
drivers/s390/cio/device_status.c
drivers/s390/cio/qdio.c
drivers/s390/net/fsm.c
drivers/s390/net/iucv.c
drivers/s390/net/qeth_eddp.c
drivers/s390/net/qeth_main.c
drivers/s390/s390mach.c
drivers/s390/sysinfo.c
drivers/sbus/char/envctrl.c
drivers/sbus/char/flash.c
drivers/sbus/char/openprom.c
drivers/sbus/dvma.c
drivers/sbus/sbus.c
drivers/scsi/53c700.c
drivers/scsi/53c7xx.c
drivers/scsi/BusLogic.c
drivers/scsi/BusLogic.h
drivers/scsi/FlashPoint.c
drivers/scsi/NCR53C9x.c
drivers/scsi/NCR53C9x.h
drivers/scsi/advansys.c
drivers/scsi/aha1542.c
drivers/scsi/aic7xxx/aic79xx_osm.h
drivers/scsi/aic7xxx/aic7xxx_osm.h
drivers/scsi/aic7xxx_old/aic7xxx_proc.c
drivers/scsi/amiga7xx.c
drivers/scsi/arm/acornscsi.c
drivers/scsi/atari_NCR5380.c
drivers/scsi/atari_scsi.c
drivers/scsi/ch.c
drivers/scsi/constants.c
drivers/scsi/dpt/dpti_i2o.h
drivers/scsi/eata.c
drivers/scsi/eata_pio.c
drivers/scsi/esp.c
drivers/scsi/fcal.c
drivers/scsi/fdomain.c
drivers/scsi/g_NCR5380.c
drivers/scsi/g_NCR5380.h
drivers/scsi/ibmmca.c
drivers/scsi/ide-scsi.c
drivers/scsi/imm.c
drivers/scsi/initio.c
drivers/scsi/initio.h
drivers/scsi/ipr.c
drivers/scsi/ips.c
drivers/scsi/libata-bmdma.c
drivers/scsi/libata-core.c
drivers/scsi/mesh.c
drivers/scsi/ncr53c8xx.h
drivers/scsi/oktagon_esp.c
drivers/scsi/oktagon_io.S
drivers/scsi/osst.h
drivers/scsi/pluto.c
drivers/scsi/ppa.c
drivers/scsi/qla1280.c
drivers/scsi/qla2xxx/qla_def.h
drivers/scsi/sata_nv.c
drivers/scsi/sata_sis.c
drivers/scsi/sata_svw.c
drivers/scsi/sata_uli.c
drivers/scsi/scsi_debug.c
drivers/scsi/scsi_logging.h
drivers/scsi/scsi_priv.h
drivers/scsi/scsi_scan.c
drivers/scsi/scsi_sysfs.c
drivers/scsi/scsi_transport_spi.c
drivers/scsi/sd.c
drivers/scsi/sg.c
drivers/scsi/sim710.c
drivers/scsi/sr_vendor.c
drivers/scsi/sun3_NCR5380.c
drivers/scsi/sym53c8xx_2/sym53c8xx.h
drivers/scsi/sym53c8xx_2/sym_glue.h
drivers/scsi/tmscsim.c
drivers/scsi/tmscsim.h
drivers/scsi/u14-34f.c
drivers/scsi/wd33c93.c
drivers/scsi/wd33c93.h
drivers/serial/21285.c
drivers/serial/68328serial.c
drivers/serial/68328serial.h
drivers/serial/68360serial.c
drivers/serial/8250.c
drivers/serial/8250.h
drivers/serial/8250_mca.c
drivers/serial/amba-pl010.c
drivers/serial/amba-pl011.c
drivers/serial/at91_serial.c
drivers/serial/clps711x.c
drivers/serial/cpm_uart/cpm_uart_core.c
drivers/serial/cpm_uart/cpm_uart_cpm1.c
drivers/serial/cpm_uart/cpm_uart_cpm2.c
drivers/serial/crisv10.c
drivers/serial/crisv10.h
drivers/serial/dz.c
drivers/serial/icom.c
drivers/serial/imx.c
drivers/serial/ip22zilog.c
drivers/serial/m32r_sio.c
drivers/serial/m32r_sio.h
drivers/serial/m32r_sio_reg.h
drivers/serial/mcfserial.h
drivers/serial/mpc52xx_uart.c
drivers/serial/mpsc.c
drivers/serial/mux.c
drivers/serial/pmac_zilog.c
drivers/serial/pxa.c
drivers/serial/s3c2410.c
drivers/serial/sa1100.c
drivers/serial/serial_core.c
drivers/serial/serial_cs.c
drivers/serial/serial_lh7a40x.c
drivers/serial/serial_txx9.c
drivers/serial/sh-sci.c
drivers/serial/sh-sci.h
drivers/serial/sn_console.c
drivers/serial/suncore.c
drivers/serial/sunhv.c
drivers/serial/sunsab.c
drivers/serial/sunsu.c
drivers/serial/sunzilog.c
drivers/serial/vr41xx_siu.c
drivers/sn/ioc3.c
drivers/spi/spi_bitbang.c
drivers/spi/spi_butterfly.c
drivers/tc/lk201.c
drivers/tc/zs.c
drivers/usb/core/buffer.c
drivers/usb/core/config.c
drivers/usb/core/devio.c
drivers/usb/core/driver.c
drivers/usb/core/file.c
drivers/usb/core/hcd-pci.c
drivers/usb/core/hcd.c
drivers/usb/core/hub.c
drivers/usb/core/inode.c
drivers/usb/core/message.c
drivers/usb/core/notify.c
drivers/usb/core/sysfs.c
drivers/usb/core/urb.c
drivers/usb/core/usb.c
drivers/usb/core/usb.h
drivers/usb/gadget/at91_udc.c
drivers/usb/gadget/dummy_hcd.c
drivers/usb/gadget/ether.c
drivers/usb/gadget/file_storage.c
drivers/usb/gadget/goku_udc.c
drivers/usb/gadget/lh7a40x_udc.h
drivers/usb/gadget/net2280.c
drivers/usb/gadget/omap_udc.c
drivers/usb/gadget/pxa2xx_udc.c
drivers/usb/gadget/rndis.c
drivers/usb/gadget/serial.c
drivers/usb/gadget/zero.c
drivers/usb/host/ehci-hcd.c
drivers/usb/host/hc_crisv10.c
drivers/usb/host/ohci-hcd.c
drivers/usb/host/pci-quirks.c
drivers/usb/host/sl811-hcd.c
drivers/usb/host/uhci-debug.c
drivers/usb/host/uhci-hcd.c
drivers/usb/input/appletouch.c
drivers/usb/input/ati_remote.c
drivers/usb/input/hiddev.c
drivers/usb/input/itmtouch.c
drivers/usb/input/keyspan_remote.c
drivers/usb/input/mtouchusb.c
drivers/usb/input/touchkitusb.c
drivers/usb/input/xpad.c
drivers/usb/input/yealink.c
drivers/usb/misc/cytherm.c
drivers/usb/misc/idmouse.c
drivers/usb/misc/ldusb.c
drivers/usb/misc/legousbtower.c
drivers/usb/misc/phidgetkit.c
drivers/usb/misc/phidgetservo.c
drivers/usb/misc/sisusbvga/sisusb_init.c
drivers/usb/misc/usbled.c
drivers/usb/misc/usbtest.c
drivers/usb/net/asix.c
drivers/usb/net/cdc_ether.c
drivers/usb/net/cdc_subset.c
drivers/usb/net/gl620a.c
drivers/usb/net/net1080.c
drivers/usb/net/plusb.c
drivers/usb/net/rndis_host.c
drivers/usb/net/rtl8150.c
drivers/usb/net/usbnet.c
drivers/usb/net/zaurus.c
drivers/usb/serial/belkin_sa.c
drivers/usb/serial/bus.c
drivers/usb/serial/console.c
drivers/usb/serial/cp2101.c
drivers/usb/serial/cyberjack.c
drivers/usb/serial/cypress_m8.c
drivers/usb/serial/digi_acceleport.c
drivers/usb/serial/empeg.c
drivers/usb/serial/ezusb.c
drivers/usb/serial/ftdi_sio.c
drivers/usb/serial/garmin_gps.c
drivers/usb/serial/generic.c
drivers/usb/serial/hp4x.c
drivers/usb/serial/io_edgeport.c
drivers/usb/serial/io_ti.c
drivers/usb/serial/ipaq.c
drivers/usb/serial/ir-usb.c
drivers/usb/serial/keyspan.c
drivers/usb/serial/keyspan_pda.c
drivers/usb/serial/kl5kusb105.c
drivers/usb/serial/kobil_sct.c
drivers/usb/serial/mct_u232.c
drivers/usb/serial/omninet.c
drivers/usb/serial/option.c
drivers/usb/serial/pl2303.c
drivers/usb/serial/safe_serial.c
drivers/usb/serial/ti_usb_3410_5052.c
drivers/usb/serial/usb-serial.c
drivers/usb/serial/usb-serial.h
drivers/usb/serial/visor.c
drivers/usb/serial/whiteheat.c
drivers/usb/storage/debug.h
drivers/usb/storage/dpcm.c
drivers/usb/storage/freecom.c
drivers/usb/storage/initializers.h
drivers/usb/storage/onetouch.c
drivers/usb/storage/transport.c
drivers/usb/storage/unusual_devs.h
drivers/usb/storage/usb.c
drivers/usb/usb-skeleton.c
drivers/video/S3triofb.c
drivers/video/acornfb.c
drivers/video/amifb.c
drivers/video/asiliantfb.c
drivers/video/aty/aty128fb.c
drivers/video/aty/atyfb.h
drivers/video/aty/atyfb_base.c
drivers/video/aty/radeon_base.c
drivers/video/aty/radeon_i2c.c
drivers/video/aty/radeonfb.h
drivers/video/au1100fb.c
drivers/video/backlight/locomolcd.c
drivers/video/bw2.c
drivers/video/cfbcopyarea.c
drivers/video/cfbfillrect.c
drivers/video/cfbimgblt.c
drivers/video/cg14.c
drivers/video/cg3.c
drivers/video/cg6.c
drivers/video/chipsfb.c
drivers/video/cirrusfb.c
drivers/video/console/bitblit.c
drivers/video/console/dummycon.c
drivers/video/console/fbcon.c
drivers/video/console/fbcon.h
drivers/video/console/fbcon_ccw.c
drivers/video/console/fbcon_cw.c
drivers/video/console/fbcon_rotate.c
drivers/video/console/fbcon_ud.c
drivers/video/console/font_acorn_8x8.c
drivers/video/console/fonts.c
drivers/video/console/promcon.c
drivers/video/console/sticore.c
drivers/video/console/tileblit.c
drivers/video/console/vgacon.c
drivers/video/controlfb.c
drivers/video/cyber2000fb.c
drivers/video/cyber2000fb.h
drivers/video/cyblafb.c
drivers/video/fbmem.c
drivers/video/ffb.c
drivers/video/gbefb.c
drivers/video/hitfb.c
drivers/video/i810/i810-i2c.c
drivers/video/i810/i810_main.c
drivers/video/imacfb.c
drivers/video/imsttfb.c
drivers/video/imxfb.c
drivers/video/intelfb/intelfbdrv.c
drivers/video/intelfb/intelfbhw.c
drivers/video/kyro/fbdev.c
drivers/video/leo.c
drivers/video/logo/logo.c
drivers/video/macmodes.c
drivers/video/matrox/matroxfb_DAC1064.c
drivers/video/matrox/matroxfb_DAC1064.h
drivers/video/matrox/matroxfb_Ti3026.c
drivers/video/matrox/matroxfb_Ti3026.h
drivers/video/matrox/matroxfb_base.c
drivers/video/matrox/matroxfb_base.h
drivers/video/matrox/matroxfb_misc.c
drivers/video/neofb.c
drivers/video/nvidia/nv_i2c.c
drivers/video/nvidia/nv_of.c
drivers/video/nvidia/nvidia.c
drivers/video/offb.c
drivers/video/p9100.c
drivers/video/platinumfb.c
drivers/video/pm2fb.c
drivers/video/pm3fb.c
drivers/video/pvr2fb.c
drivers/video/pxafb.c
drivers/video/riva/fbdev.c
drivers/video/riva/rivafb-i2c.c
drivers/video/riva/rivafb.h
drivers/video/s1d13xxxfb.c
drivers/video/sa1100fb.c
drivers/video/savage/savagefb-i2c.c
drivers/video/savage/savagefb_driver.c
drivers/video/sgivwfb.c
drivers/video/sis/init.h
drivers/video/sis/init301.c
drivers/video/sis/init301.h
drivers/video/sis/initextlfb.c
drivers/video/sis/osdef.h
drivers/video/sis/sis.h
drivers/video/sis/sis_accel.c
drivers/video/sis/sis_main.c
drivers/video/sstfb.c
drivers/video/stifb.c
drivers/video/sun3fb.c
drivers/video/tcx.c
drivers/video/tdfxfb.c
drivers/video/tridentfb.c
drivers/video/valkyriefb.c
drivers/video/vgastate.c
drivers/zorro/names.c
fs/9p/conv.c
fs/9p/error.c
fs/9p/fcall.c
fs/9p/fcprint.c
fs/9p/fid.c
fs/9p/mux.c
fs/9p/trans_fd.c
fs/9p/v9fs.c
fs/9p/vfs_addr.c
fs/9p/vfs_file.c
fs/9p/vfs_super.c
fs/Kconfig
fs/adfs/dir.c
fs/befs/linuxvfs.c
fs/binfmt_flat.c
fs/binfmt_som.c
fs/block_dev.c
fs/buffer.c
fs/char_dev.c
fs/cifs/asn1.c
fs/cifs/file.c
fs/coda/sysctl.c
fs/compat_ioctl.c
fs/configfs/dir.c
fs/configfs/symlink.c
fs/dcache.c
fs/dcookies.c
fs/debugfs/file.c
fs/debugfs/inode.c
fs/exec.c
fs/ext2/balloc.c
fs/ext2/ialloc.c
fs/ext2/super.c
fs/ext2/xattr.h
fs/ext3/balloc.c
fs/ext3/resize.c
fs/ext3/super.c
fs/ext3/xattr.h
fs/file_table.c
fs/fs-writeback.c
fs/hfs/super.c
fs/hfsplus/super.c
fs/inode.c
fs/ioctl.c
fs/ioprio.c
fs/isofs/compress.c
fs/isofs/dir.c
fs/isofs/inode.c
fs/jffs/intrep.c
fs/jffs/jffs_fm.h
fs/jffs2/compr_zlib.c
fs/jffs2/debug.h
fs/jffs2/fs.c
fs/jffs2/nodelist.h
fs/jffs2/super.c
fs/jfs/jfs_txnmgr.c
fs/jfs/super.c
fs/lockd/clntproc.c
fs/lockd/svc.c
fs/lockd/svclock.c
fs/lockd/svcproc.c
fs/lockd/svcsubs.c
fs/lockd/xdr.c
fs/namespace.c
fs/ncpfs/dir.c
fs/ncpfs/inode.c
fs/ncpfs/ioctl.c
fs/ncpfs/mmap.c
fs/ncpfs/ncplib_kernel.c
fs/ncpfs/ncplib_kernel.h
fs/ncpfs/ncpsign_kernel.c
fs/ncpfs/sock.c
fs/ncpfs/symlink.c
fs/nfs/callback.c
fs/nfs/callback_proc.c
fs/nfs/callback_xdr.c
fs/nfs/delegation.c
fs/nfs/direct.c
fs/nfs/inode.c
fs/nfs/nfs4state.c
fs/nfs/pagelist.c
fs/nfs/read.c
fs/nfs/sysctl.c
fs/nfs/write.c
fs/nfsctl.c
fs/nfsd/export.c
fs/nfsd/nfs4callback.c
fs/nfsd/nfs4idmap.c
fs/nfsd/nfs4state.c
fs/nfsd/nfsctl.c
fs/nfsd/nfsfh.c
fs/nfsd/nfssvc.c
fs/nfsd/vfs.c
fs/nls/nls_base.c
fs/ntfs/sysctl.h
fs/ocfs2/aops.c
fs/ocfs2/cluster/heartbeat.c
fs/ocfs2/cluster/masklog.h
fs/ocfs2/cluster/ocfs2_heartbeat.h
fs/ocfs2/cluster/tcp.c
fs/ocfs2/dir.c
fs/ocfs2/dlm/dlmcommon.h
fs/ocfs2/dlm/dlmdomain.c
fs/ocfs2/dlm/dlmrecovery.c
fs/ocfs2/dlmglue.c
fs/ocfs2/extent_map.c
fs/ocfs2/journal.c
fs/ocfs2/mmap.c
fs/ocfs2/ocfs2.h
fs/ocfs2/slot_map.c
fs/ocfs2/super.c
fs/ocfs2/symlink.c
fs/partitions/acorn.c
fs/partitions/efi.c
fs/partitions/efi.h
fs/partitions/ibm.c
fs/partitions/mac.c
fs/partitions/msdos.c
fs/proc/array.c
fs/proc/base.c
fs/proc/kcore.c
fs/proc/proc_misc.c
fs/proc/root.c
fs/proc/vmcore.c
fs/qnx4/bitmap.c
fs/qnx4/dir.c
fs/qnx4/fsync.c
fs/qnx4/inode.c
fs/qnx4/namei.c
fs/qnx4/truncate.c
fs/reiserfs/bitmap.c
fs/reiserfs/dir.c
fs/reiserfs/do_balan.c
fs/reiserfs/fix_node.c
fs/reiserfs/ibalance.c
fs/reiserfs/inode.c
fs/reiserfs/journal.c
fs/reiserfs/lbalance.c
fs/reiserfs/namei.c
fs/reiserfs/objectid.c
fs/reiserfs/prints.c
fs/reiserfs/procfs.c
fs/reiserfs/stree.c
fs/reiserfs/super.c
fs/reiserfs/tail_conversion.c
fs/smbfs/inode.c
fs/smbfs/smbiod.c
fs/stat.c
fs/super.c
fs/udf/super.c
fs/udf/udfdecl.h
fs/ufs/super.c
fs/xfs/linux-2.6/xfs_buf.h
fs/xfs/linux-2.6/xfs_ioctl32.c
fs/xfs/linux-2.6/xfs_linux.h
include/asm-alpha/socket.h
include/asm-arm/arch-at91rm9200/board.h
include/asm-arm/arch-ixp4xx/io.h
include/asm-arm/bug.h
include/asm-arm/socket.h
include/asm-arm/thread_info.h
include/asm-arm26/socket.h
include/asm-cris/arch-v32/arbiter.h
include/asm-cris/socket.h
include/asm-frv/socket.h
include/asm-h8300/socket.h
include/asm-i386/socket.h
include/asm-ia64/sn/tioca_provider.h
include/asm-ia64/socket.h
include/asm-m32r/socket.h
include/asm-m68k/socket.h
include/asm-mips/socket.h
include/asm-parisc/socket.h
include/asm-powerpc/of_device.h
include/asm-powerpc/pmac_pfunc.h
include/asm-powerpc/socket.h
include/asm-ppc/page.h
include/asm-s390/pgtable.h
include/asm-s390/socket.h
include/asm-sh/socket.h
include/asm-sparc/of_device.h
include/asm-sparc/prom.h
include/asm-sparc/socket.h
include/asm-sparc64/of_device.h
include/asm-sparc64/pbm.h
include/asm-sparc64/prom.h
include/asm-sparc64/sbus.h
include/asm-sparc64/socket.h
include/asm-sparc64/starfire.h
include/asm-sparc64/vdev.h [deleted file]
include/asm-um/io.h
include/asm-v850/socket.h
include/asm-x86_64/socket.h
include/asm-xtensa/socket.h
include/linux/atmdev.h
include/linux/dqblk_xfs.h
include/linux/fb.h
include/linux/mm.h
include/linux/mmzone.h
include/linux/net.h
include/linux/netdevice.h
include/linux/nfs_fs.h
include/linux/page-flags.h
include/linux/pagemap.h
include/linux/pci_ids.h
include/linux/rcupdate.h
include/linux/rtc.h
include/linux/sched.h
include/linux/security.h
include/linux/skbuff.h
include/linux/smp.h
include/linux/sunrpc/svc.h
include/linux/swap.h
include/linux/udp.h
include/linux/vmstat.h [new file with mode: 0644]
include/media/tuner-types.h
include/net/af_unix.h
include/net/ip6_route.h
include/net/pkt_sched.h
include/net/protocol.h
include/net/scm.h
include/net/sock.h
include/net/tcp.h
include/net/tcp_ecn.h
init/Kconfig
init/main.c
ipc/compat.c
ipc/msg.c
ipc/sem.c
ipc/shm.c
ipc/util.c
kernel/acct.c
kernel/audit.c
kernel/configs.c
kernel/cpuset.c
kernel/exec_domain.c
kernel/exit.c
kernel/fork.c
kernel/irq/manage.c
kernel/kmod.c
kernel/ksysfs.c
kernel/module.c
kernel/panic.c
kernel/params.c
kernel/power/Kconfig
kernel/printk.c
kernel/profile.c
kernel/resource.c
kernel/sched.c
kernel/signal.c
kernel/spinlock.c
kernel/sys.c
kernel/sysctl.c
kernel/wait.c
lib/bust_spinlocks.c
lib/extable.c
lib/semaphore-sleepers.c
lib/spinlock_debug.c
lib/textsearch.c
lib/ts_bm.c
lib/ts_fsm.c
lib/ts_kmp.c
mm/Makefile
mm/filemap.c
mm/highmem.c
mm/memory.c
mm/memory_hotplug.c
mm/mempolicy.c
mm/mmap.c
mm/mmzone.c
mm/nommu.c
mm/page-writeback.c
mm/page_alloc.c
mm/page_io.c
mm/rmap.c
mm/shmem.c
mm/slab.c
mm/slob.c
mm/sparse.c
mm/swap.c
mm/swap_state.c
mm/swapfile.c
mm/vmscan.c
mm/vmstat.c [new file with mode: 0644]
net/802/fc.c
net/802/fddi.c
net/802/sysctl_net_802.c
net/802/tr.c
net/8021q/vlanproc.c
net/appletalk/aarp.c
net/appletalk/atalk_proc.c
net/appletalk/ddp.c
net/appletalk/sysctl_net_atalk.c
net/atm/Makefile
net/atm/atm_sysfs.c [new file with mode: 0644]
net/atm/br2684.c
net/atm/clip.c
net/atm/common.c
net/atm/common.h
net/atm/ioctl.c
net/atm/lec.c
net/atm/lec.h
net/atm/mpc.c
net/atm/mpoa_proc.c
net/atm/pppoatm.c
net/atm/proc.c
net/atm/pvc.c
net/atm/resources.c
net/atm/resources.h
net/ax25/af_ax25.c
net/ax25/ax25_dev.c
net/ax25/ax25_iface.c
net/ax25/ax25_ip.c
net/ax25/ax25_out.c
net/ax25/ax25_timer.c
net/ax25/sysctl_net_ax25.c
net/bluetooth/af_bluetooth.c
net/bluetooth/bnep/core.c
net/bluetooth/bnep/netdev.c
net/bluetooth/bnep/sock.c
net/bluetooth/cmtp/capi.c
net/bluetooth/cmtp/core.c
net/bluetooth/cmtp/sock.c
net/bluetooth/hci_conn.c
net/bluetooth/hci_core.c
net/bluetooth/hci_event.c
net/bluetooth/hci_sock.c
net/bluetooth/hci_sysfs.c
net/bluetooth/hidp/core.c
net/bluetooth/hidp/sock.c
net/bluetooth/l2cap.c
net/bluetooth/lib.c
net/bluetooth/rfcomm/core.c
net/bluetooth/rfcomm/sock.c
net/bluetooth/rfcomm/tty.c
net/bluetooth/sco.c
net/bridge/br.c
net/bridge/br_device.c
net/bridge/br_if.c
net/bridge/netfilter/ebt_ulog.c
net/core/dev.c
net/core/link_watch.c
net/core/neighbour.c
net/core/net-sysfs.c
net/core/rtnetlink.c
net/core/skbuff.c
net/core/sock.c
net/core/sysctl_net_core.c
net/dccp/ackvec.h
net/dccp/ccids/ccid2.c
net/dccp/ccids/ccid3.c
net/dccp/ccids/ccid3.h
net/dccp/ccids/lib/loss_interval.c
net/dccp/ccids/lib/loss_interval.h
net/dccp/ccids/lib/packet_history.c
net/dccp/ccids/lib/packet_history.h
net/dccp/ccids/lib/tfrc_equation.c
net/dccp/dccp.h
net/dccp/diag.c
net/dccp/feat.c
net/dccp/input.c
net/dccp/ipv4.c
net/dccp/ipv6.c
net/dccp/ipv6.h
net/dccp/minisocks.c
net/dccp/options.c
net/dccp/output.c
net/dccp/proto.c
net/dccp/sysctl.c
net/dccp/timer.c
net/decnet/af_decnet.c
net/decnet/dn_dev.c
net/decnet/dn_fib.c
net/decnet/dn_neigh.c
net/decnet/dn_nsp_in.c
net/decnet/dn_route.c
net/decnet/dn_rules.c
net/decnet/dn_table.c
net/decnet/netfilter/dn_rtmsg.c
net/decnet/sysctl_net_decnet.c
net/econet/af_econet.c
net/ethernet/eth.c
net/ieee80211/ieee80211_crypt_ccmp.c
net/ieee80211/ieee80211_crypt_tkip.c
net/ieee80211/ieee80211_crypt_wep.c
net/ieee80211/ieee80211_geo.c
net/ieee80211/ieee80211_module.c
net/ieee80211/ieee80211_rx.c
net/ieee80211/ieee80211_tx.c
net/ipv4/af_inet.c
net/ipv4/ah4.c
net/ipv4/arp.c
net/ipv4/datagram.c
net/ipv4/devinet.c
net/ipv4/esp4.c
net/ipv4/fib_frontend.c
net/ipv4/fib_hash.c
net/ipv4/fib_rules.c
net/ipv4/fib_semantics.c
net/ipv4/fib_trie.c
net/ipv4/icmp.c
net/ipv4/igmp.c
net/ipv4/inet_connection_sock.c
net/ipv4/inet_diag.c
net/ipv4/inet_hashtables.c
net/ipv4/inet_timewait_sock.c
net/ipv4/ip_forward.c
net/ipv4/ip_fragment.c
net/ipv4/ip_gre.c
net/ipv4/ip_input.c
net/ipv4/ip_output.c
net/ipv4/ip_sockglue.c
net/ipv4/ipcomp.c
net/ipv4/ipip.c
net/ipv4/ipmr.c
net/ipv4/ipvs/ip_vs_est.c
net/ipv4/multipath_drr.c
net/ipv4/multipath_random.c
net/ipv4/multipath_rr.c
net/ipv4/multipath_wrandom.c
net/ipv4/netfilter/Kconfig
net/ipv4/netfilter/arp_tables.c
net/ipv4/netfilter/ip_conntrack_core.c
net/ipv4/netfilter/ip_conntrack_ftp.c
net/ipv4/netfilter/ip_conntrack_helper_h323.c
net/ipv4/netfilter/ip_conntrack_helper_pptp.c
net/ipv4/netfilter/ip_conntrack_irc.c
net/ipv4/netfilter/ip_conntrack_proto_gre.c
net/ipv4/netfilter/ip_conntrack_proto_sctp.c
net/ipv4/netfilter/ip_conntrack_proto_tcp.c
net/ipv4/netfilter/ip_conntrack_standalone.c
net/ipv4/netfilter/ip_nat_helper.c
net/ipv4/netfilter/ip_nat_helper_pptp.c
net/ipv4/netfilter/ip_nat_proto_gre.c
net/ipv4/netfilter/ip_nat_snmp_basic.c
net/ipv4/netfilter/ip_nat_standalone.c
net/ipv4/netfilter/ip_queue.c
net/ipv4/netfilter/ip_tables.c
net/ipv4/netfilter/ipt_CLUSTERIP.c
net/ipv4/netfilter/ipt_MASQUERADE.c
net/ipv4/netfilter/ipt_NETMAP.c
net/ipv4/netfilter/ipt_REJECT.c
net/ipv4/netfilter/ipt_ULOG.c
net/ipv4/netfilter/iptable_mangle.c
net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
net/ipv4/protocol.c
net/ipv4/route.c
net/ipv4/sysctl_net_ipv4.c
net/ipv4/tcp.c
net/ipv4/tcp_bic.c
net/ipv4/tcp_cong.c
net/ipv4/tcp_cubic.c
net/ipv4/tcp_diag.c
net/ipv4/tcp_highspeed.c
net/ipv4/tcp_htcp.c
net/ipv4/tcp_hybla.c
net/ipv4/tcp_input.c
net/ipv4/tcp_ipv4.c
net/ipv4/tcp_minisocks.c
net/ipv4/tcp_output.c
net/ipv4/tcp_scalable.c
net/ipv4/tcp_vegas.c
net/ipv4/tcp_westwood.c
net/ipv4/udp.c
net/ipv4/xfrm4_policy.c
net/ipv6/addrconf.c
net/ipv6/af_inet6.c
net/ipv6/ah6.c
net/ipv6/anycast.c
net/ipv6/esp6.c
net/ipv6/exthdrs.c
net/ipv6/inet6_connection_sock.c
net/ipv6/inet6_hashtables.c
net/ipv6/ip6_fib.c
net/ipv6/ip6_flowlabel.c
net/ipv6/ip6_input.c
net/ipv6/ip6_output.c
net/ipv6/ip6_tunnel.c
net/ipv6/ipcomp6.c
net/ipv6/ipv6_sockglue.c
net/ipv6/ipv6_syms.c
net/ipv6/mcast.c
net/ipv6/ndisc.c
net/ipv6/netfilter/ip6_queue.c
net/ipv6/netfilter/ip6_tables.c
net/ipv6/netfilter/ip6t_REJECT.c
net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
net/ipv6/netfilter/nf_conntrack_reasm.c
net/ipv6/proc.c
net/ipv6/reassembly.c
net/ipv6/route.c
net/ipv6/sit.c
net/ipv6/sysctl_net_ipv6.c
net/ipv6/tcp_ipv6.c
net/ipv6/udp.c
net/ipv6/xfrm6_policy.c
net/ipv6/xfrm6_tunnel.c
net/ipx/af_ipx.c
net/ipx/ipx_proc.c
net/ipx/ipx_route.c
net/ipx/sysctl_net_ipx.c
net/irda/af_irda.c
net/irda/ircomm/ircomm_core.c
net/irda/ircomm/ircomm_tty.c
net/irda/irda_device.c
net/irda/iriap.c
net/irda/irlan/irlan_client.c
net/irda/irlan/irlan_common.c
net/irda/irlan/irlan_eth.c
net/irda/irlap.c
net/irda/irlap_event.c
net/irda/irlmp.c
net/irda/irlmp_event.c
net/irda/irlmp_frame.c
net/irda/irmod.c
net/irda/irnet/irnet.h
net/irda/irsysctl.c
net/irda/irttp.c
net/irda/qos.c
net/irda/timer.c
net/key/af_key.c
net/llc/af_llc.c
net/llc/llc_if.c
net/llc/llc_proc.c
net/llc/llc_station.c
net/llc/sysctl_net_llc.c
net/netfilter/Kconfig
net/netfilter/core.c
net/netfilter/nf_conntrack_core.c
net/netfilter/nf_conntrack_ftp.c
net/netfilter/nf_conntrack_l3proto_generic.c
net/netfilter/nf_conntrack_netlink.c
net/netfilter/nf_conntrack_proto_sctp.c
net/netfilter/nf_conntrack_proto_tcp.c
net/netfilter/nf_conntrack_standalone.c
net/netfilter/nf_internals.h
net/netfilter/nf_log.c
net/netfilter/nf_queue.c
net/netfilter/nf_sockopt.c
net/netfilter/nfnetlink.c
net/netfilter/nfnetlink_queue.c
net/netfilter/x_tables.c
net/netfilter/xt_policy.c
net/netfilter/xt_sctp.c
net/netfilter/xt_tcpudp.c
net/netlink/af_netlink.c
net/netlink/attr.c
net/netlink/genetlink.c
net/netrom/af_netrom.c
net/netrom/nr_dev.c
net/packet/af_packet.c
net/rose/af_rose.c
net/rose/rose_dev.c
net/rxrpc/rxrpc_syms.c
net/rxrpc/sysctl.c
net/sched/Kconfig
net/sched/act_api.c
net/sched/act_gact.c
net/sched/act_ipt.c
net/sched/act_mirred.c
net/sched/act_pedit.c
net/sched/act_police.c
net/sched/act_simple.c
net/sched/cls_api.c
net/sched/cls_basic.c
net/sched/cls_fw.c
net/sched/cls_route.c
net/sched/cls_rsvp.h
net/sched/cls_tcindex.c
net/sched/cls_u32.c
net/sched/em_cmp.c
net/sched/em_meta.c
net/sched/em_nbyte.c
net/sched/em_text.c
net/sched/em_u32.c
net/sched/ematch.c
net/sched/sch_api.c
net/sched/sch_atm.c
net/sched/sch_blackhole.c
net/sched/sch_cbq.c
net/sched/sch_dsmark.c
net/sched/sch_fifo.c
net/sched/sch_generic.c
net/sched/sch_gred.c
net/sched/sch_hfsc.c
net/sched/sch_htb.c
net/sched/sch_ingress.c
net/sched/sch_netem.c
net/sched/sch_prio.c
net/sched/sch_red.c
net/sched/sch_sfq.c
net/sched/sch_tbf.c
net/sctp/socket.c
net/socket.c
net/sunrpc/auth_gss/gss_mech_switch.c
net/sunrpc/auth_gss/svcauth_gss.c
net/sunrpc/pmap_clnt.c
net/sunrpc/rpc_pipe.c
net/sunrpc/sunrpc_syms.c
net/sunrpc/svc.c
net/sunrpc/sysctl.c
net/sysctl_net.c
net/tipc/core.c
net/tipc/link.c
net/tipc/node.c
net/tipc/zone.h
net/unix/af_unix.c
net/wanrouter/af_wanpipe.c
net/wanrouter/wanmain.c
net/wanrouter/wanproc.c
net/x25/af_x25.c
net/x25/x25_dev.c
net/x25/x25_proc.c
net/x25/x25_route.c
net/xfrm/xfrm_algo.c
net/xfrm/xfrm_policy.c
net/xfrm/xfrm_state.c
net/xfrm/xfrm_user.c
security/capability.c
security/commoncap.c
security/dummy.c
security/inode.c
security/root_plug.c
security/seclvl.c
security/security.c
security/selinux/hooks.c
security/selinux/selinuxfs.c
security/selinux/xfrm.c
sound/arm/sa11xx-uda1341.c
sound/core/memalloc.c
sound/core/sgbuf.c
sound/oss/ad1816.c
sound/oss/ad1848.c
sound/oss/ad1889.c
sound/oss/aedsp16.c
sound/oss/cs4232.c
sound/oss/dmabuf.c
sound/oss/dmasound/dmasound.h
sound/oss/dmasound/dmasound_awacs.c
sound/oss/dmasound/dmasound_paula.c
sound/oss/kahlua.c
sound/oss/msnd_classic.h
sound/oss/msnd_pinnacle.c
sound/oss/msnd_pinnacle.h
sound/oss/opl3sa2.c
sound/oss/pas2_card.c
sound/oss/pss.c
sound/oss/sb_card.c
sound/oss/sb_common.c
sound/oss/sh_dac_audio.c
sound/oss/sound_config.h
sound/oss/soundcard.c
sound/oss/trident.c
sound/oss/via82cxxx_audio.c
sound/oss/vidc.c
sound/oss/waveartist.c
sound/sound_core.c
sound/sparc/cs4231.c
sound/sparc/dbri.c

index 6e463d0db266ba46a4c1c4fd759d4b93cbd3523b..999afe1ca8cbf33151e8504f753848c052b3539b 100644 (file)
@@ -189,9 +189,9 @@ static unsigned long baseaddr;
        <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.
+                       If you want to divide your device into partitions, then
+                       enable the configuration switch CONFIG_MTD_PARTITIONS and define
+                       a partitioning scheme suitable to your board.
                </para>
                <programlisting>
 #define NUM_PARTITIONS 2
index bf1cf98d2a275b878d9e32378028b52d01ae8048..0256805b548f8c43906c07b4e05ab1f76ae1f972 100644 (file)
@@ -10,7 +10,7 @@ standard for controlling intelligent devices that monitor a system.
 It provides for dynamic discovery of sensors in the system and the
 ability to monitor the sensors and be informed when the sensor's
 values change or go outside certain boundaries.  It also has a
-standardized database for field-replacable units (FRUs) and a watchdog
+standardized database for field-replaceable units (FRUs) and a watchdog
 timer.
 
 To use this, you need an interface to an IPMI controller in your
@@ -64,7 +64,7 @@ situation, you need to read the section below named 'The SI Driver' or
 IPMI defines a standard watchdog timer.  You can enable this with the
 'IPMI Watchdog Timer' config option.  If you compile the driver into
 the kernel, then via a kernel command-line option you can have the
-watchdog timer start as soon as it intitializes.  It also have a lot
+watchdog timer start as soon as it initializes.  It also have a lot
 of other options, see the 'Watchdog' section below for more details.
 Note that you can also have the watchdog continue to run if it is
 closed (by default it is disabled on close).  Go into the 'Watchdog
index d4c6d3aa0c25e034493544d7ca734538f365b4c3..43edb4ecf27dbdd7138ea3c969f4c45cbcd720c7 100644 (file)
@@ -85,7 +85,7 @@ IXP4xx provides two methods of accessing PCI memory space:
 2) If > 64MB of memory space is required, the IXP4xx can be 
    configured to use indirect registers to access PCI This allows 
    for up to 128MB (0x48000000 to 0x4fffffff) of memory on the bus. 
-   The disadvantadge of this is that every PCI access requires 
+   The disadvantage of this is that every PCI access requires 
    three local register accesses plus a spinlock, but in some 
    cases the performance hit is acceptable. In addition, you cannot 
    mmap() PCI devices in this case due to the indirect nature
index 88820fe38dadc17bc76a355d386ac4472662f070..f2560e22f2c9765af3501cb4ece56105b167dc36 100644 (file)
@@ -2,7 +2,7 @@ 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
+This driver requires a number of user-space tools.  They can be acquired from
 http://www.digi.com, but only works with 2.4 kernels.
 
 
index 3d4713a6c207f9f18eb1aed4ad5f361bc86ed839..2d6a14a463e072935dcf78a3492693cf230708af 100644 (file)
@@ -264,6 +264,15 @@ static struct config_item_type simple_child_type = {
 };
 
 
+struct simple_children {
+       struct config_group group;
+};
+
+static inline struct simple_children *to_simple_children(struct config_item *item)
+{
+       return item ? container_of(to_config_group(item), struct simple_children, group) : NULL;
+}
+
 static struct config_item *simple_children_make_item(struct config_group *group, const char *name)
 {
        struct simple_child *simple_child;
@@ -304,7 +313,13 @@ static ssize_t simple_children_attr_show(struct config_item *item,
 "items have only one attribute that is readable and writeable.\n");
 }
 
+static void simple_children_release(struct config_item *item)
+{
+       kfree(to_simple_children(item));
+}
+
 static struct configfs_item_operations simple_children_item_ops = {
+       .release        = simple_children_release,
        .show_attribute = simple_children_attr_show,
 };
 
@@ -345,10 +360,6 @@ static struct configfs_subsystem simple_children_subsys = {
  * children of its own.
  */
 
-struct simple_children {
-       struct config_group group;
-};
-
 static struct config_group *group_children_make_group(struct config_group *group, const char *name)
 {
        struct simple_children *simple_children;
index cf0d5416a4c39271aa572188647a7d30de93806a..28d1bc3edb1c9b98f357ff1f0442aa18a79a60f9 100644 (file)
@@ -602,7 +602,7 @@ Consider the following sequence of events:
 
 This sequence of events is committed to the memory coherence system in an order
 that the rest of the system might perceive as the unordered set of { STORE A,
-STORE B, STORE C } all occuring before the unordered set of { STORE D, STORE E
+STORE B, STORE C } all occurring before the unordered set of { STORE D, STORE E
 }:
 
        +-------+       :      :
index 278771c9ad99eda54420ca1d9d3c8a88e778d807..44f2f769e8659dd2565c82a9ece8771150091a5f 100644 (file)
@@ -74,7 +74,7 @@ Examples:
  pgset "pkt_size 9014"   sets packet size to 9014
  pgset "frags 5"         packet will consist of 5 fragments
  pgset "count 200000"    sets number of packets to send, set to zero
-                         for continious sends untill explicitl stopped.
+                         for continuous sends until explicitly stopped.
 
  pgset "delay 5000"      adds delay to hard_start_xmit(). nanoseconds
 
diff --git a/Documentation/pcmcia/crc32hash.c b/Documentation/pcmcia/crc32hash.c
new file mode 100644 (file)
index 0000000..cbc36d2
--- /dev/null
@@ -0,0 +1,32 @@
+/* crc32hash.c - derived from linux/lib/crc32.c, GNU GPL v2 */
+/* Usage example:
+$ ./crc32hash "Dual Speed"
+*/
+
+#include <string.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <stdlib.h>
+
+unsigned int crc32(unsigned char const *p, unsigned int len)
+{
+       int i;
+       unsigned int crc = 0;
+       while (len--) {
+               crc ^= *p++;
+               for (i = 0; i < 8; i++)
+                       crc = (crc >> 1) ^ ((crc & 1) ? 0xedb88320 : 0);
+       }
+       return crc;
+}
+
+int main(int argc, char **argv) {
+       unsigned int result;
+       if (argc != 2) {
+               printf("no string passed as argument\n");
+               return -1;
+       }
+       result = crc32(argv[1], strlen(argv[1]));
+       printf("0x%x\n", result);
+       return 0;
+}
index 3351c0355143d8be4e00d89798e20108d7650375..199afd100cf27026bf1d918caaeb4d10636262c0 100644 (file)
@@ -27,37 +27,7 @@ pcmcia:m0149cC1ABf06pfn00fn00pa725B842DpbF1EFEE84pc0877B627pd00000000
 The hex value after "pa" is the hash of product ID string 1, after "pb" for
 string 2 and so on.
 
-Alternatively, you can use this small tool to determine the crc32 hash.
-simply pass the string you want to evaluate as argument to this program,
-e.g.
+Alternatively, you can use crc32hash (see Documentation/pcmcia/crc32hash.c)
+to determine the crc32 hash.  Simply pass the string you want to evaluate
+as argument to this program, e.g.:
 $ ./crc32hash "Dual Speed"
-
--------------------------------------------------------------------------
-/* crc32hash.c - derived from linux/lib/crc32.c, GNU GPL v2 */
-#include <string.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <stdlib.h>
-
-unsigned int crc32(unsigned char const *p, unsigned int len)
-{
-       int i;
-       unsigned int crc = 0;
-       while (len--) {
-               crc ^= *p++;
-               for (i = 0; i < 8; i++)
-                       crc = (crc >> 1) ^ ((crc & 1) ? 0xedb88320 : 0);
-       }
-       return crc;
-}
-
-int main(int argc, char **argv) {
-       unsigned int result;
-       if (argc != 2) {
-               printf("no string passed as argument\n");
-               return -1;
-       }
-       result = crc32(argv[1], strlen(argv[1]));
-       printf("0x%x\n", result);
-       return 0;
-}
index 635cbb94357cd575bc46ae3328179dc4cac5ced1..bb18115d51700abc3f3a02b1a54fffb70c23045e 100644 (file)
@@ -3048,7 +3048,7 @@ struct _snd_pcm_runtime {
         </para>
 
         <para>
-          If you aquire a spinlock in the interrupt handler, and the
+          If you acquire a spinlock in the interrupt handler, and the
         lock is used in other pcm callbacks, too, then you have to
         release the lock before calling
         <function>snd_pcm_period_elapsed()</function>, because
index 2dc246af4885caf69b05d4010a14ee8b685244ab..86754eb390da03ad402daa3c418256feaf3ab24b 100644 (file)
@@ -28,7 +28,6 @@ Currently, these files are in /proc/sys/vm:
 - block_dump
 - drop-caches
 - zone_reclaim_mode
-- zone_reclaim_interval
 - panic_on_oom
 
 ==============================================================
@@ -167,18 +166,6 @@ use of files and builds up large slab caches. However, the slab
 shrink operation is global, may take a long time and free slabs
 in all nodes of the system.
 
-================================================================
-
-zone_reclaim_interval:
-
-The time allowed for off node allocations after zone reclaim
-has failed to reclaim enough pages to allow a local allocation.
-
-Time is set in seconds and set by default to 30 seconds.
-
-Reduce the interval if undesired off node allocations occur. However, too
-frequent scans will have a negative impact onoff node allocation performance.
-
 =============================================================
 
 panic_on_oom
index 6cb63ddf6163d7768ab4dfbc99f9318dc6df08a1..00d9a1f2a54c05dc01d1ab0b16b3b90f7aad6bf1 100644 (file)
@@ -50,3 +50,4 @@
  49 -> PixelView PlayTV P7000                              [1554:4813]
  50 -> NPG Tech Real TV FM Top 10                          [14f1:0842]
  51 -> WinFast DTV2000 H                                   [107d:665e]
+ 52 -> Geniatech DVB-S                                     [14f1:0084]
index 31a13720f23c068a5de4a6e9118f23ce80a4adc7..42be131139c86b4c9a1d1cb888c8c969278fff81 100644 (file)
@@ -925,23 +925,21 @@ S:        Maintained
 
 EDAC-CORE
 P:     Doug Thompson
-M:     norsk5@xmission.com, dthompson@linuxnetworx.com
-P:     Dave Peterson
-M:     dsp@llnl.gov, dave_peterson@pobox.com
+M:     norsk5@xmission.com
 L:     bluesmoke-devel@lists.sourceforge.net
 W:     bluesmoke.sourceforge.net
-S:     Maintained
+S:     Supported
 
 EDAC-E752X
-P:     Dave Peterson
-M:     dsp@llnl.gov, dave_peterson@pobox.com
+P:     Mark Gross
+M:     mark.gross@intel.com
 L:     bluesmoke-devel@lists.sourceforge.net
 W:     bluesmoke.sourceforge.net
 S:     Maintained
 
 EDAC-E7XXX
-P:     Dave Peterson
-M:     dsp@llnl.gov, dave_peterson@pobox.com
+P:     Doug Thompson
+M:     norsk5@xmission.com
 L:     bluesmoke-devel@lists.sourceforge.net
 W:     bluesmoke.sourceforge.net
 S:     Maintained
@@ -2557,13 +2555,6 @@ M:       thomas@winischhofer.net
 W:     http://www.winischhofer.at/linuxsisusbvga.shtml
 S:     Maintained
 
-SMB FILESYSTEM
-P:     Urban Widmark
-M:     urban@teststation.com
-W:     http://samba.org/
-L:     samba@samba.org
-S:     Maintained
-
 SMC91x ETHERNET DRIVER
 P:     Nicolas Pitre
 M:     nico@cam.org
index d3848c5b0d2bfc855e68c6c7a128f90c902553b2..425643762bf5889ca9a083f7973770155eba3961 100644 (file)
@@ -5,7 +5,6 @@
  * modules.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/user.h>
index cb3e739fbad8e3f9c097d93e73bbc9dd31037e96..f313b34939bbc5516894e64e2d047322bfa69bae 100644 (file)
@@ -5,7 +5,6 @@
  * non-0 I/O hose
  */
 
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/init.h>
 #include <linux/tty.h>
index 7af15bf7e5ab64e9e4ad5e0abc2d1ef4be962f34..01ecd09d4a64c42be3a6872d6f068e0492db03d9 100644 (file)
@@ -4,7 +4,6 @@
  * Kernel entry-points.
  */
 
-#include <linux/config.h>
 #include <asm/asm-offsets.h>
 #include <asm/thread_info.h>
 #include <asm/pal.h>
index 8827687b9f892b269125cc1540e42e35a375f6a7..c0c7155448e08805c44ead133e2c19e5e9c4ece8 100644 (file)
@@ -2,7 +2,6 @@
  *     linux/arch/alpha/kernel/gct.c
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/errno.h>
index 0905721fcbcaba4f89425b8d22d0281426e78b81..1e2a62a1f75fbd3172b3b74d5fe42826c7804981 100644 (file)
@@ -7,7 +7,6 @@
  * the kernel global pointer and jump to the kernel entry-point.
  */
 
-#include <linux/config.h>
 #include <asm/system.h>
 #include <asm/asm-offsets.h>
 
index 63af36cf7f6e356fc917b1ac86f6e879be5bc0fd..bd193ffd6fe0db0aa833b8eb7da8187faf106495 100644 (file)
@@ -10,7 +10,6 @@
  * should be easier.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/errno.h>
index f20f2dff9c438599c6e182eaf9222bf34450b45a..ffa4ac543cf2da6c369e733af1d9c0b3e4b60f05 100644 (file)
@@ -2,7 +2,6 @@
  * Alpha specific irq code.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/irq.h>
index ac893bd48036cf6cf613d82a042eb6860b690830..ebbadbc0c36a3fd98769db496983c76cb58f146f 100644 (file)
@@ -7,7 +7,6 @@
  * Started hacking from linux-2.3.30pre6/arch/i386/kernel/i8259.c.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/cache.h>
 #include <linux/sched.h>
index 11f996f24fde5aa48a9775223b2d183a49886128..08b8302e64ca0f9630ffddfb2585d5a4915adfda 100644 (file)
@@ -6,7 +6,6 @@
  * This file has goodies to help simplify instantiation of machine vectors.
  */
 
-#include <linux/config.h>
 #include <asm/pgalloc.h>
 
 /* Whee.  These systems don't have an HAE:
index 4ea6711e55aa5263812ba401a84dbae7ff5d4dbf..ffb7d5423cc00210fc99e1bf5d6b98cd8d68f1fb 100644 (file)
@@ -12,7 +12,6 @@
  * Nov 2000, Ivan Kokshaysky <ink@jurassic.park.msu.ru>
  *          PCI-PCI bridges cleanup
  */
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/pci.h>
 #include <linux/init.h>
index c760a831fd1a250d45bdc2e6e70f6f5c243fd3c1..01c8c8b233376834ed18f458c76183350f50e3cf 100644 (file)
@@ -8,7 +8,6 @@
  * This file handles the architecture-dependent parts of process handling.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index e1560fb156104d2434c9a851afb403e86ed7bbcf..2a6e3da8144f01440733135289cb8760c872804c 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/interrupt.h>
 
 
index 421e51ea6bb76f986de541ab7e94da3ff5052d8c..2636cc028d06af7d120282eda93c8ea32a6e41af 100644 (file)
@@ -2,7 +2,6 @@
  * SMC 37C93X initialization code
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 
 #include <linux/slab.h>
index 5c98fc83e2382d67c2f3fa24222672ba7dabb6e0..990ac61028f860971fe12547662f0c9e47816518 100644 (file)
@@ -57,7 +57,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/proc_fs.h>
index 3b30d4f1fc42d5d438082b82f20a3dee5acad56e..9d7dff27f81562e986064ff55d68d045cd8ca5fb 100644 (file)
@@ -5,7 +5,6 @@
  * (TTY driver and console driver)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/console.h>
index 1a1a2c7a3d944190c8699339c5f38086b434ee83..d6926b7b1e994b3dde36c9f7c77991ea55102227 100644 (file)
@@ -8,7 +8,6 @@
  * Code supporting the ALCOR and XLT (XL-300/366/433).
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index 8c9e443d93ad6298b312e424ee48db22fd23ebe6..25a215067da8a55111a55ca8ec83e8eaa8e5f9a6 100644 (file)
@@ -9,7 +9,6 @@
  * PC164 and LX164.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index b28c8f1c6e10b078fb0b1173ce64ad538bc23dda..dd6103b867e778e062e932fb8a26cbf5f527be67 100644 (file)
@@ -12,7 +12,6 @@
  * Code supporting the DP264 (EV6+TSUNAMI).
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index aeb8e0277905660275943dd0b0678c3ba08a19b6..ed108b66ec09842b0ab9af2aeb7bbc23c0812305 100644 (file)
@@ -8,7 +8,6 @@
  * Code supporting the EB64+ and EB66.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index b741600e3761a794450d07b278b6ffd2afe2b0ff..cc4c58111366b54fccd67789262e92a681ca75b9 100644 (file)
@@ -8,7 +8,6 @@
  * Code supporting the MIKASA (AlphaServer 1000).
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index 55db02d318d74172804f5ee67ae1ebd25e046b7d..2d3cff7e8c5f83723576d8b0d54ca004d80af53e 100644 (file)
@@ -9,7 +9,6 @@
  * CORELLE (AlphaServer 800), and ALCOR Primo (AlphaStation 600A).
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index 24dea40c9bfe823feea687efcea7677bb42bae12..a7a14647b50e01cf2f7725192b76e0d5c7b270a3 100644 (file)
@@ -8,7 +8,6 @@
  * Code supporting the Sable, Sable-Gamma, and Lynx systems.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index 131a2d9f79d3077cf3069c902ec038c08511bd8a..cd85ef725e0e426446cfbb0957b6819f44bef64e 100644 (file)
@@ -10,7 +10,6 @@
  * Kenetics's Platform 2000, Avanti (AlphaStation), XL, and AlphaBook1.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index 13f3ed8ed7ac2f1c166d6d9392a0785bccbb71fd..a8bfc8c16a7d20da0d2c7d1fdf1ef9e5058a6682 100644 (file)
@@ -12,7 +12,6 @@
  *     Granite
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index 3859749810b41fd27cd74608d6678f57723f0f3d..50eccde2dcd8dc0ac9a00f495a454171be7faa4b 100644 (file)
@@ -27,7 +27,6 @@
  * 2003-06-03  R. Scott Bailey <scott.bailey@eds.com>
  *     Tighten sanity in time_init from 1% (10,000 PPM) to 250 PPM
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index f9d12319e0fbba45ec9dc97cfd9e31e5581fadea..d6e665d567bdc57758d10fe5c72a3b27fd758db2 100644 (file)
@@ -8,7 +8,6 @@
  * This file initializes the trap entry points
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
 #include <linux/tty.h>
index 0922e0785ddb93eac641c6b0ffce874d4b869108..71470e9d93ba2e1c1071730093800817e194f08d 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <asm-generic/vmlinux.lds.h>
 
 OUTPUT_FORMAT("elf64-alpha")
index 0528acd0d9ad64a05729077cda3ee2741f732efe..8804bec2c6448e15e5f34be99b25e9bef8518a15 100644 (file)
@@ -2,7 +2,6 @@
  *     arch/alpha/lib/callback_srm.S
  */
 
-#include <linux/config.h>
 #include <asm/console.h>
 
 .text
index 1c879bbce419309eed5865a9882a1baa7dd7b380..69d52aa37bae2c27ddf568b10b28e43d14af4084 100644 (file)
@@ -4,7 +4,6 @@
  * Delay routines, using a pre-computed "loops_per_jiffy" value.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h> /* for udelay's use of smp_processor_id */
 #include <asm/param.h>
index c3849baebd575e06683e706c2710dbf13f596480..dc7aeda157734737f71d8a0b7dd3a7bfc7fbbcab 100644 (file)
@@ -2,7 +2,6 @@
  * linux/arch/alpha/mm/extable.c
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 
index 64ace5a9cd3d1383159992d0bdff9363fbf13238..622dabd846800b14fb13c623eff5c61da0ac9cf7 100644 (file)
@@ -4,7 +4,6 @@
  *  Copyright (C) 1995  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 544ac5dc09eb60e2b00eb5ea58e6da483a266030..917dad1b74c8f9f2947eb79eb389af4aa909133b 100644 (file)
@@ -6,7 +6,6 @@
 
 /* 2.3.x zone allocator, 1999 Andrea Arcangeli <andrea@suse.de> */
 
-#include <linux/config.h>
 #include <linux/pagemap.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
index bf6b65c81befda0c62b2364104dd1681cd7afcac..b826f58c6e7247e5f73a45039a1493c9b7c90f60 100644 (file)
@@ -6,7 +6,6 @@
  *  Copyright (C) 2001 Andrea Arcangeli <andrea@suse.de> SuSE
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 4a8a689d15e61c7a33719daacf4b994e6b46abb5..941c5f5cbacf9a2492edbc96a95d348be7b718f2 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1999, 2000, 2001 Nexus Electronics Ltd
  */
 
-#include <linux/config.h>
 
                /* There are three different ways the kernel can be
                   booted on a 7500 system: from Angel (loaded in RAM), from
index b08bd23f8d1639ab291658b71290ea8cf27369a5..d0e3b20856cd4657170b13f85d6111dee1ec5d65 100644 (file)
@@ -7,7 +7,6 @@
  * is merged with head.S by the linker.
  */
 
-#include <linux/config.h>
 #include <asm/mach-types.h>
 
 #ifndef CONFIG_ARCH_L7200
index 5aefffd46048d2d9841235b5858185b8db56a8d7..4c8c0e46027d224458e104d4ceab0d4e607b9c3c 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/mach-types.h>
 
index 59ad69640d6bde4e26cb8b41279ca32aa1b47c65..eb0084ea1ec49e15760be80ff818d6172291fdb8 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/mach-types.h>
 
index d3fe2533907ec1af9c812362eb91802a8af713f4..73c5d9e0201c47fd48b6a79194e3cb0413d5147f 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/mach-types.h>
 
index 23016f6aa645f405dcb9108240f1fad80f4ac4b9..f7b5c6db30f52a5846769e70a827f5dadc3e89d9 100644 (file)
@@ -8,7 +8,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/linkage.h>
 
 /*
index 0dafba3a701d605d80ad34e3c87bf1fb8da5627b..fbc3ab0e10117160bde63ed323663c607a02e00a 100644 (file)
@@ -15,7 +15,6 @@
  * Based on sa1111.c
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 3f68db84e5e6c488920258f0911c4378cb35ccc2..fe06a36a21302a73cf1d5cd89a2056fc4f8d9fcc 100644 (file)
@@ -14,7 +14,6 @@
  * All initialization functions provided here are intended to be called
  * from machine specific code with proper arguments when required.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index dfca596a9a276b90a76b6e02a6528c80fd8acdb5..95c8508c29b7125a1ac93bc0a6fd4e4f00d39f9e 100644 (file)
@@ -11,7 +11,6 @@
  * License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index ef716a5b07ace7d6d640eede475c61eff24ea826..ba2e62986a578da898a1ec131270e0e1353f8b8c 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/ptrace.h>
index 2bed290fec76b4522bee0befb6812f141f82aaab..33c55689f999ea3f7bcd6f4955d339b4d08fd343 100644 (file)
@@ -10,7 +10,6 @@
  * [This document is available from Microsoft at:
  *    http://www.microsoft.com/hwdev/busbios/amp_12.htm]
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/poll.h>
 #include <linux/timer.h>
index 45da06fc1ba1a1481f66e102e0fc582aaa2096f5..964faac104fb05a51b96e2de0be2137d30df6594 100644 (file)
@@ -5,7 +5,6 @@
  *
  *  Bits taken from various places.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
index 60cfa7f3226cec9e81f1735807bc3a4a364e4850..0a1385442f4344548bf20c5c0b28090f743e12b3 100644 (file)
@@ -15,7 +15,6 @@
  *  the kernel for 5 years from now (2001). This will allow boot loaders
  *  to convert to the new struct tag way.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index da280bae3d0797f4071dccaff162db2304e8c6e4..a5747e58a9dc66d37e0b7182b7f06be2795257a0 100644 (file)
@@ -9,7 +9,6 @@
  *
  *  32-bit debugging code
  */
-#include <linux/config.h>
 #include <linux/linkage.h>
 
                .text
index 00aa225e8d95ede70807e0f901bdb89d6da757a8..68a257666d953f62be9065db871f2476f9c9502d 100644 (file)
@@ -27,7 +27,6 @@
  */
 #define ECARD_C
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 6423a38839b8b4e86f6105399e209e00ce8f607c..26f197afd2040b28b52e7a0c0f1f6cfc99d051e2 100644 (file)
@@ -14,7 +14,6 @@
  *  Note:  there is a StrongARM bug in the STMIA rn, {regs}^ instruction that causes
  *  it to save wrong values...  Be aware!
  */
-#include <linux/config.h>
 
 #include <asm/memory.h>
 #include <asm/glue.h>
index 75af6d6e2f28df15e50847f76c59786a949ff7a3..6f5e7c50d42ff2d78bd9b29d050f9902904f1af7 100644 (file)
@@ -7,7 +7,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 
 #include <asm/unistd.h>
 
index f1c2fd5b63e40beb0e990148a2cd2be5fde2c139..87ab4e157997f9f335d461c501964750a52296d2 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/linkage.h>
 
index 2af7e44218af77d3f5f4864710818f45f89bcec3..ac9eb3d30518ade76e1b01965fb969d90f856950 100644 (file)
@@ -12,7 +12,6 @@
  *    for 32-bit CPUs which has a process ID register(CP15).
  *
  */
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <linux/init.h>
 
index 330b9476c398d63856c7daa8ab5aaf2378f0d667..518b80cd87de313817cc5f943a27448e545db0b8 100644 (file)
@@ -11,7 +11,6 @@
  *
  *  Kernel startup code for all 32-bit CPUs
  */
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <linux/init.h>
 
index ec20f8935e8bec809649bafc5fd0d80f212d9861..4d31cf8d02d57aa55988757c91d31a93a295086d 100644 (file)
@@ -21,7 +21,6 @@
  *  IRQ's are in fact implemented a bit like signal handlers for the kernel.
  *  Naturally it's not a 1:1 relation, but there are similarities.
  */
-#include <linux/config.h>
 #include <linux/kernel_stat.h>
 #include <linux/module.h>
 #include <linux/signal.h>
index 055bf5d28894097849b9014cdafe65389cf77370..298363d97047755c3ac969baef5a95217a69bea8 100644 (file)
@@ -9,7 +9,6 @@
  *
  * Module allocation method suggested by Andi Kleen.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleloader.h>
 #include <linux/kernel.h>
index e1c77ee885a7f98eaaa9ac213991874561d2b34d..c3258b763c5d87438464126a775572dce33bf046 100644 (file)
@@ -10,7 +10,6 @@
  */
 #include <stdarg.h>
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index c40bdc770054c19b8a79e1f660211ec790b39274..9254ba2f46fc147b756407d6d21fdff16a117f84 100644 (file)
@@ -9,7 +9,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 6bdf70def01f0c22390aeeba31db56cbd05be7e8..7447a1987322973801fd4789adea5fd86a5fa6ed 100644 (file)
@@ -7,7 +7,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/stddef.h>
index 83a8d3c95eb3ff458631412a96bf5ed6e4f1c742..48cf7fffddf2add8d663fc4db96b019ed3eaea04 100644 (file)
@@ -7,7 +7,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
 #include <linux/ptrace.h>
index 1370d726dc105909bd0a0d72ca6291ed8f939240..68e9634d260a74c8a1d21d93db7a2421fa376859 100644 (file)
@@ -7,7 +7,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/init.h>
 #include <linux/spinlock.h>
index 9c12d4fefbd30c9aa969f1c189cbf9a3f4f1f8bd..09a67d77185775937a6f70c9541172bbee416d67 100644 (file)
@@ -16,7 +16,6 @@
  *  1998-12-20  Updated NTP code according to technical memorandum Jan '96
  *              "A Kernel Model for Precision Timekeeping" by Dave Mills
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/interrupt.h>
index 35230a06010813b0131808acb2fb01ca2bc8c636..35a052fc177aeaefbebd2ceb294805d472ac7d45 100644 (file)
@@ -12,7 +12,6 @@
  *  'linux/arch/arm/lib/traps.S'.  Mostly a debugging aid, but will probably
  *  kill the offending process.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/signal.h>
 #include <linux/spinlock.h>
index 2df9688a70282fca86ac0fb854a64da305961111..3ca574ee277271e04b05c79ed956337b3e7dfb7a 100644 (file)
@@ -4,7 +4,6 @@
  */
 
 #include <asm-generic/vmlinux.lds.h>
-#include <linux/config.h>
 #include <asm/thread_info.h>
 #include <asm/memory.h>
        
index 91f993f2e9dbdfd5786733dcaaec3e36ae26cf31..74230083cbf416a2d073ceba27ab9c2a38927873 100644 (file)
@@ -10,7 +10,6 @@
  * 27/03/03 Ian Molton Clean up CONFIG_CPU
  *
  */
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
                .text
index b8c14e93669711d2c52f20ca06c41980eaf791b0..542251021744694a54124103f8e07a31c61fb02b 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 
 #if __LINUX_ARM_ARCH__ >= 6 && defined(CONFIG_CPU_32v6K)
        .macro  bitop, instr
index d847a62834cb134492b058b85760e032b0b665b1..f76de07ac1825f77ec045ff6c01c1179bd3c2378 100644 (file)
@@ -10,7 +10,6 @@
  *  published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 
 #ifdef __ARMEB__
index 65be5efd633c7b618c71f1a2e478ea8501b3c110..aa01d6753d6ed6bb293b15a6fb40b6755fde3a3b 100644 (file)
@@ -9,7 +9,6 @@
  *  it under the terms of the GNU General Public License version 2 as
  *  published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index e94645d77f7aec6c30df613fe775cfb9fe127de1..794d3fbb449ba0b3d6efe1f4985cb9a6a6fb0275 100644 (file)
@@ -18,7 +18,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 67d5f7786cdbbdc992f99e0573996fd4f2679647..c8b6f334246a9b41470e52ff3658854d760e16c2 100644 (file)
@@ -18,7 +18,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 48d7390fa584760879652a1744791d172e7b0d12..65873037e02ad94572290e4848fb330b16b01491 100644 (file)
@@ -21,7 +21,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 72202ed830addcf152cd3ec50e7460b511c47c54..868192351ddaf8dcde4af7d35100e6e1e42a9543 100644 (file)
@@ -21,7 +21,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index e836f8537a1d71bff2af782cb1e95a3119c7a91f..cc55f4c28d956ecd0a4db8c246d977ee156d0828 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <asm/mach/arch.h>
index 1cf85d231baa92afd6951b1d64d0f0ed34df01dc..4352acb88178a6930c1a0a39c6f76cda1f0c355d 100644 (file)
@@ -13,7 +13,6 @@
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include <linux/config.h>
 #include <linux/platform_device.h>
 
 #include <asm/hardware.h>
index 70f4d7ac1533cfca40206fc396d7886f186429fe..dcd560dbcfb7ea9bb933a0b93165eeed1472f781 100644 (file)
@@ -20,7 +20,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/mm.h>
index 28150e8905ba411674409960f275b2f631818e39..1a333730466ef2d052d9dee907bce838a870bf60 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
 */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index fc2d7d5e463769a093e0543feba48ba8fe9e916d..f2f080350ccb6d45a7db45dcda1d19e0c64121fc 100644 (file)
@@ -19,7 +19,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/kernel.h>
index ff26a85aa4bac24b1442d757b81693e0d627a4a1..3792ab4f09967c5bdd04cf537768003943167a22 100644 (file)
@@ -19,7 +19,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/initrd.h>
index 9ba45f4d5a7e1c5dab8f59e0db1fa01709c336d1..c8ecd2480c276e00d27f6c6e40b64ff0961bf037 100644 (file)
@@ -17,7 +17,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/types.h>
index 1fe73c0a9d01ea81d37c9670d999268fbd557664..26df3b666b56153b69f6dd0bc21b465b49f6e255 100644 (file)
@@ -13,7 +13,6 @@
  * your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/spinlock.h>
index 2c28d66d260ec7d1a7660278d3a77e99630ff51f..e760fd4f36559e3e26418c03ecb3c1b9774604cf 100644 (file)
@@ -10,7 +10,6 @@
  * your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 0b3b875b1875221dd0695abd3150f4eacd401097..df315f2e9bebe9219474f6845fd4794c7466abe2 100644 (file)
@@ -10,7 +10,6 @@
  * your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index bbe6e4a0bf6ab0457defaa8e990466ca3af282cd..af900f4755a44fabe0afff71d06334d06dc50349 100644 (file)
@@ -7,7 +7,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index 7a54578b51af5666025cdb679496f3c5492c6a6b..1f9b09b8ed88478746155d2291981e49a4f481d3 100644 (file)
@@ -10,7 +10,6 @@
  *   17-Mar-1999 RMK   Allow any EBSA285-like architecture to have
  *                     ISA DMA controllers.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/dma.h>
index 2c7c3630401bd2968544653331380dd719ab29a0..a64e22226515ba88ec289e00648c448b017f5fe8 100644 (file)
@@ -16,7 +16,6 @@
  * Changelog:
  *   02-05-1999        RMK     Various cleanups
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 229bf0585e40a8c7d0d35669d51d5c714f251a96..a1f381c64a30e108d1077a843ad4afb90c1b371d 100644 (file)
@@ -5,7 +5,6 @@
  *
  * Copyright (C) 1998, 1999 Russell King, Phil Blundell
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/ioport.h>
 #include <linux/kernel.h>
index 7451fc07b85aa48199603f8603796d1be7af334f..8e9cac5a213bb7d35648ba0b32d69f441a2d8dc4 100644 (file)
@@ -16,7 +16,6 @@
  * Changelog:
  *   02-05-1999        RMK     Various cleanups
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 193f968edac3a0a16c09a0d1266ef71b92806925..407cd4c0aa8add05c59eeeef2ff113a60ab85095 100644 (file)
@@ -13,7 +13,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 36266896979c04920e1cae80dfe829618646bb68..bf2acdce62e5cc6dfec0b36fddaf6acef247782d 100644 (file)
@@ -13,7 +13,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index ea805bfa5e5401f01455f47d586fde14ecfb5b2d..294b1c450f216f60091e1c9647d966abaf098a55 100644 (file)
@@ -8,7 +8,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/init.h>
index 229a63a525cdd353bea66351f3bbbe9f70b492d4..f9043592e29936f14f38a7682e57c6b7db6f8fb0 100644 (file)
@@ -20,7 +20,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/ptrace.h>
index fdeeef489a73592039c605ed55a2156ac277801f..d7f50e57e753e6ab10654f62ca57d87dafd0d0b5 100644 (file)
@@ -12,7 +12,6 @@
  * warranty of any kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <asm/hardware.h>
 
index 0ebbcb20c6ae2ab3a43177a019c51ec254d16400..b6d096903c4ae65c92eb6826d6c9f8ac3639b28c 100644 (file)
@@ -12,7 +12,6 @@
  */
 #include <linux/mm.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/major.h>
 #include <linux/fs.h>
 #include <linux/platform_device.h>
index 7b7b6eea38469198b7de3454877d4f49f248fb9f..3cc98d892ad48ca349a03504bfaa9b2eda130695 100644 (file)
@@ -11,7 +11,6 @@
  */
 #include <linux/mm.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/major.h>
 #include <linux/fs.h>
 #include <linux/platform_device.h>
index ebe4391dd7f96ed8d5c6048123dcedaca0d321e5..3cfc5aab82596032a8b99d2bef54b1c18f5646be 100644 (file)
@@ -14,7 +14,6 @@
  * warranty of any kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/spinlock.h>
index 52fac89e95b59c28701cfdbedfee0519820cf1af..ac29298c5d3f237f24d1691c6d8cf2928616ab00 100644 (file)
@@ -18,7 +18,6 @@
  *  option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 09101271298e0fa54ee93956555db25983da33d1..a6f14801872d3aa73f75b26dd2d4bb31d45f4f7b 100644 (file)
@@ -14,7 +14,6 @@
  *  Free Software Foundation;  either version 2 of the  License, or (at your
  *  option) any later version.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 076e3f8acc961f8f6d8268539cb2254d5a64b74c..91d36d91dac03f501a4a3c4377a9802ac13d7082 100644 (file)
@@ -14,7 +14,6 @@
  *  Free Software Foundation;  either version 2 of the  License, or (at your
  *  option) any later version.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index d628da56b4bcf6d4ee5db0cfdc236f137880e8d4..9b8ded2598077113e55516217958c2a7446ff245 100644 (file)
@@ -14,7 +14,6 @@
  *  Free Software Foundation;  either version 2 of the  License, or (at your
  *  option) any later version.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 66915282a463562025c79285273628631e75c887..8477ae1d8f72edf43a2922de1031d9f1847c028d 100644 (file)
@@ -15,7 +15,6 @@
  *  option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 051e3d70026e7b1eb96763c9e3704e2cf19e84f0..82ad6ef90a38551c38bfb4ebb07fb2db6f3fe9be 100644 (file)
@@ -14,7 +14,6 @@
  * warranty of any kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/spinlock.h>
index 357351fbb1e217fba6d6b833194b48a499cf3e4e..7a85ced567184c06487742bad59c9db0a5cce56f 100644 (file)
@@ -10,7 +10,6 @@
  * warranty of any kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/spinlock.h>
index e0886871cc773d34effab66e4ca9e5be199b43cb..bba9d9f086919d3ca19da42df4fa0827efebc14d 100644 (file)
@@ -14,7 +14,6 @@
  * warranty of any kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/spinlock.h>
index ac72f94c5b4d58dd15972abe63f997a865792513..3b34fa35e36bbcde0f1dacc892aac432c0617398 100644 (file)
@@ -16,7 +16,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
index 92ad18f4125167f45e562922771c81fba3c7a168..d06e21b70de57e4e9c627489a762fd0bf3a543cb 100644 (file)
@@ -14,7 +14,6 @@
  * warranty of any kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/spinlock.h>
index bf25a76e9bdffcd78fdf314301e983d118eae0c8..13c7c629d0374eff80f2417ff28b5c2829b9beef 100644 (file)
@@ -13,7 +13,6 @@
  * warranty of any kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/init.h>
index da415d5d7f3719a9d70f688080db570011e55518..8b8ca80c94490177be32788b43715ecd84a7a692 100644 (file)
@@ -15,7 +15,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/init.h>
 #include <linux/delay.h>
index 26b7c001ff64d6c5a5336377459443e4e1f10961..2d3b770d9e8254db2554f8cc9b61cf6f05db93ea 100644 (file)
@@ -15,7 +15,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/init.h>
 
index ece860444d5b91ef57fb68f0f20ddf6791f103e4..0de639d6e60a5a4f418b05d3d1ee48940fff3d78 100644 (file)
@@ -15,7 +15,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/init.h>
 
index ef9af375fcc469e2b0773940d43e89020ae67541..1919835d9610a6a07195e5c6299569f2d573921a 100644 (file)
@@ -8,7 +8,6 @@
  *  version 2 as published by the Free Software Foundation.
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/interrupt.h>
index 4b8d0ec73cb76621f55add6719fc999c02a19b8e..7b206116cd0391882f6d093325150bf9577acd80 100644 (file)
@@ -14,7 +14,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/major.h>
index 847329cafc5c060dc94f208a177652e8e9f047e2..a611c3b6395491e250cd50be7005b67c5171e307 100644 (file)
@@ -9,7 +9,6 @@
  * (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index aca2a120813ae9f95456749a36939d447019a292..880cd2d8f4aae4932bf1f5557c9e7dccd17000c3 100644 (file)
@@ -16,7 +16,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 5c637c0483688d9ef1a6172ad6a5fd437ba3cad2..da13c3e82850e46e274a78acc4e0d3aed803ddc1 100644 (file)
@@ -11,7 +11,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index be3a2a4ee2b8c6d304b9e34187cb40ac25a11a91..fab8b0b27cfbca4dd4c0a809dca6637369a0bcbc 100644 (file)
@@ -8,7 +8,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index a0431c00fa813353a98d2e818e3ff6d102b0d8b8..9e039845b50e53abc25712f113b5351ee7070197 100644 (file)
@@ -36,7 +36,6 @@
  * 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 6506508159157129e85ccc8400119849f448fc6e..8976fbb21f7cb1059b45a88ed986b7e7a6ac9824 100644 (file)
@@ -9,7 +9,6 @@
  * The "surfer" expansion board and H2 sample board also have two-color
  * green+red LEDs (in parallel), used here for timer and idle indicators.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel_stat.h>
 #include <linux/sched.h>
index c8ffd1ddcdedff180bfc682560419236a16568bf..a0cd001ac39af1eabc29dfa1bb4158c55ef49715 100644 (file)
@@ -1,7 +1,6 @@
 /*
  * linux/arch/arm/mach-omap1/leds-innovator.c
  */
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/hardware.h>
index 2c8bda847c186e3a47ecf8518000bc1d8406dd91..3b29e59b0e6f47d3da318ae426483ab304a42518 100644 (file)
@@ -3,7 +3,6 @@
  *
  * LED driver for OSK, and optionally Mistral QVGA, boards
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/workqueue.h>
 
index 10fe0b3efcace593b613aa8e0c036082e83296d1..fa74ef7af15f730d8af3da0a150982c0b50ae675 100644 (file)
@@ -22,7 +22,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <asm/system.h>
index 9b4cd698bec85d9d05b06371313066579b9d3c41..56319742aa1b9a77b79ec71538623cb4dbdaf52a 100644 (file)
@@ -8,7 +8,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index e58295e2d3b244e7410d7dbec5d666afa66d400e..abef33d10f016815a0c67205a8c99f83fa08f91d 100644 (file)
@@ -32,7 +32,6 @@
  * 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 #include <asm/arch/io.h>
index a85fe6066bc47d9a3e6168ff1686b6356dcec200..c2d3205bc592160a71658fa52156f1f517619492 100644 (file)
@@ -33,7 +33,6 @@
  * 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/delay.h>
index 72eb4bf571acf11abb6cafe89e65fcfa2274c2e2..7edf0f69da1e0c36bc62781991344a5b7613ec7f 100644 (file)
@@ -15,7 +15,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/device.h>
index fb7f91da1aad12d8f8682eff0dcb558d6f314916..4842ffe26705ee9c761f91c05872073d64825207 100644 (file)
@@ -9,7 +9,6 @@
  * (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 76187300f2b684b72804b2de42e0b960a2c51605..871ace4fccb879a186cf135f87a0dcbfaafa4343 100644 (file)
@@ -11,7 +11,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 7d5711611f2f413cae141ec31fe9ccea382d234d..20dd6e74e91d64c486fc8e3c886caa71a111a9f2 100644 (file)
@@ -11,7 +11,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index d7baff675cfe04f6a9478473a998b979983eb0fe..3eed6a737bf8144e69edb096c1710bae2ad8ca23 100644 (file)
@@ -12,7 +12,6 @@
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <asm/hardware.h>
 #include <asm/mach/irq.h>
index 1d925d69fc3581505629578cc202549c8eb7c321..85cbc2a2e6639bf573ff399203a62df5c616085f 100644 (file)
@@ -14,7 +14,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/device.h>
index 1197dc38c20afcd4b87b1f7dff7f98999402e267..4c5f2c04883ee0f7904b0ec7572fe113e9cd5aef 100644 (file)
@@ -22,7 +22,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <asm/system.h>
index 8893479dc7e0262777e7fa612eef298a2958839b..c2bf57ef68255309ab46096f6de08202af433a1b 100644 (file)
@@ -13,7 +13,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/clk.h>
index 00299cbeb9111b7e8ad33c42f2ec9976054fa710..16247d557853fbb146a4319c1b60442f2a59b744 100644 (file)
@@ -21,7 +21,6 @@
  * MA 02111-1307 USA
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 #include <asm/arch/io.h>
index d261e4ff4d9b33c2b664d2b07f914e69f1c78cc9..a5ef7f611da95e27296648112cb335dec50aa6b0 100644 (file)
@@ -22,7 +22,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  * MA 02111-1307 USA
  */
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 #include <asm/arch/io.h>
index 5eba6ea0b0f79ee1119f20170bec271e7dc73348..38aa9270540eebfd5487f3e49a9286079b5f582c 100644 (file)
@@ -12,7 +12,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/hardware.h>
index 05cf56059a0f11273f045a6757fe36cddb21b540..afbc6698e27cfce4107bee4f097f2db98cf79065 100644 (file)
@@ -11,7 +11,6 @@
  * namespace collision.  Mostly adapted the Mainstone version.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/hardware.h>
index c06d3d7a8dd4923da3f3989b25de5b0bf13676d8..065293eb0d82a4ce0e605838b2e953b8453c832f 100644 (file)
@@ -10,7 +10,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/hardware.h>
index 852ea72d8c80bfbc87a2b9741a1a53c371f60a04..2112c414f0e212588742c1be02c2a312772856a8 100644 (file)
@@ -10,7 +10,6 @@
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/suspend.h>
index 573a5758e781c366138de117529b92c04a71acce..c1f21739bf714a435dc7b3df21c3fc2c488e152b 100644 (file)
@@ -16,7 +16,6 @@
  * initialization stuff for PXA machines which can be overridden later if
  * need be.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 3baa70819f24fb20d6a0024e035946c5e8c49534..74eeada1e2fc6fe98f55fe7521e3a59547eeb27b 100644 (file)
@@ -11,7 +11,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 0650bed3b96ea3536e5a68ddaec7667d8b33a611..15874b360e519dd93c3e1f674b464fadb91210e3 100644 (file)
@@ -11,7 +11,6 @@
  * modify it under the terms of the GNU General Public License.
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 #include <asm/hardware.h>
index 6f6dbbd0802137f9d9cbe6d811226e54a2b3b238..d774430d02c0c058a038a584723863e1779678dd 100644 (file)
@@ -9,7 +9,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 #include <asm/hardware.h>
index b9b2057349ebe9a1738fd327ab668bd11decb4e7..1ef85fcc6c06ac771c5bceebc197e76d72409fdb 100644 (file)
@@ -10,7 +10,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/delay.h>
index d13270c5d7cdef5d41ee39287eadda3c7f1def36..eb09d3859d6da55c33784d95c11caf6de7493b7b 100644 (file)
@@ -18,7 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
 #include <linux/dma-mapping.h>
index 693fb1e396e033e95ecd6afdce8552dec4ef4591..84a959530fb6a280af8e0a9409d9f1848af13b52 100644 (file)
@@ -19,7 +19,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
 #include <linux/sysdev.h>
index fa124ed920e0dca9474941a422a3f16066fb97e0..726e2eaf8797c58cd4c6016c34f2ba84d316256e 100644 (file)
@@ -14,7 +14,6 @@
  *     27-Aug-2004 BJD  Added timers 0 through 3
  *     10-Feb-2005 BJD  Added camera from guillaume.gourat@nexvision.tv
 */
-#include <linux/config.h>
 #include <linux/platform_device.h>
 
 struct s3c24xx_uart_resources {
index 4dbd8e758ea6f9691f73e5c06439fa4d2efec2fc..b0aaf432873276ec7ba55c44b649e1fa797f88fc 100644 (file)
@@ -31,7 +31,6 @@
  * possible DMA function
  */
 
-#include <linux/config.h>
 
 #ifdef CONFIG_S3C2410_DMA_DEBUG
 #define DEBUG
index 43e9a550a203d762e4f2f0dbcf013ad5b9d70787..a589fe76d9158d1eedac0ff04ae657ed38f22e53 100644 (file)
@@ -29,7 +29,6 @@
  *     10-Mar-2005 LCVR  Changed S3C2410_VA_UART to S3C24XX_VA_UART
 */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/suspend.h>
 #include <linux/errno.h>
index dc27167f4d595eb53d271afec92c4fc5a56c0303..a7561a79fc825dac89b97188554d5ff326411791 100644 (file)
@@ -24,7 +24,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 #include <asm/hardware.h>
index 9d7b799ea4a4c8b2df094c39487f688679a6e865..47387c5b97233649cbe7f23451ecf389ecb53be4 100644 (file)
@@ -18,7 +18,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/init.h>
index c58f12ba7a939d9a618f5bce32d800dc1cc9cac0..be06d668a3c93ab25d0407df68eb849467e6b3dd 100644 (file)
@@ -9,7 +9,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index 8269a9ef9afe4adda328d83fbe38ebb2ea55f9ab..e0f6d57b506504efcaf0a4fbc5f230a368f6e7df 100644 (file)
@@ -10,7 +10,6 @@
  * Jan-2004 : Removed io map for flash [FB]
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/tty.h>
index 676b5c5b75bb2b537a4a689565902aa29e898a67..a6bab50dab6118714ad6922aceb0877a4f6a8cfa 100644 (file)
@@ -17,7 +17,6 @@
  *  04-16-2001 Lineo Japan,Inc. ...
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/tty.h>
index 9ea71551fc04b58bdd95226656f40242c3601116..4575f316e141a80179d341eee2a19eb27118c22f 100644 (file)
@@ -9,7 +9,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index b04d92271020ef1fd980bbf3b81a15d91ca65b5b..e727ba87b9f2def3509045d39b5327cf7e5080a8 100644 (file)
@@ -19,7 +19,6 @@
  *                                and abstracted EGPIO interface.
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index e9aa9dff211a5f273a4b1d067d837cd63e68c39f..ee9788989875be2ecdbab9a4cccd71f318ddbae4 100644 (file)
@@ -9,7 +9,6 @@
  *   - Green - toggles state every 50 timer interrupts
  *   - Red   - on if system is not idle
  */
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/hardware.h>
index 0a8f87bb6c4f8201bf2974ef9bb9e11cf14314e3..280929be972d55ef63c8604a15191ed02a622b6d 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/hardware.h>
index f6635a2d0e8303de319e169e6bbf5b88ccb7362a..f38eeddbef10634a4b9ab5fcfd82f46e894a875e 100644 (file)
@@ -3,7 +3,6 @@
  *
  * Author: ???
  */
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/hardware.h>
index 2e5fa14aa4ebb67bc9e9696145a8e08398c9a650..7e91cc90b5ae443b2bd72081967fb514c6441a05 100644 (file)
@@ -9,7 +9,6 @@
  * The HackKit has two leds (GPIO 22/23). The red led (gpio 22) is used
  * as cpu led, the green one is used as timer led.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/hardware.h>
index 18750149071306a08bf6d62194764f85332228a6..2d27d76cfc6b7694a9e859bf0a043f38817a56ce 100644 (file)
@@ -9,7 +9,6 @@
  *  time, but in that case the timer events will still dictate the
  *  pace of the LED.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/hardware.h>
index 6a27a2d32206101dd549684ccbc744de258c4fae..def090a87385c7915ea5ecd83658d5fd70d53f00 100644 (file)
@@ -3,7 +3,6 @@
  *
  * Author: Juergen Messerer <juergen.messerer@siemens.ch>
  */
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/hardware.h>
index 5aafe0b5699270ad7166ab127239357f0a067f64..8acab7b1e4c268ea30143d7f41c56e3b709fe6fa 100644 (file)
@@ -2,7 +2,6 @@
  * linux/arch/arm/mach-sa1100/shannon.c
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/device.h>
 #include <linux/kernel.h>
index d2c23b2c34d12f3270982c0fc6bee645a1c32f0b..a9ae1b581aa673903c6f71d894327a37608544a6 100644 (file)
@@ -2,7 +2,6 @@
  * linux/arch/arm/mach-sa1100/simpad.c
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 835989a0291843ee4ace248b1de46ccc2f1b2785..6774b8d5d13d696cbda2548198cd1834106c9dcd 100644 (file)
@@ -8,7 +8,6 @@
  *  Copyright (C) 1998 Phil Blundell
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/dma.h>
index 7bdeb70a0c10dbfb437423eac1ff31d0653891c9..7cd86d357a3c1901a9e3df08a90e62771164d3db 100644 (file)
@@ -15,7 +15,6 @@
  *
  * Changelog:
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index cebd48a3dae4b757f7a44c95030e6dafe2945a95..08de8490fb690c3e4913d8a3035662aa14a21174 100644 (file)
@@ -18,7 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/device.h>
 #include <linux/dma-mapping.h>
index 722fbabc9cfb21b1a9bcf563412bd9bdf8a47009..41b370090b60e2903ea8a3d1919fd19991332197 100644 (file)
@@ -14,7 +14,6 @@
  * 14/04/2005 Initial version, colin.king@philips.com
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/ptrace.h>
index 1eb59678207810a539ee1bdcd01eb706c46ca4a5..b257ef78ef457c7249339723e3c9219cf0b5f7d3 100644 (file)
@@ -19,7 +19,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/device.h>
 #include <linux/sysdev.h>
index f17ab4fb548aa5e26f100242828c997dc7b324bc..503725b166fc9c473649f737c65a42072f9fc0e7 100644 (file)
@@ -19,7 +19,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/device.h>
 #include <linux/sysdev.h>
index 705c98921c372e034af6b21ecf569872393cbe43..e0d21bbbe7d788e55854dfd3b2c5eb62cc96050a 100644 (file)
@@ -11,7 +11,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/compiler.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 54e3c5bb5186a88203ed83441e58926347cb55a5..2ebc1b3bf856ff454f5a0c114ef0dea9e9fbcaed 100644 (file)
@@ -7,7 +7,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <linux/init.h>
 #include <asm/memory.h>
index 4a884baf3b9c731c0f31e428c1595321f08dee4e..c5e0622c77650480f4dc148254d77f3545606d5d 100644 (file)
@@ -8,7 +8,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/signal.h>
 #include <linux/ptrace.h>
index 989fd681c822de5be93e6d66fe1676423e87b6a6..fe3f7f6250085c5c279306ba979cde87407d19d8 100644 (file)
@@ -7,7 +7,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/ptrace.h>
index 95273de4f772515780e2eac97ed2ae892ac52a0d..b0242c6ea066a8850eb80e04cd72bc43ce150cbf 100644 (file)
@@ -9,7 +9,6 @@
  *
  *  Page table sludge for ARM v3 and v4 processor architectures.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/mm.h>
 #include <linux/init.h>
@@ -227,7 +226,7 @@ void free_pgd_slow(pgd_t *pgd)
 
        pte = pmd_page(*pmd);
        pmd_clear(pmd);
-       dec_page_state(nr_page_table_pages);
+       dec_zone_page_state(virt_to_page((unsigned long *)pgd), NR_PAGETABLE);
        pte_lock_deinit(pte);
        pte_free(pte);
        pmd_free(pmd);
index 3de7f84b53c25e3cdd5f8d44da252336fb55645a..29e54807c5bc6a1a0e010495aad34b9fd60346f2 100644 (file)
@@ -1,7 +1,6 @@
 /*
  *  linux/arch/arm/mm/mmap.c
  */
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/mm.h>
 #include <linux/mman.h>
index b9abbafca81225c5c6295438d49147c89b5f7860..cc609666df059ed88b38035e8d0ff7af90e4410c 100644 (file)
@@ -26,7 +26,6 @@
  *  CONFIG_CPU_ARM1020_CPU_IDLE -> nohlt
  */
 #include <linux/linkage.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/assembler.h>
 #include <asm/asm-offsets.h>
index bcd5ee022e00ae36bde2c50362fdd81114ee3107..117a946c28c8b1bb87593795b83e90b2dbf0cb76 100644 (file)
@@ -26,7 +26,6 @@
  *  CONFIG_CPU_ARM1020_CPU_IDLE -> nohlt
  */
 #include <linux/linkage.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/assembler.h>
 #include <asm/asm-offsets.h>
index b0ccff4fadd2559912e5edf50483369726f7fd3a..39b7c102180aac397d7810d4da70b1f117e02970 100644 (file)
@@ -15,7 +15,6 @@
  * functions on the ARM1022E.
  */
 #include <linux/linkage.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/assembler.h>
 #include <asm/asm-offsets.h>
index abe850c9a641ef0ef6074eaaabeb8484852a2929..33e1ab8eb1d6eec93fe74451c06ba6534ee5284c 100644 (file)
@@ -15,7 +15,6 @@
  * functions on the ARM1026EJ-S.
  */
 #include <linux/linkage.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/assembler.h>
 #include <asm/asm-offsets.h>
index 31dc839ba07c9557ff0dae53de0827b345e870cd..6f0db29ab842867f78918609f280da3f8b61f413 100644 (file)
@@ -26,7 +26,6 @@
  *  CONFIG_CPU_ARM920_CPU_IDLE -> nohlt
  */
 #include <linux/linkage.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/assembler.h>
 #include <asm/pgtable-hwdef.h>
index 9e57c34f5c098532c044aa2b1f1c02faa6aa3610..1ad464cc7bcb6a1ca7ad9c850193e7e2df922231 100644 (file)
@@ -27,7 +27,6 @@
  *  CONFIG_CPU_ARM922_CPU_IDLE -> nohlt
  */
 #include <linux/linkage.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/assembler.h>
 #include <asm/pgtable-hwdef.h>
index 8d47c9f3f931b1aaa1381d5ad15347899fddfeb7..a55d56ce2264aa9c531b4c8a8f2684a97547bd6c 100644 (file)
@@ -50,7 +50,6 @@
  */
 
 #include <linux/linkage.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/assembler.h>
 #include <asm/pgtable-hwdef.h>
index cb4d8f33d2a3ff4b02146e2475ab8e22e9affbf8..20275967663d36e01ee74a60bd7f998812f08ee5 100644 (file)
@@ -26,7 +26,6 @@
  *  CONFIG_CPU_ARM926_CPU_IDLE -> nohlt
  */
 #include <linux/linkage.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/assembler.h>
 #include <asm/pgtable-hwdef.h>
index 7b3d74d73c809c7c8d1855dcca4794ede2cc9316..cc60acde84d9272697d5b3ed70656966f4b086c5 100644 (file)
@@ -26,7 +26,6 @@
 #include "fpmodule.h"
 #include "fpmodule.inl"
 
-#include <linux/config.h>
 #include <linux/compiler.h>
 #include <linux/string.h>
 #include <asm/system.h>
index 28cd79a451d3abaf2e1471f98833fdea35a8ddfa..4a4d02c09112f06861ba95aef761c31b9e429444 100644 (file)
@@ -31,7 +31,6 @@
  */
 #define GET_USERREG() ((struct pt_regs *)(THREAD_START_SP + (unsigned long)current_thread_info()) - 1)
 
-#include <linux/config.h>
 #include <linux/thread_info.h>
 
 /* includes */
index 4a31dfd9406884a90a242e7173bae04cd7f77bf2..2cebb1529607438c99fd81f3ecf18aea5431bc97 100644 (file)
@@ -20,7 +20,6 @@
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
-#include <linux/config.h>
 #include "fpa11.h"
 #include "fpopcode.h"
 
index 32859fa8dcfcf5c5d85c200c65b588c4e73831c2..79f8e67cc6c18a42a51ee7aff19695a6e1fc6bf2 100644 (file)
@@ -20,7 +20,6 @@
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
-#include <linux/config.h>
 #include "fpa11.h"
 #include "softfloat.h"
 #include "fpopcode.h"
index 7c67023655e41c6543fb1b31a246f91fbd91499f..9843dc533047d7912ed913d549d714356523cd40 100644 (file)
@@ -20,7 +20,6 @@
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
-#include <linux/config.h>
 #include "fpa11.h"
 #include "fpopcode.h"
 #include "fpa11.inl"
index 7d977d23f026701601a460f90123296bcbf32051..4c0ab50f399a5385adcedee14a434f281a3c5cd1 100644 (file)
@@ -24,7 +24,6 @@
 #include "fpa11.h"
 
 #include <linux/module.h>
-#include <linux/config.h>
 
 /* XXX */
 #include <linux/errno.h>
index 67ff2ab08ea0162783dbee678e2f7885d578c84d..922b81107585f324ccf7e5878643232729ad5d79 100644 (file)
@@ -19,7 +19,6 @@
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
-#include <linux/config.h>
 #include "fpa11.h"
 #include "softfloat.h"
 #include "fpopcode.h"
index 6528e081c83f59f527139d5c48d1a7556513fd30..ec78e3517fc9fccb55a560e26b389b9c9b95f4a4 100644 (file)
@@ -23,7 +23,6 @@
 #ifndef __FPOPCODE_H__
 #define __FPOPCODE_H__
 
-#include <linux/config.h>
 
 /*
 ARM Floating Point Instruction Classes
index 978c699673c69e65ccb2957d09957597ac32942f..e1125bc39ee49ba57eea514cd79d1078385bbd8f 100644 (file)
@@ -32,7 +32,6 @@ this code that are retained.
 #ifndef __SOFTFLOAT_H__
 #define __SOFTFLOAT_H__
 
-#include <linux/config.h>
 
 /*
 -------------------------------------------------------------------------------
index 32ec04c58bcd4fb66e4647d63c5cab6fbbb1e758..c520e9dcdd8a43e9d283f89c9b3aacde26707fda 100644 (file)
@@ -11,7 +11,6 @@
  * published by the Free Software Foundation.
  */
 #include <linux/version.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/module.h>
index adffc5a859ee7760c592785c8001842c54e99016..57b7b93674a486218bb4e35ca9840bd1b90d7c6f 100644 (file)
@@ -7,7 +7,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 5d5d6eb222dd739e9b3d8be070ed4030bfa897ff..ca486c9f36b508cf763765006486f8b9ac3bdac1 100644 (file)
@@ -9,7 +9,6 @@
  * (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 305e9b990b7106666956f82be945a71bf97bb93d..56acb8720f789ad7047daef09ba4ec6717e70d5b 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index d3c8ea7eecfd216846d5b2f94161d721e17b2d20..418b88fbea8e387d170b6e4e6e43e55f9a1dd625 100644 (file)
@@ -11,7 +11,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 8c1c016aa68980db04bdcb1704d9df58308cf63c..042105ac30b8ea5058861343058d62112e44b288 100644 (file)
@@ -22,7 +22,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 37792d43738b1981d78541f05a56a390ec5f726b..b5d307026c82da0d3005184aad1bc696b019f1dd 100644 (file)
@@ -23,7 +23,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/errno.h>
index 66414cc8e6e38650da20a9447eaa34fd09b28b21..85cffe2c6266366d65a4ca8a963f729123879785 100644 (file)
@@ -8,7 +8,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 #include <asm/arch/io.h>
index b7bf09b1b412c4b6e34a095b163713ba14bd4720..72ce52ce815b4e64862f399dec841799dc8355cb 100644 (file)
@@ -11,7 +11,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 3461a6c9665ccd47ec7f6aec82133d0443f276c4..053c18132ef44bc0b91d5340d37e4efa5e594798 100644 (file)
@@ -33,7 +33,6 @@
  * 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/delay.h>
index 00afc7a8c2ab036634392214358073235a4f4548..9b815327b6a58f2c23db3100a909fab29884ac5b 100644 (file)
@@ -20,7 +20,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 2476f4c2e760c0e9e6236305bcd728d161952557..9d265d5e748cc8b7b77715fda22220f1912c4f4d 100644 (file)
@@ -9,7 +9,6 @@
  * published by the Free Software Foundation.
  */
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/signal.h>
index cf4ebf4c274d792882ddfd7159982ac51528cae6..c14fe918bc4cf5e0cfb8aec5871c95be1c761cb3 100644 (file)
@@ -79,7 +79,7 @@ config ARCH_A5K
         bool "A5000"
        select ARCH_MAY_HAVE_PC_FDC
         help
-          Say Y here to to support the Acorn A5000.
+          Say Y here to support the Acorn A5000.
 
          Linux can support the
           internal IDE disk and CD-ROM interface, serial and parallel port,
@@ -129,7 +129,7 @@ config ZBOOT_ROM_BSS
 config XIP_KERNEL
        bool "Execute In Place (XIP) kernel image"
        help
-         Select this option to create a kernel that can be programed into
+         Select this option to create a kernel that can be programmed into
          the OS ROMs.
 
 comment "At least one math emulation must be selected"
@@ -140,7 +140,7 @@ config FPE_NWFPE
          Say Y to include the NWFPE floating point emulator in the kernel.
          This is necessary to run most binaries. Linux does not currently
          support floating point hardware so you need to say Y here even if
-         your machine has an FPA or floating point co-processor podule.
+         your machine has an FPA or floating point co-processor module.
 
          It is also possible to say M to build the emulator as a module
          (nwfpe) or indeed to leave it out altogether. However, unless you
index 0307804a607082b1284cab0ac9a6bdadc6ff78de..2a2cda36d83b9f103c912681d6502c646d662c65 100644 (file)
@@ -7,7 +7,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/linkage.h>
 
 /*
index 9d66c27f272415a47ae11ccbda61e2c462b4c552..07907b6ecb634126b116236e3a92fcba632d4ec1 100644 (file)
@@ -8,7 +8,6 @@
  * published by the Free Software Foundation.
  */
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/user.h>
 #include <linux/string.h>
index ac682d5fd0398cd67a96ac3b22410a40d74c959a..76d9d7d489a81cf8f32c535e711487bc40f81a09 100644 (file)
@@ -12,7 +12,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
 
index db0310db8998b66212ff3dd36ad70aafa55b0398..21e966ff0aa7ddc147ec88b2182b99e29614f369 100644 (file)
@@ -16,7 +16,6 @@
  *  the kernel for 5 years from now (2001). This will allow boot loaders
  *  to convert to the new struct tag way.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index f2278aadac8a28638312039ff3f6cd05cd4db640..047d0a408b9deb25c10a9db2d32c144353ccf193 100644 (file)
@@ -24,7 +24,6 @@
  */
 #define ECARD_C
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index a24272b61f302c5aefc96b7c868b0ae297d9cb4f..c4776c96be6b7dcd3d402670c6b412b8571a62b0 100644 (file)
@@ -36,7 +36,6 @@
  *      - enables FIQ.
  *  6. Goto 3
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/mm.h>
 #include <linux/mman.h>
index 8bfc62539ba676cc6676baa75a5c1b73b38ad220..93575e0e58fe0c7340be0d307f6e3186bad44096 100644 (file)
@@ -10,7 +10,6 @@
  *
  *  26-bit kernel startup code
  */
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/mach-types.h>
 
index 0934e6fba6062e2579f7bdbe836fff83cb2b87f7..e08ba2955ec72539fb7efd0fde3e42f1ab98fbdf 100644 (file)
@@ -18,7 +18,6 @@
  *  IRQ's are in fact implemented a bit like signal handlers for the kernel.
  *  Naturally it's not a 1:1 relation, but there are similarities.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/ptrace.h>
 #include <linux/kernel_stat.h>
index 38630565917142c4b4bb2c5017141e71ecfb06cc..dcd81e62ff4e83f3c11b2a7c0f1b45d8da57c3fe 100644 (file)
@@ -11,7 +11,6 @@
  */
 #include <stdarg.h>
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 282e24d793282324a4e4da8969d6cc2c5f2c11a9..9343889b27fe897cc647533287f9989f5ab65ce4 100644 (file)
@@ -9,7 +9,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 3023a53431ff240e09d66e8d024bef0fe922301f..5447a06db3facf3084473e3dde1f64adb9af000b 100644 (file)
@@ -13,7 +13,6 @@
  * published by the Free Software Foundation.
  */
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 4eb329e3828a635bfc13789bd46ecf5754b68752..843c29fe9af5d1aaf6f78fb55dfcec35e33c97a4 100644 (file)
@@ -8,7 +8,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/stddef.h>
 #include <linux/ioport.h>
index 2a48c12100c0144039a00b3182c06c057ebc8c3a..6a8ef8da6dab07000467c98fbd7ea95a2617dd10 100644 (file)
@@ -10,7 +10,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
 #include <linux/smp.h>
index 335525339ad6f4e107689ca26d047eb7b4a89330..718de9bed9500f27ce9a3acc0f80534c868ccc99 100644 (file)
@@ -18,7 +18,6 @@
  *              "A Kernel Model for Precision Timekeeping" by Dave Mills
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/interrupt.h>
index a79de041b50e5c9795b33fa02563eee185ff26cb..d594fb59e945514f63ab217b6f1ea1ac7dbefda3 100644 (file)
@@ -15,7 +15,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/signal.h>
index 811a6904801087f1f32d99f230c0e789d6f73c98..1fa39f02e07c765f1764ad3e271d9a46879634b8 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 
 #ifdef CONFIG_XIP_KERNEL
 
index d793fe4339fc75141a0003bddf7d494989aaee87..e27feb1e891d6abcb4dbaa69f182cdca01a73cf5 100644 (file)
@@ -7,7 +7,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
                .text
index 261dd154c1a46aed180a54c551708c6d2e0198aa..a98eea74305ae23ee13059c5b48adb41baf9c5da 100644 (file)
@@ -7,7 +7,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 #include <asm/errno.h>
index 22d2c93aaf1a7d34f930e7f9a9034ecfb6a37cb0..cb56e943e006469cb99b38638e89e9b9276c6f66 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/kd.h>
 //#include <linux/kbd_ll.h>
 #include <linux/kbd_kern.h>
index b8f9518db8717cfd84343cfb8294b95e4c8bc775..0e29970b0e8a3603d616f504a6ba9683501acb2d 100644 (file)
@@ -39,7 +39,6 @@ Boston, MA 02111-1307, USA.  */
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 #include <asm/hardware.h>
-#include <linux/config.h>
 
 #define RET    movs
 #define RETc(x)        mov##x##s
index cbc7c61d5b3208b152920b9d96d13b2de30d17c0..4402a5a1b78fbe2d9efc8fb294f5915a8269c130 100644 (file)
@@ -10,7 +10,6 @@
  *
  *  DMA functions specific to Archimedes and A5000 architecture
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/init.h>
 
index 4361863f7ed2b2354c1d69efc0d608c8d218d5e7..a60d543edecc4f2b3d060f9089593fe5044752cd 100644 (file)
@@ -16,7 +16,6 @@
  *   08-09-2002 IM     Brought up to date for 2.5
  *   01-06-2003 JMA     Removed arc_fiq_chip
  */
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/irq.h>
index 2d9f5b5a78d6b3c88981de9c506656293f445544..38e1958d9538ed778ea43f595a545c6893ef1fd1 100644 (file)
@@ -2,7 +2,6 @@
  *  linux/arch/arm26/mm/extable.c
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 
index bd6f2db608b76ecde7dce3e02c26d70c386e7cc6..761938b56679453d350adb663187b4d9b52399ac 100644 (file)
@@ -8,7 +8,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 7da8a520567874d13f8f6ee619e56ac52d7e9317..562fac12eb95762dc3e7ed0f5b089a49e42b1690 100644 (file)
@@ -7,7 +7,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 5258c6096fb9b5551da66d1fe5f3b43b07636e12..a8fad92eb44fa740e90492eda1b81c38f3e3cc35 100644 (file)
@@ -25,7 +25,6 @@
 
 #include <linux/module.h>
 #include <linux/version.h>
-#include <linux/config.h>
 
 /* XXX */
 #include <linux/errno.h>
index ef71aab46a32f9f6394d670edff2a89c5cceed3a..f971ddd60cc15c5a29ce3cf34bef9e4b6ae3ff6d 100644 (file)
@@ -22,7 +22,6 @@
 #ifndef __FPMODULE_H__
 #define __FPMODULE_H__
 
-#include <linux/config.h>
 
 #define REG_ORIG_R0    16
 #define REG_CPSR       15
index e73f44c998d92db7735fde9c8e827d282750bded..610bdb2375530265e3f8b9770f3e2265d9d52d32 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #define ASSEMBLER_MACROS_ONLY
 #include <asm/arch/sv_addr_ag.h>
 
index 1b5e83f1f8461bce4f5211feee1cc83d862b7739..ffb8d21b2f83f16c8020aabc5c90177b8083fb6e 100644 (file)
@@ -20,7 +20,6 @@
 
 #define KERNEL_LOAD_ADR 0x40004000
 
-#include <linux/config.h>
 
 #include <linux/types.h>
 #include <asm/arch/svinto.h>
index addb2194de0f9a8c5ec00139d9b879c826b9c424..f223cc0c00bb0c8a277ce359d78a5ebf7c92db1e 100644 (file)
@@ -63,7 +63,6 @@
  * Copyright (C) 1999, 2000, 2001, 2002, 2003 Axis Communications AB
  */
 
-#include <linux/config.h>
 #define ASSEMBLER_MACROS_ONLY
 #include <asm/arch/sv_addr_ag.h>
 
index 264bf7afc9add4e3152f5ce1e964bd3e6d84e1a3..cbccd6316d3908ab12179b52be0bdf6fbd0cc74c 100644 (file)
@@ -6,7 +6,6 @@
  * 4004000 and after a timeout jump to it.
  */
 
-#include <linux/config.h>
 #define ASSEMBLER_MACROS_ONLY
 #include <asm/sv_addr_ag.h>
 
index 56b038c8d48202f916b1eb06fc217a8ecb66afd6..4fa81abab0c762f62c1a92f9884f9769ff6c4780 100644 (file)
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/slab.h>
 
index b100f26497c4e4b430d1cf8699d52ce43faffae5..3cf4f23de1d083b82007abfb5808928e0c77b2ee 100644 (file)
 *!
 *!***************************************************************************/
 
-#include <linux/config.h>
 
 #include <linux/fs.h>
 #include <linux/init.h>
index 512f16dec060be14328badcfb38a91d4852bd0a2..037582028560657a53c23cfca1d6801b220ff6d7 100644 (file)
@@ -93,7 +93,6 @@
 *!        (c) 1999 Axis Communications AB, Lund, Sweden
 *!*****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/fs.h>
index 09963fe299a7d4ea364c757144c72b5a1db01c2c..25df4ada951afa4903ae436901e00ceb1f30044a 100644 (file)
  *
  */
 
-#include <linux/config.h>
 
 #include <linux/module.h>
 #include <linux/sched.h>
index b38267d60d30fe948d9de2d14c114ebf5da51d36..6114596c3b3369298546cc355d8b8c52bc8a6517 100644 (file)
@@ -96,7 +96,6 @@
 #include <linux/fs.h>
 #include <linux/string.h>
 #include <linux/init.h>
-#include <linux/config.h>
 
 #include <asm/etraxi2c.h>
 
index af517c210383478c14c0a09e607e6d26a06a8a6b..8c830eefc89c4e9a07e480b78d32747475f35ffa 100644 (file)
@@ -18,7 +18,6 @@
  * $Id: pcf8563.c,v 1.11 2005/03/07 13:13:07 starvik Exp $
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index b332bf9b312b5e7cce4ec0f9be1c7f51c802d92a..e6b80135502ff74531f9dbd883c9af7f4a9b88e4 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/io.h>
 #include <asm/arch/svinto.h>
index dde813e16294ddedf7b1a25264a3f2001c0c8834..2b536ca6f4446f6fb1ecc64df9305d8eaa303104 100644 (file)
  *
  */
 
-#include <linux/config.h>
 #include <linux/console.h>
 #include <linux/init.h>
 #include <linux/major.h>
index c808005e8457862e144a2e34b8be90d25c5a5410..ae45d4522e6551982c9c57ffbc318dce71918fc3 100644 (file)
  *
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <linux/sys.h>
 #include <asm/unistd.h>
index cac05a5e514cf19817d3a28b49b6ca3d0c92c07d..8cbdf594b36955373629baa9bf6cd7b4fe6a6493 100644 (file)
 #include <asm/delay.h>
 #include <asm/rtc.h>
 
-#include <linux/config.h>
 
 #include <asm/arch/svinto.h>
 #include <asm/fasttimer.h>
index f00c145b43f164e221c97b8593abefac3eb8d61e..d946d8b8d2773eb44c8b7f530f0d74a63482863e 100644 (file)
  *
  */
        
-#include <linux/config.h>
 #define ASSEMBLER_MACROS_ONLY
 /* The IO_* macros use the ## token concatenation operator, so
    -traditional must not be used when assembling this file.  */
index 2d5be93b5197c202d37d41d0a4d6334fa0a271a0..96094cbf12552ff0d5115f8a643d014550971ad2 100644 (file)
@@ -15,7 +15,6 @@
 #include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
-#include <linux/config.h>
 
 #define mask_irq(irq_nr) (*R_VECT_MASK_CLR = 1 << (irq_nr));
 #define unmask_irq(irq_nr) (*R_VECT_MASK_SET = 1 << (irq_nr));
index 0a675ce9e0992895f809b3898084efbd8b973ea6..b6831ceb6a62ee35bfa4108c8a88c654909824a6 100644 (file)
@@ -11,7 +11,6 @@
  * This file handles the architecture-dependent parts of process handling..
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/err.h>
 #include <linux/fs.h>
index b668d7fb68eeabc0c480ec06c443afc48519b920..682ef955aec4b526bff04756a09d959333fc321c 100644 (file)
@@ -10,7 +10,6 @@
  * This file handles the architecture-dependent parts of initialization
  */
 
-#include <linux/config.h>
 #include <linux/seq_file.h>
 #include <linux/proc_fs.h>
 #include <linux/delay.h>
index dc3dfe9b4a1aa64f09a8b35a3947d8b32e1346ec..fe65cb89f54c26119ab1bf80b05b329f06fcae57 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/timex.h>
 #include <linux/time.h>
 #include <linux/jiffies.h>
index 34a27ea2052d10d28c73028fdce564822193a122..4becc1bcced98712a9799c42383ce14f78d98768 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/ptrace.h>
 #include <asm/uaccess.h>
 #include <asm/arch/sv_addr_ag.h>
index 2ef4ad5706ef23a8386db8a36686ce2202a4e187..9cf83932cd5dd60d5b4352be0241307966f3b1a4 100644 (file)
@@ -70,7 +70,6 @@
  * uses this code.
  */
 
-#include <linux/config.h>
 
        ;; WARNING! The registers r8 and r9 are used as parameters carrying
        ;; information from the decompressor (if the kernel was compressed). 
index ff3481e76dd47c368566267660033f4de19726d9..e0fcd1a9bfd5f766ecbd952b1170c6e6c2da1e75 100644 (file)
@@ -2,7 +2,6 @@
  *  linux/arch/cris/arch-v10/mm/init.c
  *
  */
-#include <linux/config.h>
 #include <linux/mmzone.h>
 #include <linux/init.h>
 #include <linux/bootmem.h>
index 71ba736be8f0839b9cb5bd14712f21ff16780118..689729a7e66e6b217d8649a3f8ae6235f1b2798d 100644 (file)
@@ -8,7 +8,6 @@
  * the kernel has booted. 
  */    
 
-#include <linux/config.h>
 #include <asm-generic/vmlinux.lds.h>
                
 jiffies = jiffies_64;
index 0c55b83b8287bece783d11386c4701a7db0732de..34cea10a8998d2eb65b3c0562c20e6b9e56bac7f 100644 (file)
@@ -5,7 +5,6 @@
  *  Copyright (C) 1999 - 2003, Axis Communications AB
  */
 
-#include <linux/config.h>
 #define ASSEMBLER_MACROS_ONLY
 #include <asm/arch/hwregs/asm/reg_map_asm.h>
 #include <asm/arch/hwregs/asm/gio_defs_asm.h>
index 54644238ed59405f986020ef94a2e9d937f2cc4e..11902697196d3f19027905d8cde5d4b25ab696bf 100644 (file)
@@ -20,7 +20,6 @@
 
 #define KERNEL_LOAD_ADR 0x40004000
 
-#include <linux/config.h>
 
 #include <linux/types.h>
 #include <asm/arch/hwregs/reg_rdwr.h>
index 61ede5f30f99451243156d66c25a653788c92b39..8cdb4011bc1683830868167b46bd34d9f0f91453 100644 (file)
@@ -4,7 +4,6 @@
  * RedBoot based RFL instead. Nothing to see here, move along.
  */
 
-#include <linux/config.h>
 #include <asm/arch/hwregs/reg_map_asm.h>
 #include <asm/arch/hwregs/config_defs_asm.h>
 
index b679f983b90a6edd5c05e5a2602fdace3d4b83f0..41952320e00ab67f911cc82b3faa5a629218e6ba 100644 (file)
@@ -18,7 +18,6 @@
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/slab.h>
 
index a551237dcb5e7c66f704038d54c811f89b88a0df..113bdff4fd3c58378fa662b01897d9a5a0b98933 100644 (file)
@@ -62,7 +62,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #include <linux/module.h>
 #include <linux/sched.h>
index 440c20a9496345253d6a290e08bf321f233feb66..95f00188c6283fdaede4a43e518656da3c668b07 100644 (file)
@@ -33,7 +33,6 @@
 #include <linux/fs.h>
 #include <linux/string.h>
 #include <linux/init.h>
-#include <linux/config.h>
 
 #include <asm/etraxi2c.h>
 
index d788bda3578cd609e8325d9cb5dd035fcf9c5f2e..ffc6d2572f2b87d609eae01fb72a91d2084b0662 100644 (file)
@@ -17,7 +17,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index c85a6df8558fe4943325e35dd95816c2e4510627..7c29957f5f02c77c40a2d44df824b5183e4771df 100644 (file)
@@ -9,7 +9,6 @@
 
 #include <linux/module.h>
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/major.h>
index 3870d2fd516066ca3354ef129240a955942148b3..82d44c9afc1ecc2c8049606b6bdca175b324cc74 100644 (file)
@@ -1,15 +1,14 @@
 /*
- * Memory arbiter functions. Allocates bandwith through the
+ * Memory arbiter functions. Allocates bandwidth through the
  * arbiter and sets up arbiter breakpoints.
  *
  * The algorithm first assigns slots to the clients that has specified
- * bandwith (e.g. ethernet) and then the remaining slots are divided
+ * bandwidth (e.g. ethernet) and then the remaining slots are divided
  * on all the active clients.
  *
  * Copyright (c) 2004, 2005 Axis Communications AB.
  */
 
-#include <linux/config.h>
 #include <asm/arch/hwregs/reg_map.h>
 #include <asm/arch/hwregs/reg_rdwr.h>
 #include <asm/arch/hwregs/marb_defs.h>
@@ -133,8 +132,8 @@ static void crisv32_arbiter_init(void)
 
 
 
-int crisv32_arbiter_allocate_bandwith(int client, int region,
-                                     unsigned long bandwidth)
+int crisv32_arbiter_allocate_bandwidth(int client, int region,
+                                      unsigned long bandwidth)
 {
        int i;
        int total_assigned = 0;
index 2c3bb9a0afe2202b70d007decf252589696fdd51..e513da711245fef556ec84bab7694b1ed093f03c 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/irq.h>
 #include <asm/arch/dma.h>
index 3dc587e6201aee865c762fa71a1807f5dffcd3d3..d1272ad921531e6aefa04c9886fa2c4598f3fa6f 100644 (file)
@@ -2,7 +2,6 @@
  * Copyright (C) 2003, Axis Communications AB.
  */
 
-#include <linux/config.h>
 #include <linux/console.h>
 #include <linux/init.h>
 #include <linux/major.h>
index b92e85799b449d2955cfeedefb856f25234cc68c..570e19128ffd99736d88658fbc076ffeabde4a5c 100644 (file)
@@ -25,8 +25,8 @@ int crisv32_request_dma(unsigned int dmanr, const char * device_id,
        reg_config_rw_clk_ctrl clk_ctrl;
        reg_strmux_rw_cfg strmux_cfg;
 
-        if (crisv32_arbiter_allocate_bandwith(dmanr,
-                                              options & DMA_INT_MEM ? INT_REGION : EXT_REGION,
+        if (crisv32_arbiter_allocate_bandwidth(dmanr,
+                                              options & DMA_INT_MEM ? INT_REGION : EXT_REGION,
                                               bandwidth))
           return -ENOMEM;
 
index 3bd8503fec6842420ed7cf01d105fcd7b9f87e97..f9d27807b914b2c27d53a7b4298962cbf3664a25 100644 (file)
@@ -17,7 +17,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <linux/sys.h>
 #include <asm/unistd.h>
index ea2b4a97c8c7b61052784d67e4c9ab472feb84db..caaa86bd5e87292976ad88b046d2771602f862c2 100644 (file)
 #include <asm/irq.h>
 #include <asm/system.h>
 
-#include <linux/config.h>
 #include <linux/version.h>
 
 #include <asm/arch/hwregs/reg_map.h>
index 3cfe57dc391d6ae31736bc543e00ba06d82509fb..20bd80a84e4842acc61183cd8881415f4e6aeefa 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 2003, Axis Communications AB
  */
 
-#include <linux/config.h>
 
 #define ASSEMBLER_MACROS_ONLY
 
index 6bc9f263c3d6639518d38e5285ec98f3d1725bc4..dfbfcb8d2585b664fe7a0ef362aae1b14d8f682c 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (c) 2004 Axis Communications AB.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 06260874f018f4ff7d5a9d1f8d07cf8ba2e6ca11..e2d2b3fdb5b1c407c2fd5941e96f7f9f50246319 100644 (file)
@@ -6,7 +6,6 @@
 #include <linux/irq.h>
 #include <linux/interrupt.h>
 #include <linux/smp.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index b350dd279ed21f914caf7c417d6cc7f9a092e33e..3e7fa9ef8510ce43b704147aeee728995f1b0136 100644 (file)
@@ -5,7 +5,6 @@
  * port exceptions for kernel debugging purposes.
  */
 
-#include <linux/config.h>
 #include <asm/arch/hwregs/intr_vect.h>
 
        ;; Exported functions.
index 843513102d3cfcbb94404b0a56edd08daa6b9178..6326351af2528300ec01f287ed3bff40d4019ac8 100644 (file)
@@ -8,7 +8,6 @@
  * This file handles the architecture-dependent parts of process handling..
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/err.h>
 #include <linux/fs.h>
index b17a39a2e164d4f567c7222fef70b27766017183..4662f363df638371dc4336d0b4233bcd9aed242a 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 2003, Axis Communications AB.
  */
 
-#include <linux/config.h>
 #include <linux/seq_file.h>
 #include <linux/proc_fs.h>
 #include <linux/delay.h>
index d48e397f5fa4d515e2abd8f374f929057548835c..4bac1d6c37fb6ea617ea640256890fb1fb398bb9 100644 (file)
@@ -6,7 +6,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/timex.h>
 #include <linux/time.h>
 #include <linux/jiffies.h>
index 6e3787045560fa5209ec361e5959cb0b157d34a6..2462b1ef1fbba56fe13e559bf09caa03424f4821 100644 (file)
@@ -2,7 +2,6 @@
  * Copyright (C) 2003, Axis Communications AB.
  */
 
-#include <linux/config.h>
 #include <linux/ptrace.h>
 #include <asm/uaccess.h>
 
index 47b6cf5f4afd6d1fa94b693b358e60a1bbe3c583..158b3dbb4d9d91a67b499afb057db5206d88585d 100644 (file)
@@ -16,7 +16,6 @@
  * uses this code.
  */
 
-#include <linux/config.h>
 #include <asm/arch/hwregs/asm/reg_map_asm.h>
 #include <asm/arch/hwregs/asm/bif_core_defs_asm.h>
 
index 5182e8c2cff27fb14b77c0664ec7ce437fc93f2b..fff9443513d1884cb9618debe2e39ba9dbd50531 100644 (file)
@@ -10,7 +10,6 @@
  * Authors:  Mikael Starvik (starvik@axis.com)
  */
 
-#include <linux/config.h>
 #include <asm/arch/hwregs/asm/reg_map_asm.h>
 #include <asm/arch/hwregs/asm/bif_core_defs_asm.h>
 #include <asm/arch/hwregs/asm/gio_defs_asm.h>
index aba5c751c2820ddc5b49f83a7e05d0139e1151d7..e019816facd700be144752fd3d9ea928395f4aea 100644 (file)
@@ -27,7 +27,6 @@
 #include <asm/arch/hwregs/asm/pinmux_defs_asm.h>
 #include <asm/arch/hwregs/asm/bif_core_defs_asm.h>
 #include <asm/arch/hwregs/asm/config_defs_asm.h>
-#include <linux/config.h>
 
 ;; There are 8-bit NAND flashes and 16-bit NAND flashes.
 ;; We need to treat them slightly different.
index f2fba27d822cbd7a5130d20437122ccedb22e2ef..a84ba7ff22d269e40780d6225927022884497d8a 100644 (file)
@@ -6,12 +6,10 @@
  * Authors:   Bjorn Wesen <bjornw@axis.com>
  *            Tobias Anderberg <tobiasa@axis.com>, CRISv32 port.
  */
-#include <linux/config.h>
 #include <linux/mmzone.h>
 #include <linux/init.h>
 #include <linux/bootmem.h>
 #include <linux/mm.h>
-#include <linux/config.h>
 #include <asm/pgtable.h>
 #include <asm/page.h>
 #include <asm/types.h>
index adb94605d92a2b20c82880eae569ece6621eeef6..472d4b3c4cf4b1d595d36a7b43dabd063d7c5a2d 100644 (file)
@@ -8,7 +8,6 @@
  * the kernel has booted.
  */
 
-#include <linux/config.h>
 #include <asm-generic/vmlinux.lds.h>
 
 jiffies = jiffies_64;
index d57859053ce7a5ec7d64a70fb2cb02ab0dba10c0..1f20c16ac2a48fd193eec7410b1c4fb4cad2681d 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/user.h>
 #include <linux/elfcore.h>
index 6547bb64636419de268dadcccea8d7b89c84c425..1f9099627a725fa58b7bfd76c6eb134eddc1aaad 100644 (file)
@@ -19,7 +19,6 @@
  * Naturally it's not a 1:1 relation, but there are similarities.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/ptrace.h>
 #include <linux/irq.h>
index 619a6eefd893d6762f6dd068d73634a6c8113989..6d941fb9f37969b73ea9470f74ec371c701c20ca 100644 (file)
@@ -10,7 +10,6 @@
  * This file handles the architecture-dependent parts of initialization
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
index 687c48d62dde73b8d67a8a6bc2cd76dfcb61d773..ea161f0ca427da1705c0d4e24275e9e7ba3ed701 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 #include <linux/sys.h>
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/setup.h>
 #include <asm/segment.h>
index 6591e6a37ae9b696cd03ccca52041720d4311094..81ba28ad2207158f080914a1e4e91fa5b7efd6aa 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 #include <linux/sys.h>
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/setup.h>
 #include <asm/segment.h>
index 81568acea9cdb0fe1b31a4b39ac5a094e587fbbb..d3b9253d862ae395721a6c129343e8a4e85e7765 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 #include <linux/sys.h>
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/spr-regs.h>
 
index 81d94e41a189b8edcd295e90ec42308a3ba72272..2a1ff1ff86926f4342e8629969e305c2f455cff8 100644 (file)
@@ -28,7 +28,6 @@
  */
 
 #include <linux/sys.h>
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/thread_info.h>
 #include <asm/setup.h>
index dee637fffda53bd5f6d1d14916791cfc9ce3e632..f772704b3d28f6db52c93e6bda8029961036e0d7 100644 (file)
@@ -7,7 +7,6 @@
 #include <linux/elfcore.h>
 #include <linux/in6.h>
 #include <linux/interrupt.h>
-#include <linux/config.h>
 
 #include <asm/setup.h>
 #include <asm/pgalloc.h>
index a143c2f66ee5e4c25471ca2cab1b1a71796f19a9..c8f210d84ff52b7b351ccd917a1377c2a79b8642 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/linkage.h>
 #include <asm/ptrace.h>
index 4ccf8414ae446f6b63f450ee82e13e69980e0ff8..ee282be20fffdafc1350cee6b9f5ed3b8fd336d6 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/linkage.h>
 #include <asm/ptrace.h>
index 31cb54a6f0806416e3eba65b97b7689b4b436e83..b10d9c8295d21fd854aa91ab0fedc8ff2d71ede8 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/linkage.h>
 #include <asm/ptrace.h>
index d088db2699bfaf14f5d892bc5a6a689e4a636b23..39937c19b4602d815c8a986333d8e3f1b6c81181 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/linkage.h>
 #include <asm/ptrace.h>
index 29a5265489b7ec2333bc7ede45332c18ccb0b971..47c990af2e06a0b9c2d28e227d02becc3a8f7614 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/linkage.h>
 #include <asm/ptrace.h>
index 9778e0ff7c1c7765f060e103b79ae93400c91767..1381abcd5cc95e7082d77b3b1760ce5ca808761b 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/ptrace.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
index 21ca2b298247084fd348b0a52c43bfcfc9c97cba..48b2a6420888c12cc83d52aa46e31c8f84e0119f 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/ptrace.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
index c003ae5e2b30f532852cb20470326d4d6fb1312f..988d035640e19f6d479c6cdca17827fcc9c0c75e 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/ptrace.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
index 8b112b3619140059d66cd155b6e02e2dd791380c..5920f52bf9c824b630741b286a73e8e9f999bf6e 100644 (file)
@@ -16,7 +16,6 @@
  * Naturally it's not a 1:1 relation, but there are similarities.
  */
 
-#include <linux/config.h>
 #include <linux/ptrace.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
index 34d01d7dcc3bbbb390338ec3e869750932e6b9af..eaa7b582ef52f17f017195c6946aa68fbafcef6c 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/pm.h>
 #include <linux/sched.h>
index 43ce28a13a5d8f3cf904f7331809af2cc6763409..e65a9f1c0c26d56f4e5a35a2f258419d2149e6d4 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/pm.h>
index 489e6c489cbed4aadfb894862ac307b1b1a70dc9..eeeb1e2641d5b49e14a1f760ea90001d75273a45 100644 (file)
@@ -10,7 +10,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index f953484e7d596eced5666356750f6ef72f2239f6..fcff819b4340669003e1e0966f174a4677f004ed 100644 (file)
@@ -18,7 +18,6 @@
 #include <linux/errno.h>
 #include <linux/ptrace.h>
 #include <linux/user.h>
-#include <linux/config.h>
 #include <linux/security.h>
 #include <linux/signal.h>
 
index 7971d680ae298bbe6ef5cacf09de735527633109..f278cdf3a72fa76e9ade9150dbca8d2b08775f73 100644 (file)
@@ -10,7 +10,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/module.h>
 #include <asm/semaphore.h>
index 1f7d65f29e78cc0963211acf42215dd57943fa0b..5db3d4eff9090585c8306b4520e31ff1fa075b6b 100644 (file)
@@ -10,7 +10,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/version.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index e6079b8cac606e5a2c4ce12e233c6355ed9c10a2..c9b2d51ab9ad9ea85ebde27c5f1f0ccaf903ddbb 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 #include <linux/sys.h>
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/setup.h>
 #include <asm/segment.h>
index 1703dc20174edc2ca7fc00a2c867e22c1f0221be..9e5a583991a3ace7e1dcf74ada8ece2f1ef1264f 100644 (file)
@@ -11,7 +11,6 @@
 # 2 of the License, or (at your option) any later version.
 #
 ###############################################################################
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/thread_info.h>
 #include <asm/processor.h>
index b908863d6593fa87b9c2cafade9847f4a93ab61e..ce676803eb6f59a03e8ee36780ac009fac4cc63b 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/sysctl.h>
 #include <linux/proc_fs.h>
index 9eb84b2e6abc498362f57762a1e5e8e3c0c24b58..98ce3628ebde54a9c9aae2fa46cd49671ac9c848 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/signal.h>
 #include <linux/kernel.h>
index 45ae39d84b69a7da6d82d2c0828c64f54859498d..2278c80bd88c277a2d109938b2bda035d5f1f8be 100644 (file)
@@ -5,7 +5,6 @@
  * derived from: arch/i386/kernel/pci-irq.c: (c) 1999--2000 Martin Mares <mj@suse.cz>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
index c8817f7b8605d40b4a8d819d6c9a5f697903e9f0..fb98e90c57941a4ff9141489c5d2f396ff4814d0 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 636b2f8b5d981934e2b1a99635ae397d0779d7de..dc6522c464d4719d3f72558127cd654840ae035d 100644 (file)
@@ -21,7 +21,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
index caacf030ac753f438026d8c642458bba7c07518e..6aea124f574db5a19d6dac8ec3aafff8d4df7246 100644 (file)
@@ -2,7 +2,6 @@
  * linux/arch/frv/mm/extable.c
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
index 8899aa1a4f06f6e0d32a8d125b4a3b247ca53025..b5b4286f9dd4637e87ebcfc82da8280282a09f8d 100644 (file)
@@ -16,7 +16,6 @@
  *    - Copyright (C) 1995  Hamish Macdonald
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/pagemap.h>
index 40b62c5c2951ada0ff8e342adfc7b19eeae6e493..fb78be38ea02633825f1ef904e9b1b5d6012a0b9 100644 (file)
@@ -10,7 +10,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 6f43c74c5d9597350c0aee4de4f59c18e2040412..79b3c70910aca3a3ebe6c1a7add46a37ab1f40e6 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 #include <linux/sys.h>
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/page.h>
 #include <asm/ptrace.h>
index 8729f7d7c6e07b6582d01b69ac13204ea1335e7f..04da674683783ebce980973413f3903016d568da 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 #include <linux/sys.h>
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/page.h>
 #include <asm/pgtable.h>
index 09b361443fc2c990faae75372bf58a350cfccae2..8f0375fc15a81e70ab2d8fd1751b4bb55b0a0ec6 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/signal.h>
 #include <linux/kernel.h>
index d195568ca8a27ed1a44ed3897d47eb53cafe97a8..6a25dd5530e70cd48477f18b7487415b818648f3 100644 (file)
@@ -9,7 +9,6 @@
  * Internal I/O Port Management
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/proc_fs.h>
 #include <linux/kernel.h>
index f8d6dee8478112e92b1dc44e2c8d95c5a5afc740..9b4be053de3c36c58cea9abffa783fd3e9a4785b 100644 (file)
@@ -7,7 +7,6 @@
 #include <linux/elfcore.h>
 #include <linux/in6.h>
 #include <linux/interrupt.h>
-#include <linux/config.h>
 
 #include <asm/setup.h>
 #include <asm/pgalloc.h>
index 16ccddc69c2bbb579e97784b0e66913395a67bf9..e061b63a00386f51531fb1439cae57c37bbcfde9 100644 (file)
@@ -22,7 +22,6 @@
  * This file handles the architecture-dependent parts of process handling..
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 0ff6f79b0fedcf240fc56af0e1f8c679fb9db716..f6031373dc21f894b8653804c0fd94e8edb46669 100644 (file)
@@ -23,7 +23,6 @@
 #include <linux/errno.h>
 #include <linux/ptrace.h>
 #include <linux/user.h>
-#include <linux/config.h>
 #include <linux/signal.h>
 
 #include <asm/uaccess.h>
index 1ebb79baaa8c32f839f87de5c3fbc2a834f5749d..d12cbbfe6ebd92b57c9a592b2f441d80f927765a 100644 (file)
@@ -3,7 +3,6 @@
  * specific changes in <asm/semaphore-helper.h>
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/init.h>
 #include <asm/semaphore-helper.h>
index f469d9160730291c73d5374fb06b187c7cfe1d6a..1077b71d52264c4f653d41f0889f6a4e22a0ffb6 100644 (file)
@@ -16,7 +16,6 @@
  * This file handles the architecture-dependent parts of system setup
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/delay.h>
index 79b3bda5c6e33dac01672cbc5382b41e737ebec4..dab98fd99e63efa3ee58504a40c4a10ae930583f 100644 (file)
@@ -1,5 +1,4 @@
 /* Systemcall Entry Table */
-#include <linux/config.h>
 #include <linux/sys.h>
 #include <asm/linkage.h>
 #include <asm/unistd.h>
index 17fa11da1e4abe6269afe07f99f60775178bbae8..6406c388f88aec3a1471ac2428544ac8cd52b57b 100644 (file)
@@ -1,6 +1,5 @@
 #define VMLINUX_SYMBOL(_sym_) _##_sym_
 #include <asm-generic/vmlinux.lds.h>
-#include <linux/config.h>
 
 /* target memory map */
 #ifdef CONFIG_H8300H_GENERIC
index b72f93a47e310aafb2bc186e5c325a77884f4ad6..68910d8e1ff4aa381312c36f8b0cdb29d24a66a1 100644 (file)
@@ -1,7 +1,6 @@
 /* romfs move to __ebss */
 
 #include <asm/linkage.h>
-#include <linux/config.h>
 
 #if defined(__H8300H__) 
        .h8300h
index 09efc4b1f038f5b66ba444bd904660bdac44c319..d3d40bdc2d6a16889aee21e1899c0052b2ed900b 100644 (file)
@@ -16,7 +16,6 @@
  *  DEC/2000 -- linux 2.4 support <davidm@snapgear.com>
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 4101ab54fc17753744dd2cc1e6785db9225dd840..26ab17286a536a5700d86e8733e2984266999b3f 100644 (file)
@@ -8,7 +8,6 @@
  *  Copyright (C) 2000-2002 David McCullough <davidm@snapgear.com>
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 81eace93f8679be6e5a26bb11e9e6d6464ecee43..ccd6ade816dd027cc86653f7050cc7d132602cd2 100644 (file)
@@ -17,7 +17,6 @@
  *  Copyright (C) 1995  Hamish Macdonald
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 31c3703d8d6074bcf297c776f597b83859b6238f..ecaeb31ae9a44060a7c64c5ddc5d4c270688afac 100644 (file)
@@ -10,7 +10,6 @@
 
 #define ASSEMBLY
 
-#include <linux/config.h>
 #include <asm/linkage.h>
        
 #if !defined(CONFIG_BLKDEV_RESERVE)
index 086efb1fd283e41fdd9bc1db4b19b6f14382f750..27cd85d56128b5fe29e2b7fab4eaa761c98ae187 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 2052dbb9483f393e61c1eb642f2399001acd5b03..d2dea2432fb21c0c9c62cd68d147a485709905ba 100644 (file)
@@ -14,7 +14,6 @@
  */
 
 #include <linux/sys.h>
-#include <linux/config.h>
 #include <asm/unistd.h>
 #include <asm/setup.h>
 #include <asm/segment.h>
index b735042a7c3f4ae8b9b379c6863a6fc671be2edb..80d0e16a44995b3671dd7df5d6f1374d7febf7da 100644 (file)
@@ -10,7 +10,6 @@
 
 #define ASSEMBLY
 
-#include <linux/config.h>
 #include <asm/linkage.h>
        
 #if !defined(CONFIG_BLKDEV_RESERVE)
index 2e32d8179db301ee8e9259523928e5a8e4b0889c..120add7ca83216f7d3b0091ba8bc9f5321d13a7d 100644 (file)
@@ -10,7 +10,6 @@
 
 #define ASSEMBLY
 
-#include <linux/config.h>
 #include <asm/linkage.h>
        
        .global SYMBOL_NAME(_start)
index 6590f89e521a8239be3e6b6665b0bbf46f1d32de..6f5cefe0cceb2a36643a6fe35a82bb35235c7edd 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index a5c5a9156e04ce47e4a5abade421b90ff8c6d6da..efcbefb91b6713961b83575643d44d7f7a8c8b7b 100644 (file)
@@ -10,7 +10,6 @@
 
 #define ASSEMBLY
 
-#include <linux/config.h>
 #include <asm/linkage.h>
        
 #if !defined(CONFIG_BLKDEV_RESERVE)
index 9ac9fa6691c01484c3ac1f130ea18f86fa3151b9..85a574afe9d0c2a98341bc856229bc923f97a42a 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 86a155479167c904ba6950c75262d2ea209c31d0..f1777119b8719ec8e10c2849b6d9e722a6b2a025 100644 (file)
@@ -6,7 +6,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/errno.h>
 
index 8105dc17d7356a61043d129dc6edad2a70d02f60..d12b0debe478808f149906469d83b7c0a062da1c 100644 (file)
@@ -10,7 +10,6 @@
 
 #define ASSEMBLY
 
-#include <linux/config.h>
 #include <asm/linkage.h>
 #include <asm/regs267x.h>
                        
index 65748bf18556f521bb359bf1108f64f12f8e496f..c03d23c6fe12631f2ec2fae475fe9fbdc4e43c5f 100644 (file)
@@ -10,7 +10,6 @@
 
 #define ASSEMBLY
 
-#include <linux/config.h>
 #include <asm/linkage.h>
 #include <asm/regs267x.h>
                
index 9441a4f1631f9a5bd30313df7b34adc780146420..bfb1424482f47869af70594ec391f0491590e2b6 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index a7a53c84c801542c86e40d361e8956667819abee..aeb2e9faa9b268fd3870025d5ee69d1251fafdfc 100644 (file)
@@ -15,7 +15,6 @@
  */
 
 #include <linux/sys.h>
-#include <linux/config.h>
 #include <asm/unistd.h>
 #include <asm/setup.h>
 #include <asm/segment.h>
index 86f45017846608d2d903691064387e33a12318ba..b04541069976cbdc8ca82ea045344a72cc81f6f9 100644 (file)
@@ -10,7 +10,6 @@
 
 #define ASSEMBLY
 
-#include <linux/config.h>
 #include <asm/linkage.h>
 #include <asm/regs267x.h>
                        
index e18e412022827514755464c231664a590cb19bb7..95b6f2898f52c753be7ef2c511e1861936f8fe60 100644 (file)
@@ -10,7 +10,6 @@
 
 #define ASSEMBLY
 
-#include <linux/config.h>
 #include <asm/linkage.h>
 #include <asm/regs267x.h>
        
index 633cd8e1c21d3d85627aa309a3c0157f0ed3246b..c2211c6e79da9dd616be4e815b076737539a324a 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 8268dfd12f1f3c1a54ae9d943a6ed03fda099057..93395d2a8a0795808f54d3e4d90e9630079921b7 100644 (file)
@@ -6,7 +6,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
index 1718429286d4f78ab234eabae56d6bb367f67de1..27d8dddbaa471658d838b539618f6b267e3ce0db 100644 (file)
@@ -176,7 +176,7 @@ endchoice
 config ACPI_SRAT
        bool
        default y
-       depends on NUMA && (X86_SUMMIT || X86_GENERICARCH)
+       depends on ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH)
        select ACPI_NUMA
 
 config HAVE_ARCH_PARSE_SRAT
index ca668d9df16411c29d2928d230c32b99a129104f..0a5a3be6d69cbb08ae4b752c938ca97e83e14321 100644 (file)
@@ -46,7 +46,6 @@
  * by Robert Schwebel, December 2001 <robert@schwebel.de>
  */
 
-#include <linux/config.h>
 #include <asm/segment.h>
 #include <linux/version.h>
 #include <linux/compile.h>
index 97ca17189af58bf66090a73770903e16e679460f..0db6387025ca77cb9ce81258f0ed5fdf89861512 100644 (file)
@@ -24,7 +24,6 @@
  */
 
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/acpi.h>
 #include <linux/efi.h>
 #include <linux/module.h>
index 7ce09492fc0ca0bee5fdac224a38d4e509df6c20..8c844d07862f6f9eb9103842f783a0cdf495cda3 100644 (file)
@@ -14,7 +14,6 @@
  *     Mikael Pettersson       :       PM converted to driver model.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <linux/mm.h>
index 7c5729d1fd06ebb00a92685a296686cc615dc489..8591f2fa920cdb77223e5cd53456f9b1e3e0ccb4 100644 (file)
  *    http://www.microsoft.com/hwdev/busbios/amp_12.htm]
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/poll.h>
index 4c30ed01f4e18992bfbf121079754fbd03aed898..0b9860530a6ba760385510569b2388f3409c9d12 100644 (file)
@@ -3,7 +3,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index cf0ddc9ee0cd1bb21af6da6eb0d3dc82b49a46d3..567b39bea07e4fbbe091b265b010905e3d30ff5a 100644 (file)
@@ -24,7 +24,6 @@
  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index ab6504efd801cb5a530f170c8d1716a3f31e50f8..304d2eaa4a1b87aeb074d7aceb181a62ba659464 100644 (file)
@@ -20,7 +20,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index 694d4793bf6ae5f1aaf1bddae150e958f572fecf..54382760983a11312c4eb8c9bc897636eb97631d 100644 (file)
@@ -12,7 +12,6 @@
  * - We disable half multipliers if ACPI is used on A0 stepping CPUs.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
index 8d765509ef593bc9070f346f038b32529ede8210..b77f1358bd79e341bd3d2a9a8606819bb1a1f01a 100644 (file)
@@ -17,7 +17,6 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/cpufreq.h>
-#include <linux/config.h>
 #include <linux/sched.h>       /* current */
 #include <linux/delay.h>
 #include <linux/compiler.h>
index 10afc645c540c844576493370ce64d7fd8a8d1c8..5a2e270924b13727f1411eb11dea7a0f114e7cce 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 
index fc5d5215e23deb24fd871c07c26494abfbfad42d..b0862af595aa5f502f043f93a305fcd9eb35cc08 100644 (file)
@@ -6,7 +6,6 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/smp.h>
 
index afa0888f9a1e8f12cfd185d8874b93f8099ecae1..d555bec0db99d0c0cfa1f3d910a3a17403e7709d 100644 (file)
@@ -6,7 +6,6 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/smp.h>
 #include <linux/thread_info.h>
index 82dffe0d4954b8db6cc8b8cf2dcf50eaf8417370..1f9153ae5b03729c799e792f7bef3a508d49cccd 100644 (file)
@@ -11,7 +11,6 @@
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/jiffies.h>
-#include <linux/config.h>
 #include <linux/workqueue.h>
 #include <linux/interrupt.h>
 #include <linux/smp.h>
index fd2c459a31ef7f70a6433ba04378059b1db29f8c..b95f1b3d53aa1c20761491f280abe819dbe3eb17 100644 (file)
@@ -5,7 +5,6 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/smp.h>
 
index f6dfa9fb675c1bfc5eba75ba74317ba2815b6da1..a8d3ecdc38970a6bd042abaabbbd28daea15fefa 100644 (file)
@@ -24,7 +24,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 
 #include <linux/types.h>
 #include <linux/errno.h>
index 8beb0f07d99966b00206880fb3113db77333edd5..fe158042110bea08fd7774234dfdb3c7275712a0 100644 (file)
@@ -19,7 +19,6 @@
  *     Skip non-WB memory and ignore empty memory ranges.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 08c0312d9b6cfa1f1141ca997fd1ff072dc73e05..d3ee73a3eee352456484754fcf926899e92b11f9 100644 (file)
@@ -5,7 +5,6 @@
  * turned off.
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/page.h>
 #include <asm/pgtable.h>
index fbdb933251b643b8e726feefe8e350205dbd7396..787190c45fdb783ddf6e19b7235f9710783bd97d 100644 (file)
@@ -40,7 +40,6 @@
  * "current" is in register %ebx during any slow entries.
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/thread_info.h>
 #include <asm/errno.h>
index 3debc2e26542f36f58b3b7834d3a4fbc294d42c2..eb79aa2fa8bb3ed0b794cddd2e7c499456295b67 100644 (file)
@@ -8,7 +8,6 @@
  */
 
 .text
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/linkage.h>
 #include <asm/segment.h>
index 036a9857936fa26816ca97b3a74021399909a0e8..e3d4b73bfdb0334e6cfb0ccc54a7615acd337ace 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/checksum.h>
 #include <asm/desc.h>
index c4351972d9afc7b5c4b2e39b5222f8f52b930eba..665847281ed25fe963e51a250c1e933eaea217b6 100644 (file)
@@ -8,7 +8,6 @@
  *     Gareth Hughes <gareth@valinux.com>, May 2000
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/module.h>
 #include <asm/processor.h>
index 3c6063671a9f94b4beabb137539880acdc105054..d4756d154f47b4d10447dba20378fca19d957193 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
index ec9ea0269d367fb8c346b883f809ba40d7621b0d..4fb32c551fe0b9bb62df93acab0cb80dd657d359 100644 (file)
@@ -25,7 +25,6 @@
 #include <linux/init.h>
 #include <linux/delay.h>
 #include <linux/sched.h>
-#include <linux/config.h>
 #include <linux/smp_lock.h>
 #include <linux/mc146818rtc.h>
 #include <linux/compiler.h>
index 727e419ad78ac496588ea692acad30766bbad37c..de2e16e561c06796d62efe9191b0c388e4d93a83 100644 (file)
@@ -28,7 +28,6 @@
  *             <prasanna@in.ibm.com> added function-return probes.
  */
 
-#include <linux/config.h>
 #include <linux/kprobes.h>
 #include <linux/ptrace.h>
 #include <linux/preempt.h>
index 558bb207720f1ecf13f2fe624037e9bf6b307a56..cd5456f14af4bb16eb83adb53bf22592ed47eb38 100644 (file)
@@ -46,7 +46,6 @@
 #include <asm/io.h>
 #include <linux/proc_fs.h>
 #include <linux/mman.h>
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/pagemap.h>
 #include <linux/ioport.h>
index 6b1392d33ed51d6fcb424b9c839d7768cc840a09..a70b5fa0ef06fd3cf165349959d52f25fe151fed 100644 (file)
@@ -17,7 +17,6 @@
 #include <linux/init.h>
 #include <linux/acpi.h>
 #include <linux/delay.h>
-#include <linux/config.h>
 #include <linux/bootmem.h>
 #include <linux/smp_lock.h>
 #include <linux/kernel_stat.h>
index d022cb8fd7251ccc79e3eeb89a8210e5f92b85d1..d535cdbbfd256f5087480f7a75eebc640e9cebc3 100644 (file)
@@ -24,7 +24,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 
 #include <linux/types.h>
 #include <linux/errno.h>
@@ -251,7 +250,9 @@ static int msr_class_device_create(int i)
        return err;
 }
 
-static int msr_class_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
+#ifdef CONFIG_HOTPLUG_CPU
+static int msr_class_cpu_callback(struct notifier_block *nfb,
+                               unsigned long action, void *hcpu)
 {
        unsigned int cpu = (unsigned long)hcpu;
 
@@ -270,6 +271,7 @@ static struct notifier_block __cpuinitdata msr_class_cpu_notifier =
 {
        .notifier_call = msr_class_cpu_callback,
 };
+#endif
 
 static int __init msr_init(void)
 {
@@ -292,7 +294,7 @@ static int __init msr_init(void)
                if (err != 0)
                        goto out_class;
        }
-       register_cpu_notifier(&msr_class_cpu_notifier);
+       register_hotcpu_notifier(&msr_class_cpu_notifier);
 
        err = 0;
        goto out;
@@ -315,7 +317,7 @@ static void __exit msr_exit(void)
                class_device_destroy(msr_class, MKDEV(MSR_MAJOR, cpu));
        class_destroy(msr_class);
        unregister_chrdev(MSR_MAJOR, "cpu/msr");
-       unregister_cpu_notifier(&msr_class_cpu_notifier);
+       unregister_hotcpu_notifier(&msr_class_cpu_notifier);
 }
 
 module_init(msr_init);
index 0caf14652badfca7856a3b7d13e54cbc0f461918..9000d82c6dc0a784de020d1723ae75522bee9082 100644 (file)
@@ -23,7 +23,6 @@
  * Send feedback to <gone@us.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
 #include <linux/mmzone.h>
index 6946b06e278495cbbfa15383047e026ce7224120..94e2c87edeaa31c76475e48f92e3212ac62119e2 100644 (file)
@@ -28,7 +28,6 @@
 #include <linux/user.h>
 #include <linux/a.out.h>
 #include <linux/interrupt.h>
-#include <linux/config.h>
 #include <linux/utsname.h>
 #include <linux/delay.h>
 #include <linux/reboot.h>
index 87ccdac84928db35706409477a86edc49ac8c736..9f6ab1789bb05fc81593c47211b16bc45be894e1 100644 (file)
@@ -1,7 +1,6 @@
 /*
  * This file contains work-arounds for x86 and x86_64 platform bugs.
  */
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/irq.h>
 
index d207242976d31f8be7127f8db18aede33041867e..54cfeabbc5e4558f7b2435f0f7df51f5ba89315a 100644 (file)
@@ -2,7 +2,6 @@
  *  linux/arch/i386/kernel/reboot.c
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/delay.h>
index 9bf590cefc7d4d55d89fde0561ec6a5fb70d5192..c7d3df23f589422b9753266f9de8617415650531 100644 (file)
@@ -4,7 +4,6 @@
 
    National Semiconductor SCx200 support. */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
index 967dc74df9eeb69750077eaf783bc5af587788a4..98352c374c761c9d2440246b58d0fa36db25bd58 100644 (file)
@@ -12,7 +12,6 @@
  *
  * rw semaphores implemented November 1999 by Benjamin LaHaise <bcrl@kvack.org>
  */
-#include <linux/config.h>
 #include <asm/semaphore.h>
 
 /*
index 6712f0d2eb37372aa040ce352ef68a9ebd8c09d7..08c00d20f1623c738d93117747aa9a7e016f9bfd 100644 (file)
@@ -23,7 +23,6 @@
  * This file handles the architecture-dependent parts of initialization
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
 #include <linux/mmzone.h>
index 89e7315e539c49a5f8f19a3479ae21774075a374..6f5fea05f1d7fc92a80e66819962cf4ee269086f 100644 (file)
@@ -34,7 +34,6 @@
 *              Rusty Russell   :       Hacked into shape for new "hotplug" boot process. */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 
index 989c85255dbe53a5ca33fd41cc6aae8423b7a8a2..b1809c9a0899fcade490c50ed6733a2946623d25 100644 (file)
@@ -23,7 +23,6 @@
  *
  * Send feedback to Pat Gaughen <gone@us.ibm.com>
  */
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
 #include <linux/mmzone.h>
index 5f43d0410122764fc8dd752b90878cc9fed26841..316421a7f56f6f6a1b5bfafb6a29fb27322dda14 100644 (file)
@@ -60,7 +60,6 @@
 #include "mach_time.h"
 
 #include <linux/timex.h>
-#include <linux/config.h>
 
 #include <asm/hpet.h>
 
index a529f0cdce17018dcc6849340954e84731006598..14a1376fedd1423710f64893ec5e6894a26507ff 100644 (file)
@@ -18,7 +18,6 @@
 #include <asm/apic.h>
 
 #include <linux/timex.h>
-#include <linux/config.h>
 
 #include <asm/hpet.h>
 #include <linux/hpet.h>
index 78464097470a282a8064e8b873b1edcdfa5a1da0..e8c6086b2aa149d84acf71c459e1d2a740f805a6 100644 (file)
@@ -11,7 +11,6 @@
  * 'Traps.c' handles hardware traps and faults after we have saved some
  * state in 'asm.s'.
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 00e0118e717c3568a960021be276e9c4f7e37835..8355d8d87d183d8b81f78e04c053508fa46c7553 100644 (file)
@@ -31,7 +31,6 @@
  */
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/interrupt.h>
 #include <linux/sched.h>
index 94c7867ddc33035e6fc39dbd6f0cf351daf712b8..75ffd02654fc57b89f8a4912946cb6ea6a4d95bb 100644 (file)
@@ -25,7 +25,6 @@
  *             2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/errno.h>
                                
 /*
index 891b2359d18a815eaaa45aca0fa8cbe2eaae2947..8ac51b82a632ca61a4e112a66301816cb0daf2d5 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/module.h>
 
index 2afda94dffd340b4097b3819b7770c1bdfb263e5..28084d2e8dd4d96f8371a629f206406b05031203 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/string.h>
 #include <linux/sched.h>
index c5aa65f7c02a68d096e966286f0dfdfcc879bed9..4b75212ab6dd877786057eef6b2192cfadd4d6ed 100644 (file)
@@ -5,7 +5,6 @@
  * Copyright 1997 Andi Kleen <ak@muc.de>
  * Copyright 1997 Linus Torvalds
  */
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/highmem.h>
 #include <linux/blkdev.h>
index 004837c587939f89e1dc0aad2136ac26529e58ac..77c8c83815c1eedf43f76f6b2e2897d316c6eabd 100644 (file)
@@ -2,7 +2,6 @@
  *     Machine specific setup for generic
  */
 
-#include <linux/config.h>
 #include <linux/smp.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
index 037b2af1a1f4972a0940f723d1fa39310b4e1dfd..ef7a6e6fcb9f0a834e67a9d4608707f98cd5e027 100644 (file)
@@ -3,7 +3,6 @@
  * Drives the local APIC in "clustered mode".
  */
 #define APIC_DEFINITION 1
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/cpumask.h>
 #include <asm/mpspec.h>
index 7da14e9a79c31db5d115a04c2578a4abc98f501f..96c19821e47d6546c288e28edd8ec1120ab095ee 100644 (file)
@@ -2,7 +2,6 @@
  * Default generic APIC driver. This handles upto 8 CPUs.
  */
 #define APIC_DEFINITION 1
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/cpumask.h>
 #include <asm/mpspec.h>
index 48d3ec37241bef87dbc7ef8c27ae1189cf02adba..845cdd0b359350f4c6e860f9287999038c7358f7 100644 (file)
@@ -2,7 +2,6 @@
  * APIC driver for the Unisys ES7000 chipset.
  */
 #define APIC_DEFINITION 1
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/cpumask.h>
 #include <asm/mpspec.h>
index d55fa7b187ab656f9c581b11c5dfc12f7186f82e..bcd1bcfaa7238e9ad546c7191d506e0329e8f578 100644 (file)
@@ -3,7 +3,6 @@
  * 
  * Generic x86 APIC driver probe layer.
  */  
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/cpumask.h>
 #include <linux/string.h>
index 65ddf74d7f25c9428d66356819a3e7ec9d512782..b73501ddd653a9fed0be28c112a1a1c351707de2 100644 (file)
@@ -2,7 +2,6 @@
  * APIC driver for the IBM "Summit" chipset.
  */
 #define APIC_DEFINITION 1
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/cpumask.h>
 #include <asm/mpspec.h>
index 5f3d7e6de37b9cc4440cc9f7e7ba6a52271477cc..f3c74fab8b95d18b32878fe966dbbaef20e77481 100644 (file)
@@ -1,5 +1,4 @@
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/smp.h>
 
index 964353992031d6f73472d8162fa6bdf6bb310f13..5199bd03254a58b0359f6efc6968db0daa369154 100644 (file)
@@ -1,6 +1,5 @@
 /* VISWS traps */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index c418521dd5547073cf78bfbf0e9bb710366cb3b0..828522541a88429e43b6d4ed0aa5bcae0e01af0f 100644 (file)
@@ -16,7 +16,6 @@
  *  25/11/2002 - Updated for 2.5 by Andrey Panin <pazke@orbita1.ru>
  */
 
-#include <linux/config.h>
 #include <linux/kernel_stat.h>
 #include <linux/interrupt.h>
 #include <linux/smp_lock.h>
index defc6ebbd56517ac054deeeafbf17239de36cc5d..9da9ef09068d782933de31c453fca9e30fd756f6 100644 (file)
@@ -2,7 +2,6 @@
  *     Machine specific setup for generic
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <asm/arch_hooks.h>
index b584060ec004da766c024771b8af916e8d3dc702..80b7f2fc4f46ac9038128f852ad11d3e67ad3b03 100644 (file)
@@ -12,7 +12,6 @@
  *     voyager_smp.c - Voyager SMP hal (emulates linux smp.c)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/sched.h>
index 10d21df1453143c5c8d6c33c629a6267985f2385..f50c6c6ad680e8eb7c2092757d18291fa3e68ab6 100644 (file)
@@ -16,7 +16,6 @@
  * of bit shift manipulations to send and receive packets on the
  * serial bus */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/completion.h>
 #include <linux/sched.h>
index 5b8b579a079fa8a7afdc52e4871aef91b3a94665..6c86575ffdcb250a7168d3922d4b977a61bbed32 100644 (file)
@@ -9,7 +9,6 @@
  * This file provides all the same external entries as smp.c but uses
  * the voyager hal to provide the functionality
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/mm.h>
 #include <linux/kernel_stat.h>
@@ -1938,3 +1937,9 @@ smp_cpus_done(unsigned int max_cpus)
 {
        zap_low_mappings();
 }
+
+void __init
+smp_setup_processor_id(void)
+{
+       current_thread_info()->cpu = hard_smp_processor_id();
+}
index 2b03884fdb2a968a904ca08f29c9f8c017e22788..50f6de6ff64dadd20988cf1de715ffb9c76eb863 100644 (file)
@@ -14,7 +14,6 @@
  * */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/kernel_stat.h>
 #include <linux/delay.h>
index 523b30634e0a87c76a32ca57f0977593b3364108..5d44f4f5ff592a479d965449f1962dbe39daaee9 100644 (file)
@@ -15,7 +15,6 @@
  * boot_pte_t is defined only if this all works correctly
  */
 
-#include <linux/config.h>
 #undef CONFIG_X86_PAE
 #include <asm/page.h>
 #include <asm/pgtable.h>
index fe6eb901326e6610171a927dddd5e01280d7a71b..7c392dc553b89659ce6041f09d5aae62d95ab50a 100644 (file)
@@ -22,7 +22,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
 #include <linux/mmzone.h>
@@ -43,7 +42,7 @@ EXPORT_SYMBOL(node_data);
 bootmem_data_t node0_bdata;
 
 /*
- * numa interface - we expect the numa architecture specfic code to have
+ * numa interface - we expect the numa architecture specific code to have
  *                  populated the following initialisation.
  *
  * 1) node_online_map  - the map of all nodes configured (online) in the system
index f706449319c4577e5d944561b295d199449bcc02..de03c5430abc86a03b96d0326bd6ab3317d624b5 100644 (file)
@@ -2,7 +2,6 @@
  * linux/arch/i386/mm/extable.c
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
index 6ee7faaf2c1bc4e19411ad825687fa7ce6921082..f7279468323a62cef22984f3e81707eaa6a93b4b 100644 (file)
@@ -389,7 +389,7 @@ fastcall void __kprobes do_page_fault(struct pt_regs *regs,
        /* When running in the kernel we expect faults to occur only to
         * addresses in user space.  All other faults represent errors in the
         * kernel and should generate an OOPS.  Unfortunatly, in the case of an
-        * erroneous fault occuring in a code path which already holds mmap_sem
+        * erroneous fault occurring in a code path which already holds mmap_sem
         * we will deadlock attempting to validate the fault against the
         * address space.  Luckily the kernel only validly references user
         * space from well defined areas of code, which are listed in the
index a7d8915854116264048f62c84d63dc495fc212b7..1719a8141f81aee9f480087be3e54a68eef4adef 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 2002, Rohit Seth <rohit.seth@intel.com>
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/fs.h>
 #include <linux/mm.h>
index f84b16e007ff86fb73185482efcbca7be8eb4ebd..dc5d8979cd647b11f2a48dac27ef7ef70a4c7188 100644 (file)
@@ -6,7 +6,6 @@
  *  Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
index 353a836ed63c03f363acbcba49e4c54d9258f855..8564b6ae17e330aa7ca48489a3f71bbf458415ba 100644 (file)
@@ -3,7 +3,6 @@
  * Thanks to Ben LaHaise for precious feedback.
  */ 
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
 #include <linux/highmem.h>
index 2889567e21a12f09fe74f14496d5452c1ae72450..bd98768d8764f52b0693a4413d32003bd911daed 100644 (file)
@@ -2,7 +2,6 @@
  *  linux/arch/i386/mm/pgtable.c
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
@@ -30,7 +29,6 @@ void show_mem(void)
        struct page *page;
        pg_data_t *pgdat;
        unsigned long i;
-       struct page_state ps;
        unsigned long flags;
 
        printk(KERN_INFO "Mem-info:\n");
@@ -58,12 +56,13 @@ void show_mem(void)
        printk(KERN_INFO "%d pages shared\n", shared);
        printk(KERN_INFO "%d pages swap cached\n", cached);
 
-       get_page_state(&ps);
-       printk(KERN_INFO "%lu pages dirty\n", ps.nr_dirty);
-       printk(KERN_INFO "%lu pages writeback\n", ps.nr_writeback);
-       printk(KERN_INFO "%lu pages mapped\n", ps.nr_mapped);
-       printk(KERN_INFO "%lu pages slab\n", ps.nr_slab);
-       printk(KERN_INFO "%lu pages pagetables\n", ps.nr_page_table_pages);
+       printk(KERN_INFO "%lu pages dirty\n", global_page_state(NR_FILE_DIRTY));
+       printk(KERN_INFO "%lu pages writeback\n",
+                                       global_page_state(NR_WRITEBACK));
+       printk(KERN_INFO "%lu pages mapped\n", global_page_state(NR_FILE_MAPPED));
+       printk(KERN_INFO "%lu pages slab\n", global_page_state(NR_SLAB));
+       printk(KERN_INFO "%lu pages pagetables\n",
+                                       global_page_state(NR_PAGETABLE));
 }
 
 /*
index f9156d3ac7231c731703070cb8c2e49f33864de8..c7650a7e0b077b0c482d9a7f759982c40abb4a72 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/init.h>
 #include "pci.h"
index 8ce69508f3c78f20e2ddd62f5c45f79dd5d84c2f..bdb4896c56e6ca002ac4e247a74255f171ed728f 100644 (file)
@@ -4,7 +4,6 @@
  *     (c) 1999--2000 Martin Mares <mj@ucw.cz>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
index 6c17433fdf7ddb8b9d5d8dfa3d40626136933bb5..f1b486d4190b0c38411eac8c76d95dbaf3d67721 100644 (file)
@@ -4,7 +4,6 @@
  *     (c) 1999--2000 Martin Mares <mj@ucw.cz>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/init.h>
index e6517915fe3e19ebc1a74cc7c34ac6be9eb616b9..5a1abeff033ba7ed33ecb97151aba3186aa62446 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (c) 2001 Patrick Mochel <mochel@osdl.org>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/suspend.h>
 #include <asm/mtrr.h>
index b487e227a1f7a3e6b17dd48d57a81d1319e0e376..47de9ee6bcd66b03ca431b06b13681f84f0da446 100644 (file)
@@ -70,6 +70,11 @@ config DMA_IS_DMA32
        bool
        default y
 
+config DMA_IS_NORMAL
+       bool
+       depends on IA64_SGI_SN2
+       default y
+
 choice
        prompt "System type"
        default IA64_GENERIC
index 38aa9c108857824b674636dbcdf577dbdd623447..5ab12b8351d020458a4da260c364cc893effd675 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
  * Copyright (C) 1999 Vijay Chander <vijay@engr.sgi.com>
  */
-#include <linux/config.h>
 
 #include <linux/init.h>
 #include <linux/delay.h>
index 5825ddee58d608becf27492ff186f2aa02d629fb..db8e1fcfa047d7e53a5f2f1961adad1ecef4327d 100644 (file)
@@ -19,7 +19,6 @@
 **
 */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index 51a7b7b4dd0e7c5720683a40637cdb79a31ec4c4..c5e9baafafe046e8c56ebb0d27b15ad03bda821a 100644 (file)
@@ -11,7 +11,6 @@
  */
 struct task_struct;    /* forward declaration for elf.h */
 
-#include <linux/config.h>
 #include <linux/elf.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 30fdfb1d0a53e3d08c9f817eaf34a0bd7b9a78f3..5a0a7afcfc3a0ad010ceb29ff18a8618fdc81b4d 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1998-2001 Hewlett-Packard Co
  *     David Mosberger-Tang <davidm@hpl.hp.com>
  */
-#include <linux/config.h>
 
 #ifdef CONFIG_PCI
 # include <linux/pci.h>
index 5deff21e5877fda029f7d0a170d3fe95c71da5de..6e149c8ab83514af175ea8d03563b43893acc5d8 100644 (file)
@@ -5,7 +5,6 @@
  *     David Mosberger-Tang <davidm@hpl.hp.com>
  * Copyright (C) 1999 Vijay Chander <vijay@engr.sgi.com>
  */
-#include <linux/config.h>
 
 #include <linux/init.h>
 #include <linux/kernel.h>
index 694fc86bfbd5d85a1808ea0ad8fb4f11074904a0..f2297192a5825ab39ffe20e4b1b0c3cb15d08966 100644 (file)
@@ -5,7 +5,6 @@
  *     David Mosberger-Tang <davidm@hpl.hp.com>
  * Copyright (C) 1999 Vijay Chander <vijay@engr.sgi.com>
  */
-#include <linux/config.h>
 #include <linux/console.h>
 #include <linux/init.h>
 #include <linux/kdev_t.h>
index 0639ec0ed015cb57d66c6b5526203c2ee47cf699..b5195be6281895d3ea6fb42eca4cb4fb5b41308d 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1999-2001, 2003 Hewlett-Packard Co
  *     Stephane Eranian <eranian@hpl.hp.com>
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/types.h>
index 0e5c6ae502288f97d0dcf9e55671aa269ce94511..33a3bbc8f67fbffaedd70e693768f0ae89101f48 100644 (file)
@@ -16,7 +16,6 @@
  * 07/30/02 D. Mosberger       Replace sti()/cli() with explicit spinlocks & local irq masking
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
index da03c06744f1bf5206cfaee62662fb8b08144877..daa6b91bc921907435c47151303cc8ef81d6ff59 100644 (file)
@@ -9,7 +9,6 @@
  * 04/13/01    D. Mosberger    dropped saving tssd in ar.k1---it's not needed
  * 09/14/01    D. Mosberger    fixed memory management for gdt/tss page
  */
-#include <linux/config.h>
 
 #include <linux/types.h>
 #include <linux/mm.h>
index ccb98ed48e58d27467e53f8e38830cab3b52b7c4..703a67c934f84c6619bfa7693c247eb9fca6e143 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef _ASM_IA64_IA32_PRIV_H
 #define _ASM_IA64_IA32_PRIV_H
 
-#include <linux/config.h>
 
 #include <asm/ia32.h>
 
index 5366b3b23d0909dda2eee5ed2858d02d4f6234e1..6aa3c51619ca77bcb1b88410a21c43e7184aea8a 100644 (file)
@@ -14,7 +14,6 @@
  * environment.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/syscalls.h>
 #include <linux/sysctl.h>
index ccd016537fe97623fe34d8a7fb845378b1a36a83..b7515bc808a8d815708c45124661e94cc4d63286 100644 (file)
@@ -8,7 +8,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/acpi.h>
index c92c0aaaf2e652271bd9a1be938442eb7ca2adf6..99761b81db4496a78c0ea1eb0cb1076c438c8c3c 100644 (file)
@@ -32,7 +32,6 @@
  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 16e7b6600ae67005e3afbf5655647bd5c894e8c5..75a2a2c12258179b53fb1b76b0243ef3d9cf602d 100644 (file)
@@ -5,7 +5,6 @@
  */
 
 #define ASM_OFFSETS_C 1
-#include <linux/config.h>
 
 #include <linux/sched.h>
 
index 5a1bf815282d71fda393b82e6941710afbda0c27..86faf221a070e59f48d1a11cf308d5ca2899f750 100644 (file)
@@ -9,7 +9,6 @@
  *      Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index c33d0ba7e300097f569a826642a6189fa9a3ac90..b13c0555c3ba4a57989178de6f8b7633fcd85dc7 100644 (file)
@@ -20,7 +20,6 @@
  * Goutham Rao: <goutham.rao@intel.com>
  *     Skip non-WB memory and ignore empty memory ranges.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 32c999f58d129486d638299a0dce3d06715f4538..12701cf32d9944de96a3fa609788d50fc79b8518 100644 (file)
@@ -31,7 +31,6 @@
  *     pNonSys:        !pSys
  */
 
-#include <linux/config.h>
 
 #include <asm/asmmacro.h>
 #include <asm/cache.h>
index ebc3dfb88826dd0bc934a78536432803b3bd05c7..b83edac029659f3824ce63915a8d8592806042e0 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 
 /*
  * Preserved registers that are shared between code in ivt.S and
index 86064ca98952fce580151aa75a41f302ef64b4da..3274850cf2722f07726582c3d133f5c14229d475 100644 (file)
@@ -6,7 +6,6 @@
  *     David Mosberger-Tang <davidm@hpl.hp.com>
  */
 
-#include <linux/config.h>
 
 #include <asm/asmmacro.h>
 #include <asm/errno.h>
index 7c99e6ec3dafc6d05176c55f6c0a7d1cb230ab60..cc35cddfd4cfdd8e047ed30b06ef6e87f7f5c7e2 100644 (file)
@@ -4,7 +4,6 @@
  * in one page).  This script controls its layout.
  */
 
-#include <linux/config.h>
 
 #include <asm/system.h>
 
index f1778a84ea61b95487ba5ee3f0fe01161cfe1c00..561b8f1d3bc7dbb62c05f41494f856b199afe2ab 100644 (file)
@@ -19,7 +19,6 @@
  *   Support for CPU Hotplug
  */
 
-#include <linux/config.h>
 
 #include <asm/asmmacro.h>
 #include <asm/fpu.h>
index bbcfd08378a6c37d1389433f6d92c5d54a33e893..b7cf651ceb14538eb5c1d7e424f8de41746fd533 100644 (file)
@@ -5,7 +5,6 @@
  * All other exports should be put directly after the definition.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/string.h>
index efc7df4b0fd251a126b29a263546bb4ef2181f07..9bf15fefa7e4e00517f2203cdde817b9299d9a14 100644 (file)
@@ -79,7 +79,6 @@
  * describeinterrupts.  Now we use "IRQ" only for Linux IRQ's.  ISA IRQ
  * (isa_irq) is the only exception in this source code.
  */
-#include <linux/config.h>
 
 #include <linux/acpi.h>
 #include <linux/init.h>
index f5035304594e5af977d6b432a3f82e45b9320d93..3e6fcb056bcb7d71dac5c557d2067a6af2f2d6a7 100644 (file)
@@ -14,7 +14,6 @@
  *                                             Added CPU Hotplug handling for IPF.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/jiffies.h>
index 829a43cab79705e998e7aff8f6d577b2e7cede50..6b7fcbd3f6f1a9789ccdc755ee0a59122578fe78 100644 (file)
@@ -38,7 +38,6 @@
  * Table is based upon EAS2.6 (Oct 1999)
  */
 
-#include <linux/config.h>
 
 #include <asm/asmmacro.h>
 #include <asm/break.h>
index f9039f88d01dfbcefb9174c0f59bb968fa92f5bd..00d9c83b80205dd43669b6e5d87f4a882cf3bbce 100644 (file)
@@ -23,7 +23,6 @@
  *              <anil.s.keshavamurthy@intel.com> adapted from i386
  */
 
-#include <linux/config.h>
 #include <linux/kprobes.h>
 #include <linux/ptrace.h>
 #include <linux/string.h>
index 4b0b71d5aef4520700c259258eddd801378e0fb9..d4a546aa5048fc4777ac592b15571e676fd0b28f 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <asm/machvec.h>
index d7dc5e63de63c2bc29b9a1fc19b98c663517de5f..584df17728451c9abb7b1c80a3041229ed009f2c 100644 (file)
@@ -55,7 +55,6 @@
  * 2005-10-07 Keith Owens <kaos@sgi.com>
  *           Add notify_die() hooks.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/sched.h>
index c1bd1feffab09dca071d32900f66524cac5aacc3..96047491d1b9241fd06e196672443e1d5f16d7f1 100644 (file)
@@ -19,7 +19,6 @@
 // 12/08/05 Keith Owens <kaos@sgi.com>
 //                Use per cpu MCA/INIT stacks for all data.
 //
-#include <linux/config.h>
 #include <linux/threads.h>
 
 #include <asm/asmmacro.h>
index ca6666b51ccb6d2a9f79cf8244b5f172a91a92e0..8db6e0cedadcbc3d660bd6f5621cbc496e75b466 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 2005 Keith Owens <kaos@sgi.com>
  * Copyright (C) 2006 Russ Anderson <rja@sgi.com>
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/sched.h>
index e6a580d354b9e001bc9c2f9f2006ff8dc281e04c..f2d4900751ba9375dc8a7afa5cec7c1f2573f5d4 100644 (file)
@@ -5,7 +5,6 @@
  * Copyright (C) 2004 FUJITSU LIMITED
  * Copyright (C) Hidetoshi Seto (seto.hidetoshi@jp.fujitsu.com)
  */
-#include <linux/config.h>
 #include <linux/threads.h>
 
 #include <asm/asmmacro.h>
index 85ed54179afa52585f74cbbd783764c0218a97eb..c9ac8bada786f19888bab6b93536054da44f599f 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 
 #include <asm/cache.h>
 
index 3a30cfc9574fd499cc5fa839ee34731aecf25e04..158e3c51bb771fb5efb5d3424c7efda4c68905bf 100644 (file)
@@ -25,7 +25,6 @@
    SEGREL64LSB
  */
 
-#include <linux/config.h>
 
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 0766493d4d0061ff99a48de4a2359d2852e24904..1cc360c83e7af01b1ddfc632d3a7f5f071764363 100644 (file)
@@ -19,7 +19,6 @@
  * Copyright (C) 2004 Silicon Graphics, Inc.
  *   Jesse Barnes <jbarnes@sgi.com>
  */
-#include <linux/config.h>
 #include <linux/topology.h>
 #include <linux/module.h>
 #include <asm/processor.h>
index 8a12084191384ee55f02ed5848a95ef708206732..3f5bac59209a501fa7b9278f5ed4681567f417ee 100644 (file)
@@ -17,7 +17,6 @@
  * 10/23/2001  S.Eranian       updated pal_perf_mon_info bug fixes
  * 03/24/2004  Ashok Raj       updated to work with CPU Hotplug
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index a0055d3d695c81d2ba042dcbe54d831ffd82a42b..92b815d13418fcbbdcc120a4c63cf0c12f9359ea 100644 (file)
@@ -19,7 +19,6 @@
  *     http://www.hpl.hp.com/research/linux/perfmon
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 344941db0a9edcd48b0e2c6099ec221b0cce7dd9..ff80eab83b38668b5d3a573f064e97b1d13f5715 100644 (file)
@@ -8,7 +8,6 @@
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/delay.h>
 #include <linux/smp.h>
index b045c279136c281bde5a67a1e7eef13dd58e846d..ea914cc6812a0a327cd73802f4b0e2b6beacd42b 100644 (file)
@@ -9,7 +9,6 @@
  *           Add notify_die() hooks.
  */
 #define __KERNEL_SYSCALLS__    /* see <asm/unistd.h> */
-#include <linux/config.h>
 
 #include <linux/cpu.h>
 #include <linux/pm.h>
index e61e15e28d8b61cebff7eb2facfcf0692c6cf35f..aa705e46b974d4d47aa4b9066bd2a017ec9b8c1b 100644 (file)
@@ -6,7 +6,6 @@
  *
  * Derived from the x86 and Alpha versions.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
index 77fa65903d94d20a334bfced9cb8a4353dab827c..642fdc7b969d5c4f6450f588e82e0f2a29064063 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1999 VA Linux Systems
  * Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
  */
-#include <linux/config.h>
 
 #include <linux/kernel.h>
 #include <linux/init.h>
index 6dba2d63f24d60dbbad443f8fda9c2f166722867..6a33f414de5862835fc09c19fc9d7918118ea11d 100644 (file)
@@ -22,7 +22,6 @@
  * 06/24/99 W.Drummond added boot_cpu_data.
  * 05/28/05 Z. Menyhart        Dynamic stride size for "flush_icache_range()"
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 
index 1d7903ee2126ec08183aa569bb4d8d8ef8f472dc..77f8b49c788258021819ccaab628e9b92e734f17 100644 (file)
@@ -7,7 +7,6 @@
  * Derived from i386 and Alpha versions.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 5203df78f150cd1d9cf35c5b888a958f4dd10cdd..e1960979be29d082b09d2e767393d182a526238c 100644 (file)
@@ -21,7 +21,6 @@
  * 05/01/30 Suresh Siddha <suresh.b.siddha@intel.com>
  *                                             Setup cpu_sibling_map and cpu_core_map
  */
-#include <linux/config.h>
 
 #include <linux/module.h>
 #include <linux/acpi.h>
index c7b943f1019981d4c5c16b2a93d7e623b516f263..40722d88607adf57de79dc158b08d769f767757b 100644 (file)
@@ -5,7 +5,6 @@
  * Copyright (C) 1999-2000, 2002-2003, 2005 Hewlett-Packard Co
  *     David Mosberger-Tang <davidm@hpl.hp.com>
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
 #include <linux/mm.h>
index 49958904045b2f68773f4b0b788b9ca15b84cb0e..71ccddabc715400bc1b8d22d4508657225e7b361 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 1999-2000 VA Linux Systems
  * Copyright (C) 1999-2000 Walt Drummond <drummond@valinux.com>
  */
-#include <linux/config.h>
 
 #include <linux/cpu.h>
 #include <linux/init.h>
index 5511d9c6c70152fe67b1025c1fe8ea8044926760..b146f1cfad3141e240fac9297de3bfc67f75286a 100644 (file)
@@ -13,7 +13,6 @@
  *     Populate cpu cache entries in sysfs for cpu cache info
  */
 
-#include <linux/config.h>
 #include <linux/cpu.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 7c1ddc8ac44325d7600ced23ed9457ea68ac6a78..e7bbb0f40aa20eacb9b07431f360fbd456cc91e1 100644 (file)
@@ -7,7 +7,6 @@
  * 05/12/00 grao <goutham.rao@intel.com> : added isr in siginfo for SIGFPE
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/sched.h>
index 783600fe52b2d4bf772b3c9b6968c58581b36073..5b0d5f64a9b11d7fff31532595f5fbb00a8c036a 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 
 #include <asm/cache.h>
 #include <asm/ptrace.h>
index d4987061dda76a5ecfc19dc619504aa17ebb00b9..2d814e7ed191c60c50ba85de3b8382a6bfc4abc0 100644 (file)
@@ -8,7 +8,6 @@
  * 2/12/02 kchen       Tuned for both Itanium and McKinley
  * 3/08/02 davidm      Some more tweaking
  */
-#include <linux/config.h>
 
 #include <asm/asmmacro.h>
 #include <asm/page.h>
index 8949e44091acbec9bdc063237759047bdec0a93d..bcd16f8ad9d958ef9981c6504f3028cd48ba1a81 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 
index 9e534d52b1d52289a90f49417db3edb5874fd2de..ab0f8763972954117b0ac6a7dc3ac120d6e042c5 100644 (file)
@@ -13,7 +13,6 @@
  * Copyright (C) 2002 Intel Corp.
  * Copyright (C) 2002 Ken Chen <kenneth.w.chen@intel.com>
  */
-#include <linux/config.h>
 #include <asm/asmmacro.h>
 #include <asm/page.h>
 
index 84fd1c14c8a9d5c39a168e17dce7386491642aa6..2a88cdd6d92493e5e8af300e62daa4e162879491 100644 (file)
@@ -14,7 +14,6 @@
  * Routines used by ia64 machines with contiguous (or virtually contiguous)
  * memory.
  */
-#include <linux/config.h>
 #include <linux/bootmem.h>
 #include <linux/efi.h>
 #include <linux/mm.h>
index 6d259e34f3596cb6804274efe6d3e9411846169e..71c50dd8f8706da65a0362dc2ee8e15888c42060 100644 (file)
@@ -5,7 +5,6 @@
  *     David Mosberger-Tang <davidm@hpl.hp.com>
  */
 
-#include <linux/config.h>
 #include <linux/sort.h>
 
 #include <asm/uaccess.h>
index 8d506710fdbd721f82c88aac5f9f5a20bae13b59..eee5c1cfbe3223c1376c4d0a9239d4def44be824 100644 (file)
@@ -8,7 +8,6 @@
  * Feb, 2004: dynamic hugetlb page size via boot parameter
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/fs.h>
 #include <linux/mm.h>
index 38306e98f04b2877a076ae7ac4912dee3cebfbab..2f50c064513c248f1a739d8891dd21509f7a474a 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1998-2003 Hewlett-Packard Co
  *     David Mosberger-Tang <davidm@hpl.hp.com>
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 
index 4e5c8b36ad93ea91fa72674c3fe0fec44c593871..64e4c21f311cdc7f328165b18ae189e07476f885 100644 (file)
@@ -10,7 +10,6 @@
  *                         2002/08/07 Erich Focht <efocht@ess.nec.de>
  */
 
-#include <linux/config.h>
 #include <linux/cpu.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 4dbbca0b5e9c5698286c34462d98a246fd3d6cf7..ffad7624436c84e02e62b7e38b72066bc689492f 100644 (file)
@@ -11,7 +11,6 @@
  * Rohit Seth <rohit.seth@intel.com>
  * Ken Chen <kenneth.w.chen@intel.com>
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index b7975a469fb82e857c9eacca7bfd73086cfc4fa4..bc41dd32fec674c418bff10ce2979179a4ee359e 100644 (file)
@@ -8,7 +8,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/oprofile.h>
 #include <linux/sched.h>
 #include <asm/perfmon.h>
index 5bef0e3603f2a44e19169a5957bb6a0bf201150a..276512fd8922d33ef23c3429ce23631607dd86bb 100644 (file)
@@ -10,7 +10,6 @@
  *
  * Note: Above list of copyright holders is incomplete...
  */
-#include <linux/config.h>
 
 #include <linux/acpi.h>
 #include <linux/types.h>
index e952ef4f6d912dd361b7360d5a87df78f0f00f09..27dee4584061ffc918f1d9450262e7124ab8fee6 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (c) 2000-2006 Silicon Graphics, Inc.  All Rights Reserved.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/sn/nodepda.h>
 #include <asm/sn/addrs.h>
index 3bfccf354343740e3fd811b3ff13d5c1a43a2376..dd6bcf4d58bf86b2c84836246aa285b32b3647f1 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1999,2001-2006 Silicon Graphics, Inc. All rights reserved.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/delay.h>
index 6ae276d5d50c858d213c25513d4c0748599151b8..4dcce3d0e04ca1c9bc0e10d10cf4d7fcab6f7723 100644 (file)
@@ -8,7 +8,6 @@
  * Module to export the system's Firmware Interface Tables, including
  * PROM revision numbers and banners, in /proc
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/proc_fs.h>
index 5100261310f76465a10925aa397e4c4228e25253..43ddc2eccb965bd3c71d372e1afc6c53505babc4 100644 (file)
@@ -5,7 +5,6 @@
  *
  * Copyright (C) 2000-2005 Silicon Graphics, Inc. All rights reserved.
  */
-#include <linux/config.h>
 
 #ifdef CONFIG_PROC_FS
 #include <linux/proc_fs.h>
index e5c6d3c0a8e9a852ac37ae43e620ffa820bc0b05..007703c494a439b47bd82ba3898891585f38530c 100644 (file)
@@ -22,7 +22,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
index 234d8b1e0ac1670a94fde74ebd4efdc5b60aa7f5..95a0563ff076e9665f553416a4b3ef1d1816829a 100644 (file)
@@ -7,7 +7,6 @@
  */
 
        .text
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/addrspace.h>
 #include <asm/page.h>
index 8f9a57271f8345cfd61e43ec5968bdd086f6600a..bce8af5e3bb2ab6f542b198770cdb8b0e1e72ab1 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 
 static void putc(char c);
index 70fa799005c387a032619a08217ec64145685340..600d40e33495dcb4b8419d70ebbac051407d189c 100644 (file)
@@ -12,7 +12,6 @@
  *             This is based on arch/sh/boot/compressed/misc.c.
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 
 /*
index a18431759633bbbfb77a757a4b8ea80d03742d3b..dd11963f6939251bd91185eca8ff637893201301 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 
 OUTPUT_ARCH(m32r)
 ENTRY(startup)
index 398542507d84aead8075127c07c625fb81f49d54..ef843d63083d3a522bc51288e439b81db2f702c1 100644 (file)
@@ -11,7 +11,6 @@
 #include <asm/page.h>
 #include <asm/pgtable.h>
 
-#include <linux/config.h>
 #include <asm/assembler.h>
 #include <asm/mmu_context.h>
 #include <asm/m32r.h>
index 48ec29714238d8a87eee3204b68e2df13b0a9fc9..ab871ccd33f82f5318d0218669cce79e101c7adc 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (c) 2003 Hitoshi Yamamoto
  */
 
-#include <linux/config.h>
 #include <asm/ptrace.h>
 #include <asm/uaccess.h>
 
index 920bb742b7a2a90394c133998809917f0bb33f56..ac6d840b382b3ccea8205da499f87bedb0e890c7 100644 (file)
@@ -54,7 +54,6 @@
  *       @(0x6c,sp) - orig_r0          ditto
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/irq.h>
 #include <asm/unistd.h>
index 3e83173995cd81992766212a33a5efee63931038..0d3c8ee0e03d9fc21de2fd05f160d7d612d993a2 100644 (file)
@@ -14,7 +14,6 @@ __INIT
 __INITDATA
 
        .text
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/segment.h>
 #include <asm/page.h>
index d26adab9586c65094f0f2beb8672d08dbf32570d..2189eca30b565abb97dab099d42d714cc3a5ef0c 100644 (file)
@@ -8,7 +8,6 @@
  *                           Naoto Sugai, Hayato Fujiwara
  */
 
-#include <linux/config.h>
 #include <asm/m32r.h>
 #include <asm/page.h>
 #include <asm/io.h>
index 939932d6cc00609358352e9b62fcecd9e3e9782f..5898f4031a0cf53376e316437bff3deb1ed57d6d 100644 (file)
@@ -11,7 +11,6 @@
  *  archive for more details.
  */
 
-#include <linux/config.h>
 #include <asm/m32r.h>
 #include <asm/page.h>
 #include <asm/io.h>
index a662b537c5ba4bb9729cb7435fb84509473fbc31..31396789ab1baad24a23a4aeec84efa913a8a4d8 100644 (file)
@@ -7,7 +7,6 @@
  *                           Hitoshi Yamamoto
  */
 
-#include <linux/config.h>
 #include <asm/m32r.h>
 #include <asm/page.h>
 #include <asm/io.h>
index e72d725606afc83a8b0273431f8e8d08c1369e8f..ecc6aa88f9acaf3d9ec2587d384baef585c8ca6f 100644 (file)
@@ -7,7 +7,6 @@
  *                           Hitoshi Yamamoto, Mamoru Sakugawa
  */
 
-#include <linux/config.h>
 #include <asm/m32r.h>
 #include <asm/page.h>
 #include <asm/io.h>
index ed6da930bc64ab5e321c2e0e6fbcb2e3e807b0bd..a13b5f6b07e936fef783f93f88476f70d2a08579 100644 (file)
@@ -7,7 +7,6 @@
  *                           Hitoshi Yamamoto, Mamoru Sakugawa
  */
 
-#include <linux/config.h>
 #include <asm/m32r.h>
 #include <asm/page.h>
 #include <asm/io.h>
index 910dd131c22751b202d9ad5b0981808567c00266..068bf47060f8150ad13363515c85889801a7ce63 100644 (file)
@@ -7,7 +7,6 @@
  *                           Hitoshi Yamamoto, Mamoru Sakugawa
  */
 
-#include <linux/config.h>
 #include <asm/m32r.h>
 #include <asm/page.h>
 #include <asm/io.h>
index bec69297db3c6f31c0cfc4aa03d5ad98cc98943f..da6c5f5c1f82b5fe2aa2c4f1a63664609d685e89 100644 (file)
@@ -11,7 +11,6 @@
  *  archive for more details.
  */
 
-#include <linux/config.h>
 #include <asm/m32r.h>
 #include <asm/page.h>
 #include <asm/io.h>
index 39a379af40bca621472910c097ba76310800b80d..a8c0e2eceb4ddfa87b1f2a9574dffa9604672841 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/m32r.h>
 #include <asm/page.h>
 #include <asm/io.h>
index c50330fa83b98a33ef58e40f6751671835ed3aee..8cbbb0b11e0c9c66b1a8280ed95dd65b3c6fe9ee 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/smp.h>
 #include <linux/user.h>
index f6a79a016ce013e618903fabf478bc5c975cf7e5..8d4205794380f93612f9dc62974e8895427f5912 100644 (file)
@@ -15,7 +15,6 @@
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
 
-#include <linux/config.h>
 #include <linux/moduleloader.h>
 #include <linux/elf.h>
 #include <linux/vmalloc.h>
index 065f5e7190587cf4e6a8122a34c64617523ab1cc..44cbe0ce0f8fb21681590509e76af47ac9696727 100644 (file)
@@ -21,7 +21,6 @@
  */
 
 #include <linux/fs.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/ptrace.h>
 #include <linux/unistd.h>
index 340a3bf59b88d6935fc004ea95669ee1f59cdc61..5f02b31448752e514b290c2c5023f72a89ab9059 100644 (file)
@@ -14,7 +14,6 @@
  *   Copyright (C) 2000 Russell King
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 9a6e6d754ddcf54b3ef31937fda4dc7c69ab5b83..940c2d37cfd1caa7041097e7301c195424759675 100644 (file)
@@ -21,7 +21,6 @@
  *
  * rw semaphores implemented November 1999 by Benjamin LaHaise <bcrl@kvack.org>
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/err.h>
 #include <linux/init.h>
index 1ff483c8a4c9749c99d8f70b052ee9d805cc3aa6..0a6c6e677afe285105bacd0c38672c1f2b4f0d0b 100644 (file)
@@ -7,7 +7,6 @@
  *                            Hitoshi Yamamoto
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/stddef.h>
index f9f56c2701951c10f0c44883c57a8f89fa3ddf2b..1692b321f47622aedf70719ac2f7c672af2bb58f 100644 (file)
@@ -8,7 +8,6 @@
  *                           Naoto Sugai, Hayato Fujiwara
  */
 
-#include <linux/config.h>
 #include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index b6ab00eff58057db820edf51c06cfdc08a4b5017..7efc145c74c28adffa51a8f02b23ddd8d1bdd503 100644 (file)
@@ -11,7 +11,6 @@
  *  archive for more details.
  */
 
-#include <linux/config.h>
 #include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index c268044185f543ed4ffd936996fb29e01c6f1e29..67dbbdc9d111bdc89e0b621adf2d9ef438030915 100644 (file)
@@ -7,7 +7,6 @@
  *                           Hitoshi Yamamoto
  */
 
-#include <linux/config.h>
 #include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index bd2327d5cca28a1528a8f0ae1fec9b83231a7fec..55abb21027504f1bb5d8e5dd4eb78beb1803d766 100644 (file)
@@ -7,7 +7,6 @@
  *                           Hitoshi Yamamoto, Mamoru Sakugawa
  */
 
-#include <linux/config.h>
 #include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 014b51d17505a3e9fd047f79b82f20508d813d9d..93dc010c7fc341b59d20e14c56d120534db412d4 100644 (file)
@@ -7,7 +7,6 @@
  *                           Hitoshi Yamamoto, Mamoru Sakugawa
  */
 
-#include <linux/config.h>
 #include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index ea64831aef7ad536869cfdd9dccb63c6ca47b3f6..cd62598e3cea6b879062293ced0fcd7ec24726bd 100644 (file)
@@ -7,7 +7,6 @@
  *                           Hitoshi Yamamoto, Mamoru Sakugawa
  */
 
-#include <linux/config.h>
 #include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 55e8972d455aedd27a132766a3c89ad42f388474..61d3b01cbe072e76957bef61704172b32427d427 100644 (file)
@@ -12,7 +12,6 @@
  *  archive for more details.
  */
 
-#include <linux/config.h>
 #include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 7fa12d8f66b47d63d8695422d429cc515a7a1f10..f5b4b5ac31e7c0bbf4dc5bf7c38a185698974065 100644 (file)
@@ -7,7 +7,6 @@
  *                                  Hitoshi Yamamoto
  */
 
-#include <linux/config.h>
 #include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 6498ee70bb738d4c6aedf927b2b45d7de17215fe..a9174efe80cbf95379d3891de21f0c3b660eeb92 100644 (file)
@@ -10,7 +10,6 @@
  *  2000-06-20  Pentium III FXSR, SSE support by Gareth Hughes
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
 #include <linux/smp.h>
index 840b4348bf0ceb1eeefc3f767b63ba9b350b30db..fa786560949588233fb1403c9d76d6091e2ca93c 100644 (file)
@@ -40,7 +40,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 670cb49210af483af5b94592e8e39298802183ff..a9cea32eb8246286924667bbef46291547297696 100644 (file)
@@ -7,7 +7,6 @@
  * Taken from i386 version.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index b8e68b54230210f208ebadc809e4e57d19e638ea..efff6f5151df28f7c693e0059f9c5c7ae6a9008c 100644 (file)
@@ -17,7 +17,6 @@
 
 #undef  DEBUG_TIMER
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/module.h>
index 5fe8ed6d62dcd18718841515ebb60103de467e1e..c1daf2c40c7c4fb05af0f61b503fe9bf20a92bc1 100644 (file)
@@ -9,7 +9,6 @@
  * 'traps.c' handles hardware traps and faults after we have saved some
  * state in 'entry.S'.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/kallsyms.h>
index 729a2645a03f5aac8d30426e2f57301c3e26b547..13c7bb698e376ac10164753093d83db15dfd6228 100644 (file)
@@ -1,7 +1,6 @@
 /* ld script to make M32R Linux kernel
  */
 
-#include <linux/config.h>
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/addrspace.h>
 #include <asm/page.h>
index 78effca9d97adc010d8194169a4529d34b07ba12..107594b65d58315059fd86f0cfe02c284cb6fc95 100644 (file)
@@ -6,7 +6,6 @@
  */
 /* $Id$ */
 
-#include <linux/config.h>
 
 ;
 ;      input   (r0,r1)  src
index f6fc1bdb87e4b4ac3ea2f6efb48d7fbd68510059..cfbe00e5184a7dcbfb189cfde256942060e9f95f 100644 (file)
@@ -28,7 +28,6 @@
 /* $Id$ */
 
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 #include <asm/errno.h>
index fb29632c7eaa2cf72e1065f5aaacfacfc167eb54..06382a38c3185f79242b2dbec8a3f12850bccced 100644 (file)
@@ -7,7 +7,6 @@
 
 /* $Id$ */
 
-#include <linux/config.h>
 #include <linux/param.h>
 #ifdef CONFIG_SMP
 #include <linux/sched.h>
index 800898a2d2e326e3e4ea503adb3d5cd60d78eb93..2089a215314eb5aff9c18f032182bc0693696584 100644 (file)
@@ -14,7 +14,6 @@
 
 
        .text
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 
index 6e26df120acb0d3aede214cec29c161d208d2636..b47fa3537aa4f16067473a9b7085beea3f79d6de 100644 (file)
@@ -14,7 +14,6 @@
  */
 /* $Id$ */
 
-#include <linux/config.h>
 
        .text
        .global memset
index 8d23cfbd600c1c2d51620ebb5307351d7e68a2a9..5f41aacd7b3e43f71ab10ed5fba0e07acd76b84a 100644 (file)
@@ -9,7 +9,6 @@
 /* $Id$ */
 
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 
index 2d1dd2106c4dddac42d01732e2e20d863eb0c550..896cef1aca5f43b8da34b8d9d45b2858f3ce84e5 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright 1997 Linus Torvalds
  * Copyright 2001, 2002, 2004 Hirokazu Takata
  */
-#include <linux/config.h>
 #include <linux/prefetch.h>
 #include <linux/string.h>
 #include <linux/thread_info.h>
index 9f54dd9370132452517c853162462e6005d781f8..fac759584875a63e6b3209af10749469a2fd4408 100644 (file)
@@ -4,7 +4,6 @@
  *  Copyright (C) 2002-2005  Hirokazu Takata, Hayato Fujiwara
  */
 
-#include <linux/config.h>
 #include <asm/pgtable.h>
 
 #undef MCCR
index cf610a7c5ff0541f8dc051e99fa4825f69a73e31..abb34ccd59862453a6c20265a8268fc58789d1ce 100644 (file)
@@ -6,7 +6,6 @@
  *  Copyright (c) 2003  Hitoshi Yamamoto
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
 #include <linux/mmzone.h>
index d9d488d782e8a7e0c4bac21d1bb8a9bcddcf6b8f..03fc4c858e0e01d521fac4a1aa2c55322b88bbdf 100644 (file)
@@ -9,7 +9,6 @@
 
 /* $Id: fault-nommu.c,v 1.1 2004/03/30 06:40:59 sakugawa Exp $ */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index bf7fb58ef02c49925236a9a7f6c445e89cb5687d..dc18a33eefef36ccd10790525b2537e4cae89255 100644 (file)
@@ -8,7 +8,6 @@
  *    Copyright (C) 1995  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
@@ -148,7 +147,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code,
        /* When running in the kernel we expect faults to occur only to
         * addresses in user space.  All other faults represent errors in the
         * kernel and should generate an OOPS.  Unfortunatly, in the case of an
-        * erroneous fault occuring in a code path which already holds mmap_sem
+        * erroneous fault occurring in a code path which already holds mmap_sem
         * we will deadlock attempting to validate the fault against the
         * address space.  Luckily the kernel only validly references user
         * space from well defined areas of code, which are listed in the
index 8f2e0587ae2f4981b92c997ca5beb4e0d40ae0a2..7fdcf6bf3ada9cef9ce44bd6299d4e462172921d 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <asm/ptrace.h>
index ae94db5d93b2208942218a89dba61d354fb7e2ae..1f5bfb58429783be182e8aad94d2a5f94eb28d7d 100644 (file)
@@ -8,7 +8,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/jiffies.h>
 #include <linux/timer.h>
 #include <linux/init.h>
index 558d5fd2d2ba932a07b7f772afabd11dce098be7..de1304c91112e1a42bd56ebe4de4bf40ef528584 100644 (file)
@@ -7,7 +7,6 @@
 **     Rewritten 15/9/2000 by Geert to use resource management
 */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index b5b8a416a07a1384919b2f60ff78adfee5668117..092e50d2cb137781d1378f43fdb006f8ae73e720 100644 (file)
@@ -12,7 +12,6 @@
  * Miscellaneous Amiga stuff
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 99c70978aafa8149cc425dcd1cd39f54cf23000e..6f4581575fb4ca72bd2782746c64b8c2965c25f3 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 727289acad7e67336573d53d1c21c7fe7a105a2f..b2079252a954b708a43441fd3f850626193b90ff 100644 (file)
@@ -24,7 +24,6 @@
  * Miscellaneous atari stuff
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/mm.h>
 #include <linux/console.h>
index ace05f79d968e778289672551aac8696dba08160..4ae01004d8dd57e4308f15a185d30aef8a8e44d0 100644 (file)
@@ -10,7 +10,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/tty.h>
 #include <linux/console.h>
index 8888debf71ecc739d595f69315fe3ffd3d1e426c..6ca57b6564da1ab138f318cd8247f885acd3180d 100644 (file)
@@ -4,7 +4,6 @@
  * Written by Wout Klaren.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <asm/io.h>
index 22e0481a5f7b484b46fae64c638c4ec15efa569a..bf4588cbe3711bca7125a1d1167541ec76fe0531 100644 (file)
@@ -8,7 +8,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 2ef271cd818b8cc44a1aeb3ea15f0458322e5f69..1c05a6260546482ea365e9f6ef9c2e68f065c9bd 100644 (file)
@@ -7,7 +7,6 @@
  *  called by setup.c.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/string.h>
index a901685eb6a94b1e47a9d056f18e19e4e2327c78..af170c2be73550e100df3a0da78d137e3c0f8ab2 100644 (file)
@@ -6,7 +6,6 @@
  * Based on the DEC Alpha bios32.c by Dave Rusling and David Mosberger.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 
index 449b62b30f450747f1e1ded406a880c6768d6c8a..9083c8b7659f9be4354bfaaf61243e8fd719ab1f 100644 (file)
@@ -33,7 +33,6 @@
  *              for 68040
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/entry.h>
 #include <asm/errno.h>
index 70002c146eed19c0c5dd76c73092d6a56f11df25..6739e87fe8255c308de8c1f293e3d67ed0f85185 100644 (file)
  * MAC_USE_SCC_B:      Use the SCC port B (printer) for serial debug (default).
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <linux/init.h>
 #include <asm/bootinfo.h>
index 5a8344b935474a645b4ebe0e7612169df9ded3c2..e969f0477640381fcd20543a3cab6bfd6889e0f6 100644 (file)
@@ -25,7 +25,6 @@
  *           which must be served                               /Roman Zippel
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/sched.h>
index 1f5e1b5aeda4e63f78c0cf3c5a285e62bbd60e5b..aff26a52167c4c418ba9bac6f273c0e202012838 100644 (file)
@@ -7,7 +7,6 @@
 #include <linux/elfcore.h>
 #include <linux/in6.h>
 #include <linux/interrupt.h>
-#include <linux/config.h>
 
 #include <asm/setup.h>
 #include <asm/machdep.h>
index 33648efb772eadde09a4f517353c85660ea1b895..45a46646c1b353eec5b565e835d99d16d8df5edc 100644 (file)
@@ -10,7 +10,6 @@
  * This file handles the architecture-dependent parts of process handling..
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 540638ca81f9832fe390b1f0b381d54ea7b2b20e..ef89060ea328374d25fe9d03a8a449cf9126d52f 100644 (file)
@@ -18,7 +18,6 @@
 #include <linux/errno.h>
 #include <linux/ptrace.h>
 #include <linux/user.h>
-#include <linux/config.h>
 #include <linux/signal.h>
 
 #include <asm/uaccess.h>
index 1ebb79baaa8c32f839f87de5c3fbc2a834f5749d..d12cbbfe6ebd92b57c9a592b2f441d80f927765a 100644 (file)
@@ -3,7 +3,6 @@
  * specific changes in <asm/semaphore-helper.h>
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/init.h>
 #include <asm/semaphore-helper.h>
index 214a95f9f3acfb3f566f35070a82d94120796758..f2d7ee0ee18cde7139051b2a5dc1868536721077 100644 (file)
@@ -8,7 +8,6 @@
  * This file handles the architecture-dependent parts of system setup
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
index e86de7b061cd546768cc56cbfeca467164e4222d..4569406a2e1f8d8855e8d9ae57ebd698c7ad9b1f 100644 (file)
@@ -18,7 +18,6 @@
  * Sets up all exception vectors
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/signal.h>
 #include <linux/kernel.h>
index 497b924f3c86c3df14b9b25bb2253c36ec5bb72c..99ba315bd0a857a884dd017fc7a3c42027b78879 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 PHDRS
 {
   text PT_LOAD FILEHDR PHDRS FLAGS (7);
index 5a9990e436bb00899ea2b8b61ed17b50753057fb..85dda1095b1fbc42f3e301ccee3e2e45a7a56e82 100644 (file)
@@ -10,7 +10,6 @@
  * Miscellaneous linux stuff
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index cc62ed61cda27d7e6182d09c5bc11110a96b6597..4eeb09dc0e8fc43576cff99ae9a3023cc782f465 100644 (file)
@@ -14,7 +14,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/sched.h>
 #include <linux/tty.h>
index 4c8ece7e64a36a4808ff4838a89eacb67572c229..bc657b1057a7cc30d560c80912102e57c1e2a50c 100644 (file)
  * should execute quickly.)
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index bbb0c3b95e9c141614b0a0d3989e952620b8787d..56d1f5676ade43628f578c8786dd1e3bf7d1f818 100644 (file)
@@ -2,7 +2,6 @@
  * Miscellaneous Mac68K-specific stuff
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/miscdevice.h>
index 5ec2d9101ea3e0e9151d969cf44dfc987a96e827..954b4f304a7d41786dcff301f4ac83796502e6d2 100644 (file)
@@ -35,7 +35,6 @@
  * OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/entry.h>
 
index a9f7f01290672feded67ad7b4bd6f662668355c8..b093b85fcdd2b1c46dde2c205b6dfe6415929baa 100644 (file)
@@ -35,7 +35,6 @@
  * OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <linux/config.h>
 #include "fp_emu.h"
 
 /*
index a190e39c907ad747fc3a2ab336a9da2745e79e3c..ab90213e5c54030bb1872b68e3342c31c0fb40b7 100644 (file)
@@ -7,7 +7,6 @@
  *  to motorola.c and sun3mmu.c
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 43ffab0487242140e070f267d35ea7f14dd83d59..f46f049d29ff34542acf24257a64809f728f9c26 100644 (file)
@@ -7,7 +7,6 @@
  *          used by other architectures                /Roman Zippel
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index a226668f20c329413a70cd3a207707d012838ee3..a0c095e17222df5c48c56279d7181d11b4e4e000 100644 (file)
@@ -4,7 +4,6 @@
  *  Copyright (C) 1995  Hamish Macdonald
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index bdb11103694b31a36af51eaf43b78e5a9e0d01b2..49015e32d8fcbf29dd400bcc7337c7a8dc278e0e 100644 (file)
@@ -8,7 +8,6 @@
  * Moved 8/20/1999 Sam Creasey
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
index efa52d302d674aceaeb1d09b1a5a62671c7d4a9a..9a1827876408eac1f0c8f369e6890f3066855c33 100644 (file)
@@ -12,7 +12,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 553c304aa2c5238261fdaecf7361f16ea6ca1919..d09d03b3d956ec75560fa733dfaa4e0733e7ac2c 100644 (file)
@@ -8,7 +8,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 2e6ae56aec12e232acbefe46e7ac4111ad39f4cb..202adfcc316eee252982d5056b98971cef7c973b 100644 (file)
@@ -5,7 +5,6 @@
  * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 
index e6ee1006344ef7733c1de0050d2f1309948f1ad2..e7bfde377b5e848c4e50e2fbfa3e6b028f42a6be 100644 (file)
@@ -8,7 +8,6 @@
  * about or use it!  It's simple and smelly anyway....
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 
 #include <asm/openprom.h>
index 97c7bfde8ae8e991e4876c77a4bd36e145707b6f..6c265222cbcdcac80cdc3cc139c6029ce594ab14 100644 (file)
@@ -6,7 +6,6 @@
  * Contains common routines for sun3/sun3x DVMA management.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/list.h>
index 0912435e9e9090cee3bdf6b25a80faf06dff6df3..f18b9d3ef16df601915abadca0d7f9d1df2b2726 100644 (file)
@@ -6,7 +6,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 52fb174088698388e486514fc6a4d3093ed1f32a..987891783a472f64662ba93b2093639aebcd0960 100644 (file)
@@ -6,7 +6,6 @@
  * based on code from Oliver Jowett <oliver@jowett.manawatu.gen.nz>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/mm.h>
 #include <linux/console.h>
index db7a0c1cebae8dfe88ad393fa47eefc711790fdc..6ee00effbad28e4549383ff4ebb27afe440f37ee 100644 (file)
@@ -9,7 +9,6 @@
 
 /*****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/pci.h>
index 8b1f47239b9a1f5e84c6d02da4222dfb8803b9fc..1e7ea6a3e1a146c9a092c33eba6073751f3c0d38 100644 (file)
@@ -24,7 +24,6 @@
  * linux 2.4 support David McCullough <davidm@snapgear.com>
  */
 
-#include <linux/config.h>
 #include <linux/sys.h>
 #include <linux/linkage.h>
 #include <asm/thread_info.h>
index 4320d5dcc9cb9b7e632bd98d8bf74d49b4ab3652..1e62150f3588d5d8f4da0e298b1e203f8d484420 100644 (file)
@@ -7,7 +7,6 @@
 #include <linux/elfcore.h>
 #include <linux/in6.h>
 #include <linux/interrupt.h>
-#include <linux/config.h>
 
 #include <asm/setup.h>
 #include <asm/machdep.h>
index f861755ec88bab000fff2f55547c733a7806b246..c18a83306953c663079faaac5d573ffbfffc78ca 100644 (file)
@@ -13,7 +13,6 @@
  * This file handles the architecture-dependent parts of process handling..
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
index 382ca5797b97804d28e7a2fcae60d43cd0d9b3d6..9130119537b9ffdbe082e9857f0ea9c657ae159b 100644 (file)
@@ -18,7 +18,6 @@
 #include <linux/errno.h>
 #include <linux/ptrace.h>
 #include <linux/user.h>
-#include <linux/config.h>
 #include <linux/signal.h>
 
 #include <asm/uaccess.h>
index c083f4772add4d61a5ba41ad04cb8dcd8c5635fb..bce2bc7d87c69540f82e5df17c3ccc417882a7a2 100644 (file)
@@ -3,7 +3,6 @@
  * specific changes in <asm/semaphore-helper.h>
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/err.h>
 #include <linux/init.h>
index 99d038e9ab31919d55588e28575488d2bd469ffc..bde9811cf98c927dcb4bb787bacbdb81a2e6122c 100644 (file)
@@ -16,7 +16,6 @@
  * This file handles the architecture-dependent parts of system setup
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/delay.h>
index 897deaa06b016976b160342f0e01d6a7b40277dc..617e43ec95ae48eb6e89dd44f64df34392dcabe3 100644 (file)
@@ -11,7 +11,6 @@
  *  Copyright (C) 1991, 1992  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/sys.h>
 #include <linux/linkage.h>
 #include <asm/unistd.h>
index b9d8abb454301cb0a5b4081e67f49dfb4fb96ad2..1db9872722200b91fc56dde75be3781dca13b567 100644 (file)
@@ -10,7 +10,6 @@
  *             "A Kernel Model for Precision Timekeeping" by Dave Mills
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 44ff74e643b1ecac7d6378f45c7ae146af627381..17649d2543efa211423c5228d872ceaeb985fa5e 100644 (file)
@@ -16,7 +16,6 @@
 /*
  * Sets up all exception vectors
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/signal.h>
 #include <linux/kernel.h>
index 59ced831b79214358ef5a5bec9d6bb9def55df4d..ccd2ceb05cfbc60fce2018bc0167e2cafcfa143c 100644 (file)
@@ -7,7 +7,6 @@
  *     run kernels.
  */
 
-#include <linux/config.h>
 #include <asm-generic/vmlinux.lds.h>
 
 #if defined(CONFIG_RAMKERNEL)
index 76765362fea604425f8a3f708ab5fb0c4411e6f3..87c7460343763d34d7ed336c07f1947ac932a2df 100644 (file)
@@ -9,7 +9,6 @@
  */
 
 #include <linux/linkage.h>
-#include <linux/config.h>
 #include <asm/semaphore.h>
 
 /*
index 70d1653be3da4fc4ab9bb835693863646d261b70..e4c233eef195a37bdbf6672b53c848d2d6bf0191 100644 (file)
@@ -15,7 +15,6 @@
  *  DEC/2000 -- linux 2.4 support <davidm@snapgear.com>
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 04213e1c1e57e70f7ee6ad23abd6e8fe775af6d7..bc32f38843f0a1cf1ca5c138129a825cfefdb1d2 100644 (file)
@@ -5,7 +5,6 @@
  *  Copyright (C) 2000-2002 David McCullough <davidm@snapgear.com>
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 0eef72915e618c0e2dca2a8f42963aff6b42c289..411e45248e5caf9f164e53300bc346a90883a1fc 100644 (file)
@@ -11,7 +11,6 @@
  *  Copyright (C) 1995  Hamish Macdonald
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 987c91a9a20648ef7716d6a57a7cf53abcadb683..34657f85e7024d40fc724ccaee67305de6834ab0 100644 (file)
@@ -9,7 +9,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/param.h>
index f35b8606c1ee5fb976939bd8e77def6945fb289d..48e4d62665077b583a502df29d592b4c7baf22f0 100644 (file)
@@ -8,7 +8,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/param.h>
index 71dea2e0f45294e19cb0aed3c14d163e4ea37469..823f561f35b0c7d9dce2e9e0cbaba27bde83a3ef 100644 (file)
@@ -11,7 +11,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
 #include <asm/machdep.h>
index 22767ce506e0e872fb49cb5829ec9e642fc34b7b..85de817e9ec581d02f1927f3bab5d4e0bba6afde 100644 (file)
@@ -12,7 +12,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/param.h>
index 289c1821b841ba0fda917c34ec3dc4c915bd4466..9d19d5bdb8afd3cc5598465965a921761dc92a80 100644 (file)
@@ -8,7 +8,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/param.h>
index cf36e7d007b9eab480c48b9544532a55323e3569..d500e27eda57cd4f8cf4eb3469b3a322b63aa8a8 100644 (file)
@@ -9,7 +9,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/param.h>
index 804de33cd6b74c9f538903c36a15931c02719f4e..bbae515974579b5b0f6fb94a2aee4aed26a99a3e 100644 (file)
@@ -12,7 +12,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/param.h>
index a5d2aa38a27a5664df90c99b0813f18f21e72e7a..18dad90461445b2298fbdda3c23328897515a8dc 100644 (file)
@@ -12,7 +12,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/param.h>
index 7ed5782e923680ceea463077fe89fe1faf412e94..8074ac56f479b26eab53801f9816564eaabbef68 100644 (file)
@@ -9,7 +9,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/param.h>
index 9ddf5476ef8f0eb49970f74dcf93de3f24bc5eca..f0dba84d91019cb6798a985d1d27ab63ad4ad415 100644 (file)
@@ -26,7 +26,6 @@
  * Bug, speed and maintainability fixes by Philippe De Muyter <phdm@macqel.be>
  */
 
-#include <linux/config.h>
 #include <linux/sys.h>
 #include <linux/linkage.h>
 #include <asm/unistd.h>
index 1d9eb301d7ac4bc9b6f0de107c6e7022b21413ee..f2edb6498cd981cef3f57a733185918b8afb1553 100644 (file)
@@ -8,7 +8,6 @@
 
 /*****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/sys.h>
 #include <linux/linkage.h>
 #include <asm/asm-offsets.h>
index a134fb2f056672bc144898ace95f787d3be2a754..b4b55093ae7e867a23093883a620e16fc52af909 100644 (file)
@@ -21,7 +21,6 @@
 #include <linux/sched.h>
 #include <linux/kernel_stat.h>
 #include <linux/errno.h>
-#include <linux/config.h>
 #include <linux/seq_file.h>
 
 #include <asm/system.h>
index ef174748825f3288f58b8d89d0a041b28a109a14..994c893df1a4ede27b3acc3e2210e62762ae6a34 100644 (file)
@@ -12,7 +12,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/param.h>
index 83b8b89dfa09e7041ad3fcfb364d7f9eae13e178..c3a9755c2d1f2e6398d07dd849eb1909761d53fa 100644 (file)
@@ -8,7 +8,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/param.h>
index ac313a160d8dd948f625a42ffa38277ae3cbd530..2a8b0d044ce50a356fba376f0c5bcb2b8b393bc4 100644 (file)
@@ -8,7 +8,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/param.h>
index f7c9018b85a75ca7bf100a7b135148e8effe5dc1..5aad2645f0f1e1d476b5832548e2f6d12508ce28 100644 (file)
@@ -9,7 +9,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/param.h>
index bcfa5d7fe1e25d147c0f910846dff8a419a32974..26ffeba286424a0b41c4e9089fed15945692107a 100644 (file)
@@ -17,7 +17,6 @@
 
 #include <asm/dbg.h>
 #include <stdarg.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 7d8990d784a2bf8f54ee63f39a2da0c9c6d752e5..f978627154502d74ca748a9e24a797885c67adfb 100644 (file)
@@ -10,7 +10,6 @@
  * Linux/m68k support by Hamish Macdonald
  */
 
-#include <linux/config.h>
 #include <linux/sys.h>
 #include <linux/linkage.h>
 #include <asm/thread_info.h>
index 94c5a1609a753f6fbfe92aaffdbd90cfb8f01b71..92d96456d3635c9118d8041fb04d948e57839227 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 
 #if defined(CONFIG_RAM32MB)
 #define        MEM_END 0x02000000      /* Memory size 32Mb */
index 46b3604f999caf61dbf17a91a4d478a4c24cc1de..9e07faa3e81d5384059d6f31c0267eb31ac18cc5 100644 (file)
@@ -15,7 +15,6 @@
 #define IMMED #
 #define        DBG_PUTC(x)     moveb IMMED x, 0xfffff907
 
-#include <linux/config.h>
 
 .global _stext
 .global _start
index e8dc9241ff96f5fb29cbf33afdf3b99edc73f5b0..252b80b020380b422e1fdec6afdcb56e31dea6a5 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 
        .global __main
        .global __rom_start
index 234430b9551c96fef3e32ff370b69a1500c0fda2..6ec77d3ea0b384d981cc7012b90ee3fe6fb71a0a 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
        
        .global _start
        .global _stext
index 68c2cd6b003054204379d3733c2e3e7bd0ea60c2..438ef6ee9720bdd7883cae83d3d73195bd8a319c 100644 (file)
@@ -14,7 +14,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 69c670dfd62bb99b77c607b85fb2e0ce61a8f024..c5482e3622eb158b76804c8d5e5a45a47df16b68 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 #include <stdarg.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 8ff48adf24abec4dbec33f1e8c395ff96ceaed1b..f1af8977f294d20d3c7a386bb70062f6d3351cb4 100644 (file)
@@ -12,7 +12,6 @@
  * M68360 Port by SED Systems, and Lineo.
  */
 
-#include <linux/config.h>
 #include <linux/sys.h>
 #include <linux/linkage.h>
 #include <asm/thread_info.h>
index f497713a4ec7ea72dfbc2a1fc4736c66000d233a..2ea51479f13a4b23d14c44bacbec4791e7bfc294 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 #define ASSEMBLY
-#include <linux/config.h>
 
 .global _stext
 .global _start
index 2d28c3e19a881894d2f2389f0691db2364b06f29..62ecf4144b3ba3ad2df0ebecbb13adca1feff5b6 100644 (file)
@@ -11,7 +11,6 @@
  * Copyright (C) 1998  D. Jeff Dionne <jeff@uclinux.org>,
  *
  */
-#include <linux/config.h>
 
 .global _stext
 .global _sbss
index 0245fc4a478127223578387c346ff05970e42571..4df3c146eb74a62a405b3a88fb375c71c91500b9 100644 (file)
@@ -10,7 +10,6 @@
  * Copyright (c) 1999 D. Jeff Dionne <jeff@uclinux.org>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 15a14a67c2bf016ffe2569a9a6505a8b37580d82..659b80aca118c2734664b0972f5d9016aefc4ef7 100644 (file)
@@ -14,7 +14,6 @@
 /***************************************************************************/
 
 #include <stdarg.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 4058de5c8fa2f665cdcd658fcf452c29a98216a4..fcd100b7594d580ed4d484cbe959af21b4b8deb5 100644 (file)
@@ -14,7 +14,6 @@
 
 /***************************************************************************/
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 1bd6199e174a218e668b308ed5b838af062f442c..3ba7c47f9f23b1b9c4da4efcd31937ee0fcb39a7 100644 (file)
@@ -11,7 +11,6 @@
  *
  * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 5a1e3687cafa92ffd11237f67b4a3df6905330b8..7acfe9bf5fc3b8369ea7b49f4a128a8f212c3b52 100644 (file)
@@ -25,7 +25,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/irq.h>
index a547e47dd5fd4211c09df5029adde7795be4dafd..69cabb7463ff5db5b343563f54f18e00dd065c6f 100644 (file)
@@ -30,7 +30,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
index 7bc768e558dbec0bb14dd2c1311d7a67963ed701..0a50af7f34b8ca940ac09f83cb497ef3f5b49577 100644 (file)
@@ -1,5 +1,4 @@
 
-#include <linux/config.h>
 #include <asm/io.h>
 #include <asm/mach-au1x00/au1000.h>
 
index 1d82f2277517e23511c48659c2ca649cd1c4cfa3..fb7c47c1585d22da6f25b08186205323374a0f38 100644 (file)
@@ -30,7 +30,6 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 5f5915b8314214ebe95aa2b83ab9e73e535fa592..ce55297dcb8c57e261cb6e7320e5c4d911f82b2c 100644 (file)
@@ -19,7 +19,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <au1000.h>
 #include <au1xxx_gpio.h>
index 12d6edee895eff9e6a38012ffad36449710a734c..c0d56c130a59b8b5356654c8f037a870777ace32 100644 (file)
@@ -26,7 +26,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/irq.h>
index b1392abac809b7da4ed9a572e5ad44db585afedd..da591f674893c110efb3a635e92bf807ddf4946f 100644 (file)
@@ -30,7 +30,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/kernel.h>
index 32702e5fbf6761600bc09ec3cf4e392425c8d3fd..8fd203d4a339bd2a9f2626e9375432b6432793ae 100644 (file)
@@ -7,7 +7,6 @@
  * License version 2.  This program is licensed "as is" without any
  * warranty of any kind, whether express or implied.
  */
-#include <linux/config.h>
 #include <linux/device.h>
 #include <linux/platform_device.h>
 #include <linux/kernel.h>
index b035513fe30a782bd172d4b494fd69ad1213dc77..7504a63646161f81ec3d9176be903d8955c5da57 100644 (file)
@@ -29,7 +29,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/pm.h>
 #include <linux/pm_legacy.h>
index c93af224c1b389f1296c12951caf9ef5b0686992..de5447e8384920e1fec8a58a56758b60215239dd 100644 (file)
@@ -27,7 +27,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
 #include <asm/io.h>
index 97165b6b3894a07908e16379fe4b639ebe4cd163..cc5138ce9c955f6903628e3ad2cf088ea7970571 100644 (file)
@@ -25,7 +25,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index 842e1b5ac4a1a3a6454e448dc5a136584d3f5409..7e988b0b013021880fe0a4d4433d415bcc4a0df5 100644 (file)
@@ -33,7 +33,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel_stat.h>
 #include <linux/sched.h>
index 1c55c5f59d759ba5704b2fee60c18bb36c73eb5a..348c3024d3d114b4f8c382327656aff2d65f8821 100644 (file)
@@ -26,7 +26,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index f00ec3b175d8e46fcebb0e81eabb1afec75daa58..7a79293f852730e403309786bf4644d5b5cc7103 100644 (file)
@@ -27,7 +27,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index 41e0522f3cf1583b2eabf89da16bca3ff06db0f2..0a3f025eb02350d1efada78f91ef1ebadd385afa 100644 (file)
@@ -33,7 +33,6 @@
 #include <linux/bootmem.h>
 #include <asm/addrspace.h>
 #include <asm/bootinfo.h>
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 
index 0138c5b7c86010516dce394fc0757d8299586324..3e5729145c2b5d498f54e6bfc2acca498d3c853a 100644 (file)
@@ -25,7 +25,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/irq.h>
index c29852c24b4f98aa13581f9ee346c88cf72eb0e8..0942dcf69518806312e4aa702abd774956de6da4 100644 (file)
@@ -31,7 +31,6 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 2efae106464772a649e85bcfc6221506b4cd9075..d081640e2e00980079f2c0f2a0b3b14d3d41773c 100644 (file)
@@ -27,7 +27,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index 01ab284839596a8b931157dc3e66d4e648ec8aa3..8f02bb80a55a5c80ca8c13f1f8967040e6635498 100644 (file)
@@ -34,7 +34,6 @@
 #include <linux/bootmem.h>
 #include <asm/addrspace.h>
 #include <asm/bootinfo.h>
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 
index 638de7bb43f04d9ac1166f6d03ccbe12b7d82ceb..e917e54fc68359d7b7fd49db5b6f548f4f92d2ce 100644 (file)
@@ -28,7 +28,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index 0b4807dc9f44e3d93289f6091f495d750cef4051..1cf18e16ab54d7f02711356c073445771ebf992c 100644 (file)
@@ -23,7 +23,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index 13c2f6ca7e335a4bb5d8d21e3f8f731b51f23e2b..db27b9331ff3025be933d452f93851dd89f510ff 100644 (file)
@@ -23,7 +23,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index a45b17538ac988aecfb2f3e017520c6fa3718245..8b953b9fc25c7bd28116a562aee18f3e104d06fa 100644 (file)
@@ -23,7 +23,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index 5dd164fc1889290e243d0855ba1978aecf932dc7..2d49f32f46223a51196acd61c41fe2c60ef07a4f 100644 (file)
@@ -22,7 +22,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/irq.h>
index 30bb87282b1f6d913da0fd2b5e48276550f3f20e..1a9a293de6aba685833689b5ca2e4b5d3ea5111a 100644 (file)
@@ -23,7 +23,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index 1e59433dfd66a3ace22f153268be5fa2d8a9084b..ae3d6b19e94d48d5835a9d313d9d43ccb9c6ff37 100644 (file)
@@ -23,7 +23,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index 300797d5f558178fec6cdd2af5174b4b30971e58..46c23b66bc171883d2d9ae2e58dc8d750ffd7bab 100644 (file)
@@ -2,7 +2,6 @@
  * (C) P. Horton 2006
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/console.h>
index ca719d6398bd81b06689288b233f13873d210e04..c99714587ce8788031ee6f77db00a22347f89bf7 100644 (file)
@@ -9,7 +9,6 @@
  * Copyright (C) 2001, 2002, 2003 by Liam Davies (ldavies@agile.tv)
  *
  */
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/pci.h>
 #include <linux/init.h>
index 20c845c84d4b4902ab7415e579855de7880dd24a..efef0f57ce1e56d789c03ec986f72db966b2fb7f 100644 (file)
@@ -7,7 +7,6 @@
  * Free Software Foundation;  either version 2 of the  License, or (at your
  * option) any later version.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
index de433cf9fb5013b7c934e0b0bafef9038842e21e..22fb94b7c4409bef1cd197602183c2b00c33de3f 100644 (file)
@@ -10,7 +10,6 @@
  * Free Software Foundation;  either version 2 of the  License, or (at your
  * option) any later version.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
index 93167ecdb424cc0799ecbce7eef14f1e1972ae73..47ba0b6f210f70961c60bf350bd64dc8f6fd52d8 100644 (file)
@@ -13,7 +13,6 @@
  * Free Software Foundation;  either version 2 of the  License, or (at your
  * option) any later version.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index e8ec93e33fe60cc05eb0c7503992cbca38581d7b..455a65b91cb0b707e3656cc450238ae5f45a73cd 100644 (file)
@@ -13,7 +13,6 @@
  * Rewritten extensively for controller-driven IRQ support
  * by Maciej W. Rozycki.
  */
-#include <linux/config.h>
 
 #include <asm/addrspace.h>
 #include <asm/asm.h>
index 32a7cc7e4c658af62d269ebce4c51f0f7c6e0cdf..bf2858071f1fc79969b3e7d25e0d4b9a1fb61073 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1998 Harald Koerfgen
  * Copyright (C) 2002, 2004  Maciej W. Rozycki
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/linkage.h>
index 1edaf3074ee93f9bed2c287b21619b6c6fda7419..3027ce782797541fba21b43e6b8ded4ce6bcbe7a 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1998 Harald Koerfgen, Frieder Streffer and Paul M. Antoine
  * Copyright (C) 2000, 2002  Maciej W. Rozycki
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index a04aea6123daf5ab3bd461f9138e927777864ed0..639ad5562c6314cc39dc35e6264561ad1d8f6e29 100644 (file)
@@ -32,7 +32,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index bff5b1c174e4cff4a676b4df3fbde69472416527..8cbe8426491a44a9383b03dbd8b994e836863e2d 100644 (file)
@@ -32,7 +32,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel_stat.h>
 #include <linux/module.h>
index 2287b59536e5e68ee104cebe11e3c47cb928f97c..c64a7723cafb35c12b9c375d41918e7218df0bc1 100644 (file)
@@ -8,7 +8,6 @@
  */
 #include <linux/interrupt.h>
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel_stat.h>
 #include <asm/ptrace.h>
index f0a6a38fcf4d9fae50fc20da3b7c1505ebc451ef..2128684584f533a08b358793f5d45375b8f5e364 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 
 #ifdef CONFIG_KGDB
 
index 6a7ccaf9350247d1fea9a44d427151ee2e71b918..8e9cd8a9670a66d81ad8f8ca23407cf1b7b1119d 100644 (file)
@@ -1,5 +1,4 @@
 
-#include <linux/config.h>
 
 #ifdef CONFIG_KGDB
 
index 19deb153d00550e167d8c649881fad7ea6cc6210..bfc25adcfec6aabd47524fd28e0c11f9f3adc594 100644 (file)
@@ -28,7 +28,6 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 
 #ifdef CONFIG_IT8172_CIR
 
index da6ae0991199a4214bb6e2ad227864fb49351aa3..a4615a5904aa043bb4964751213b27f0f50b7fc2 100644 (file)
@@ -26,7 +26,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index 6e505af0cc08f6077d8f9b720350de6e856b7dd6..7d0a79be34d816ac885d7c4947d2360de1eb3b91 100644 (file)
@@ -35,7 +35,6 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/string.h>
index c8d0df7d0c36ceed402bb68913183e3518152556..385413e30fddfe32ad81927d680d8f02c64ac1bd 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 1996, 1997, 1998, 2001 by Ralf Baechle
  * Copyright (C) 2001 MIPS Technologies, Inc.
  */
-#include <linux/config.h>
 #include <linux/eisa.h>
 #include <linux/hdreg.h>
 #include <linux/init.h>
index a0674d73962ff950092546cab9aae3827a1c748d..a55cb4572dedee12bf1147a7bde0b1cd1ce3dd98 100644 (file)
@@ -27,7 +27,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
index 380046ea1db55103f5ddbcc2c23e459b951c04ac..9c43702e7a93828d42afd218353ff240e4e6dfa9 100644 (file)
@@ -29,7 +29,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <linux/errno.h>
index 308e6cdcd24523edba00e8b7d97d3d13cac603d1..6d4635d89d94893c075fa2a42a03daba4c085dd3 100644 (file)
@@ -33,7 +33,6 @@
  ***********************************************************************
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/kdev_t.h>
index f1bb6a2dc5fcdc6c898ba6921b84314e4f2815b1..ec28077d5ee2a165fe15929638c1c3bec83b5d19 100644 (file)
@@ -8,7 +8,6 @@
  * Kevin Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com
  * Copyright (C) 2000 MIPS Technologies, Inc.
  */
-#include <linux/config.h>
 #include <linux/compat.h>
 #include <linux/types.h>
 #include <linux/sched.h>
index d268827c62bdd167459e8e43d2467781ff9f879a..c09337b947b98e9947c01e3dd067a14fd0e6e356 100644 (file)
@@ -6,7 +6,6 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/ptrace.h>
index e045aba4ebda2268f464eb382ca03dcd40bd24b5..ba08f055feb2ed1b7ad2c14b8cb772e546c8353a 100644 (file)
@@ -11,7 +11,6 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/ptrace.h>
index 457565162dd56fc85583ea8d9d13315d93c6d430..ecfd637d702a51a9ec313cb30b398fb6386f3c0e 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
  * Copyright (C) 2001 MIPS Technologies, Inc.
  */
-#include <linux/config.h>
 
 #include <asm/asm.h>
 #include <asm/asmmacro.h>
index 8760131f89d9c57f572bd138ceb42258248a3914..666bc9014cbd94f35cf5772f537b854098a5f9a0 100644 (file)
@@ -3,7 +3,6 @@
  *
  * Copyright (C) 1995 Andreas Busse
  */
-#include <linux/config.h>
 #include <linux/sys.h>
 
 #include <asm/asm.h>
index 6ecbdc1fefd13acdd930998a07c19e633aaab354..719d26968cb236675ef6a32bfd33cb836e3238f0 100644 (file)
  *       breakpoints, single stepping,
  *       printing variables, etc.
  */
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/signal.h>
index 6888cde560afc1b277c3d5844a3fcdca55c1b1b9..5254a2222d2bc5ba5f343b3c1c141b6935876bae 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 2001 MIPS Technologies, Inc.
  * Copyright (C) 2002 Maciej W. Rozycki
  */
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/asm.h>
index c018098c9a5600ce721ae000f92ef567e92949ed..476c1eb33c945b9cf7e494c7ee7d72d968afc5f0 100644 (file)
@@ -13,7 +13,6 @@
  * Kevin Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com
  * Copyright (C) 2000 MIPS Technologies, Inc.  All rights reserved.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/threads.h>
 
index 5c9dcd5eed59e7cf3459381990e873346d329d5a..cde5e5afa179173ef74377cf2a0e0add6f01992e 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 1992 Linus Torvalds
  * Copyright (C) 1994 - 2000 Ralf Baechle
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
 #include <linux/init.h>
index a7d2bb3cf835fb7299a014540c585d86e9ce723d..450ac592da576c8314a1cec7d0851d891e4cc1d7 100644 (file)
@@ -5,7 +5,6 @@
  * Written by Ulf Carlsson (ulfc@engr.sgi.com)
  * sys32_execve from ia64/ia32 code, Feb 2000, Kanoj Sarcar (kanoj@sgi.com)
  */
-#include <linux/config.h>
 #include <linux/compiler.h>
 #include <linux/mm.h>
 #include <linux/errno.h>
index 0a71a4c337161c5304e86730769c82fffcb1e2cf..f44a01357adae3fcc1f560d747a3d5d74ba232ec 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 1996, 97, 98, 99, 2000, 01, 03, 04, 05 by Ralf Baechle
  * Copyright (C) 1999, 2000, 01 Silicon Graphics, Inc.
  */
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
 #include <asm/checksum.h>
index 9def554f335b8f430dd0483dcca482b83c083d07..d8beef1079020da34071e338ec3f08ab386a882b 100644 (file)
@@ -5,7 +5,6 @@
  *  Copyright (C) 2001, 2004  MIPS Technologies, Inc.
  *  Copyright (C) 2004  Maciej W. Rozycki
  */
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 199a06e873c6ab2e06166234a82d42fa1d3747e7..7ab67f786bfe277327f55517364855f4fc728b2f 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
  * Copyright (C) 2004 Thiemo Seufer
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 1d44025188d8328b08a519f81ecb6e113cf4cf20..362d1728e5317d7b99f014a045f2c821c341056f 100644 (file)
@@ -14,7 +14,6 @@
  * At this time Linux/MIPS64 only supports syscall tracing, even for 32-bit
  * binaries.
  */
-#include <linux/config.h>
 #include <linux/compiler.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 0d9c4a32a9c2dbc617fb727dd67f9d00bc509718..656bde2e11b14d37186b5d3ec850b5397a78167d 100644 (file)
@@ -10,7 +10,6 @@
  * Further modifications to make this work:
  * Copyright (c) 1998-2000 Harald Koerfgen
  */
-#include <linux/config.h>
 #include <asm/asm.h>
 #include <asm/cachectl.h>
 #include <asm/fpregdef.h>
index 283a98508fc801d81869eedd349a02f6251e6274..880fa6e841ee95f678993fb5dd17138f62f5af22 100644 (file)
@@ -12,7 +12,6 @@
  * Copyright (C) 2000 MIPS Technologies, Inc.
  * Copyright (C) 1999, 2001 Silicon Graphics, Inc.
  */
-#include <linux/config.h>
 #include <asm/asm.h>
 #include <asm/errno.h>
 #include <asm/fpregdef.h>
index e1b85e6c486a1cd392ba351e6f423325b3593636..d5c8b82fed7298c75b69a11623ff635106513b98 100644 (file)
@@ -10,7 +10,6 @@
  * Copyright (C) 2000 MIPS Technologies, Inc.
  *    written by Carsten Langgaard, carstenl@mips.com
  */
-#include <linux/config.h>
 #include <asm/asm.h>
 #include <asm/cachectl.h>
 #include <asm/fpregdef.h>
index 6344be46ca8c297494526c2c6e8fe9d60013388e..8f8101f878ca6e4920550b02c48526279165b758 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 2001 MIPS Technologies, Inc.
  * Copyright (C) 2004 Thiemo Seufer
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <asm/asm.h>
 #include <asm/asmmacro.h>
index 12d96c7d0bb22bc4b334fcf0004f87c3163a08d7..b4a34a625a2e5cc08f006b52776ba935cebf9598 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
  * Copyright (C) 2001 MIPS Technologies, Inc.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <asm/asm.h>
 #include <asm/asmmacro.h>
index 685698554a8acf275e3b368d69b75177684a3a9e..df8c4f8ccd61039a78b5eb429566b52d73e430f8 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
  * Copyright (C) 2001 MIPS Technologies, Inc.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <asm/asm.h>
 #include <asm/asmmacro.h>
index 0e632934cb7679a02806ba13c45c877371b2a0be..f04fe4f085c3461ff1a31e5dbaa6c8472ca2ab71 100644 (file)
@@ -13,7 +13,6 @@
  * to ABI64 calling convention.  64-bit syscalls are also processed
  * here for now.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <asm/asm.h>
 #include <asm/asmmacro.h>
index d3e087115023ad0ef6867b5bd12c504ac3b070c5..5edd8d4bb665c988f4cde96495b8643ecb7840e9 100644 (file)
@@ -10,7 +10,6 @@
  * Copyright (C) 1999 Silicon Graphics, Inc.
  * Copyright (C) 2000 2001, 2002  Maciej W. Rozycki
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/ioport.h>
index ce6cb915c0a7a703ab6c49a2e269d4de1256db38..b1f09d54ebe64396ba88f33ceabf0ed21b1c6419 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
  */
 
-#include <linux/config.h>
 
 static inline int
 setup_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
index 402efd27c79e87bfc7ed2c0e8a1cbc284313be7e..6b4d9be31615b3325d50d6fb48c6627c7f748850 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 1994 - 2000  Ralf Baechle
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
  */
-#include <linux/config.h>
 #include <linux/cache.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 6da8c68e89db23660868563359fe45a6b3e91d10..0721314db6573b4c0efcd2d35dc458ee99d09474 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
  * Copyright (C) 2001 MIPS Technologies, Inc.
  */
-#include <linux/config.h>
 #include <linux/a.out.h>
 #include <linux/capability.h>
 #include <linux/errno.h>
index 13ff4da598cdfbcff3b2d34677c0e89cd3b55e28..c2b1fcf6024ffc8ed902c3f55f6ca1cd5503634e 100644 (file)
@@ -11,7 +11,6 @@
  * Free Software Foundation;  either version 2 of the  License, or (at your
  * option) any later version.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 67971938a2cb4f575321a550ff5aee5deacd315f..8b95eca9ac74f85c37e9501c78f7186ce3328e17 100644 (file)
@@ -11,7 +11,6 @@
  * Copyright (C) 2000, 01 MIPS Technologies, Inc.
  * Copyright (C) 2002, 2003, 2004, 2005  Maciej W. Rozycki
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/module.h>
index 5b5a3736cbbcb002eaf0b61c4dd9507343df094f..7e7d54823486f0acc367451a527a2a481925b829 100644 (file)
@@ -72,7 +72,6 @@
  *       A store crossing a page boundary might be executed only partially.
  *       Undo the partial store in this case.
  */
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/signal.h>
index b84d1f9ce28ef169e0fbb633ba184c5341e03e40..0bb9cd8894567d80697e52f51ec0f2228ca18824 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <asm/asm-offsets.h>
 #include <asm-generic/vmlinux.lds.h>
 
index fc9b0e2a6be10d8bee0f2e8ce2fca3dc9c2bc854..d425120b0282f28e54c96f6c15444dcb20c689a6 100644 (file)
@@ -17,7 +17,6 @@
  *
  * Routines specific to the LASAT boards
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/crc32.h>
 #include <asm/lasat/lasat.h>
index 181bf68175fccf18255c81079928e56d6b8df83f..9e22acf03083217b7687a9997b0e21290797fff3 100644 (file)
@@ -17,7 +17,6 @@
  *
  * Reset the LASAT board.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pm.h>
 
index 3f64277429e43860483c2adbc7dd62f17537940c..2187e63c6d88e97b8c77806a6dfa6066a97240a1 100644 (file)
@@ -22,7 +22,6 @@
  *
  * Lasat specific setup.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/pci.h>
index e3d5aaa90f0db260ee78026df04ff603f4690c8c..6dd7ae1b7c25401a7c1cfda8817d6c28b4d10eb1 100644 (file)
@@ -20,7 +20,6 @@
 #include <linux/types.h>
 #include <asm/lasat/lasat.h>
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sysctl.h>
 #include <linux/stddef.h>
index c49a925d01690e38c8a16e6fefdbb020799391a4..6a68deb51aae96ce8d34fa6a3bf843c775fad5cb 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1994, 1995 by Waldorf Electronics, written by Ralf Baechle.
  * Copyright (C) 1999 by Silicon Graphics, Inc.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
index 11a5f015f04005eaf1ddbe9f70c3c649f6c4e0ed..be8261be679b2d769d67e5b7a3be8340752563e8 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1994, 1995 by Waldorf Electronics, written by Ralf Baechle.
  * Copyright (C) 1999 by Silicon Graphics, Inc.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
index 7f9aafa4d80e56eed12497964c2118072a86bc1a..a526c62cb76a90626d6461b31be1000f2858af38 100644 (file)
@@ -12,7 +12,6 @@
  *
  * Mnemonic names for arguments to memcpy/__copy_user
  */
-#include <linux/config.h>
 
 /*
  * Hack to resolve longstanding prefetch issue
index 56ca0c6a7178f935f30b6e730718b86e4d47425a..5b3390f64917fda0b53bc0d90be90c201048ae4a 100644 (file)
@@ -19,7 +19,6 @@
  * manipulation primitives for the Algorithmics MIPS
  * FPU Emulator
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <asm/processor.h>
 #include <asm/signal.h>
index 8cc9effcb832d5a6eccd161d632af28b92b82295..3a7c3d28aa0d4d5671af23b0ac417a6396a78a35 100644 (file)
@@ -15,7 +15,6 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/sched.h>
index df4e9473560441bb1b9fcec9038155c4edf61173..58a0fe883591467333c2624640ab5840e850b0ea 100644 (file)
@@ -19,7 +19,6 @@
  *
  * PROM library initialisation code.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
index fd492562584aabea44489f7ad622d49ebdacc90e..c89fcf9e9c22f51fd88c74e3a0f941a441edc168 100644 (file)
@@ -18,7 +18,6 @@
  * PROM library functions for acquiring/using memory descriptors given to
  * us from the YAMON.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
index 2c1ab1f19fdcdad3d7b813ed056b72dbdfc869d5..1a711bd79b51520e900271cccc981cbd350779f3 100644 (file)
@@ -17,7 +17,6 @@
  *
  * Putting things on the screen/serial line using YAMONs facilities.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/serial_reg.h>
index 7213c395fb6bc4752af4bbfb2cb3a4ab023c7b8f..0996ba368b2a26f32ad53f921e430798978ba4ad 100644 (file)
@@ -22,7 +22,6 @@
  * Reset the MIPS boards.
  *
  */
-#include <linux/config.h>
 #include <linux/pm.h>
 
 #include <asm/io.h>
index a9f6124b3a227ee722288a5b239ddbfff3f821dc..5e207760826bd92bd2e3d6732200a07fceadfc80 100644 (file)
@@ -19,7 +19,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel_stat.h>
 #include <linux/sched.h>
index 0766e434b6bde10283c6dc627eca4e330bafa5de..bc4ac6f018778251c687703992bc6a988b8adbcd 100644 (file)
@@ -15,7 +15,6 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index 6430f11f3a9596532b4c1b21bcbb3e69337d2bf3..a856bd6648798d4310c30517d2848c68287dbaca 100644 (file)
@@ -17,7 +17,6 @@
  *
  * SEAD specific setup.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index 5b84c7fe1022f6a70c8cf5a288c891a0ed799e46..ec549f3e2011fda818a0d69548c973285b78269b 100644 (file)
@@ -17,7 +17,6 @@
  *
  * Interrupt exception dispatch code.
  */
-#include <linux/config.h>
 
 #include <asm/asm.h>
 #include <asm/mipsregs.h>
index d16cf38220763f34f7ef1a52da91cc4be21076b7..b7444e74a6a1cdfa766a702d5776f819d56c6eeb 100644 (file)
@@ -17,7 +17,6 @@
  * Interrupt exception dispatch code.
  *
  */
-#include <linux/config.h>
 
 #include <asm/asm.h>
 #include <asm/mipsregs.h>
index 15a5dac4ae19ad1122b99e06c2f4abc1813e959b..3d4a785b565a4e17d65044c0b29df4c7521863ed 100644 (file)
@@ -16,7 +16,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
index 004070956cca6862da7115aaf955174ae67f152a..cb47863ecf10bd915be6aa517064d1ae7a0739ac 100644 (file)
@@ -18,7 +18,6 @@
 /*
  * Simulator Platform-specific hooks for SMP operation
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/cpumask.h>
index 18b968c696d1543c6601de6ef285eec2d16c8e78..e7f6003357f7f24cf9391ff10f8f9cfdc22ee638 100644 (file)
@@ -1,5 +1,4 @@
 #include <linux/types.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel_stat.h>
 #include <linux/sched.h>
index 75d887e89739e2a86f086a8ac33ac26537751a05..857b726f4d412874c12fe069fa8920ea8162e19d 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Ralf Baechle (ralf@gnu.org)
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index f9b129491b1e4e038019d715e0d4d63ae4b34629..2d71efb82ac568be0771e52be3702cbc02a39c5d 100644 (file)
@@ -18,7 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/asm.h>
index 83a56296be86d063c08296b6e39bb1df9ccaef85..ddd3a2de1d73ea8513ace939f4c40d0fd81e2205 100644 (file)
@@ -5,7 +5,6 @@
  *
  * Copyright (C) 1994 - 2003 by Ralf Baechle
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index 1cf3c6006ccd38f2ecaea4247489cdcdea413087..e19fbb9ee47f240e9785cef121e819aacc6f8436 100644 (file)
@@ -15,7 +15,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <asm/mipsregs.h>
 #include <asm/sibyte/sb1250.h>
index f6b3c722230c216c3d03d21ecc3be73d5ca0bef5..7fa5fd16e46bfe846b5c47063d7d85e5dab54f57 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 2000, 2001  Ralf Baechle <ralf@gnu.org>
  * swiped from i386, and cloned for MIPS by Geert, polished by Ralf.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/dma-mapping.h>
 #include <linux/mm.h>
index cd4ea8474f89377fd3c7fef67e5ba85563d02178..2eeffe5c2a3a40315c69cd0a6defc907cb4eb292 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 2000, 2001  Ralf Baechle <ralf@gnu.org>
  * swiped from i386, and cloned for MIPS by Geert, polished by Ralf.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/mm.h>
 #include <linux/module.h>
index 0c544375b856be81235c121c0fca81f0290deeb0..99ebf3ccc222b78ef8743b9f0bb5b6cba15d894c 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/highmem.h>
 #include <asm/tlbflush.h>
index 33f6e1cdfd5b409341488e4e2f15424f82451c3b..802bdd32aa2b17a5bda17f664d487fe92e8e9816 100644 (file)
@@ -8,7 +8,6 @@
  * Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com
  * Copyright (C) 2000 MIPS Technologies, Inc.  All rights reserved.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/signal.h>
index 148c65b9cd8bfb9df1ba633a926f84e707d33cd3..fc3c7878fb459eba0d8e45b15751313435d8a16d 100644 (file)
@@ -22,7 +22,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/smp.h>
index 4a3c4919e31489143c6a5b6c25e4334184ac89fd..4bdaa05f485b446e0d66587015cbd8378abf4a69 100644 (file)
@@ -5,7 +5,6 @@
  *
  * Copyright (C) 2003 by Ralf Baechle
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
index 3fe94202da8ca7c21f1d8d973537aeb18b663711..792c6eb442326790b72759d7ca5e8cd433f838af 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/swap.h>
index 965cb4c4359db6b03c8f737b0a609e6d134ad9b6..2cde1b77244304fdd530885c0f21e567e5fb2b56 100644 (file)
@@ -8,7 +8,6 @@
  * Carsten Langgaard, carstenl@mips.com
  * Copyright (C) 2002 MIPS Technologies, Inc.  All rights reserved.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 1bfb09198ce378ce4a45bc300fad743ed0cfe4bf..266a47d65eed06d29ee57745c12fac5959e8afd0 100644 (file)
@@ -8,7 +8,6 @@
  * Carsten Langgaard, carstenl@mips.com
  * Copyright (C) 2002 MIPS Technologies, Inc.  All rights reserved.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 54507be2ab5bb07f967f23e9c8305ab5f2ddf48a..e1a8139fc8fb2cdb3225114163bf7e4c8e70850b 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <stdarg.h>
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index d7dea0a136aabedd95a98f0646e756ffce77c8ab..b85a6521f72d12e3fd133e17b06f80a434d6be3a 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 
 #if defined(CONFIG_REMOTE_DEBUG)
 
index 1cadaa92946afcf2fa4204aaa6488d290caf9665..3d2712929293e4de845fd36979eacaf0cf53df80 100644 (file)
@@ -16,7 +16,6 @@
  *
  * Added changes for SMP - Manish Lachwani (lachwani@pmc-sierra.com)
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
index ce9fb2e3d952194945b51e6eef25363b2f7a8c1e..c73b0897dc52c25e77ed414ed3f1aa9bf0e9931a 100644 (file)
@@ -14,7 +14,6 @@
  * Louis Hamilton, Red Hat, Inc.
  * hamilton@redhat.com  [MIPS64 modifications]
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
 #include <asm/io.h>
index d0419480b097571fc857166cfd7d5d21d8e21d7a..b08e6a0456c1e182d1382a0bd68704c471b7d408 100644 (file)
@@ -39,7 +39,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/bcd.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 9803daa2a792fb54701a9f5c1a9530deec7a4f43..296d945bc248e5d9a7f529d21fa6ba549e64c328 100644 (file)
@@ -21,7 +21,6 @@
  * Author: Manish Lachwani, mlachwani@mvista.com
  *
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/bootmem.h>
 #include <linux/mv643xx.h>
index f0a6a38fcf4d9fae50fc20da3b7c1505ebc451ef..2128684584f533a08b358793f5d45375b8f5e364 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 
 #ifdef CONFIG_KGDB
 
index 97fb77dad7235b58d9d873f1adceee69fd62a35a..7228cd19e5ea828822574e4562562531153c52b5 100644 (file)
@@ -30,7 +30,6 @@
 #ifndef __OCELOT_C_FPGA_H__
 #define __OCELOT_C_FPGA_H__
 
-#include <linux/config.h>
 
 #ifdef CONFIG_64BIT
 #define OCELOT_C_CS0_ADDR       (0xfffffffffc000000)
index e92364482c7b09b65a276275ef4b649428b82268..4c50a147f42977a7c0be810a3fff6166c0bb71a0 100644 (file)
@@ -14,7 +14,6 @@
  * Free Software Foundation;  either version 2 of the  License, or (at your
  * option) any later version.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
index 9dcd154c77672b7856cbf67843a3c51bd64a921b..3fdcb64ff1e69bd8324d4499778122b26cb3d535 100644 (file)
@@ -14,7 +14,6 @@
  * Louis Hamilton, Red Hat, Inc.
  * hamilton@redhat.com  [MIPS64 modifications]
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
 #include <asm/io.h>
index a0ee006d75cfbb3e09acbbcf88341e2493ef1a9b..6a4519936ee97d1e2c0d6075134435ff28d55726 100644 (file)
@@ -40,7 +40,6 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
-#include <linux/config.h>
 #include <linux/bcd.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index f0a6a38fcf4d9fae50fc20da3b7c1505ebc451ef..2128684584f533a08b358793f5d45375b8f5e364 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 
 #ifdef CONFIG_KGDB
 
index 8bd9b844fa9e8fa0580ea8405fd5239d4a76edcc..047457f3b97a36434effdb25fccefdefff044006 100644 (file)
@@ -11,7 +11,6 @@
  * Free Software Foundation;  either version 2 of the  License, or (at your
  * option) any later version.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/interrupt.h>
 #include <linux/kernel.h>
index 6b4f577c275734790e92a65c3ecab89f97e1a93a..6509a9c9863c6d49fab630a840aeac2c67074abc 100644 (file)
@@ -11,7 +11,6 @@
  * Free Software Foundation;  either version 2 of the  License, or (at your
  * option) any later version.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
index 39da02b4e0761983a3ceeac332a7f6963492ec46..c580b1de33bc68e385f86c8cf22dc5680cfcaef2 100644 (file)
@@ -37,7 +37,6 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 87920b245931bc1571f54a1021955e2dd19668f5..439510af30372152656f3242a6599aa603ba3679 100644 (file)
@@ -16,7 +16,6 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/pci.h>
 
index a8a47b494b23be496a008eec42947bbbf3965a63..8e01d0c1b76b5714dd1441298e94e4ce9a9905c2 100644 (file)
@@ -15,7 +15,6 @@
  * Author: Manish Lachwani (mlachwani@mvista.com)
  *
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/pci.h>
 
index be1420126c42329e24c01c011784457c4a796c15..0c0c1e6519f9e4a35cb6a98b04b669ad4384c82a 100644 (file)
@@ -28,7 +28,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/kernel.h>
index f4ef1a35ca18bc6e4ad9bbb25cca9a5b6143463d..f6774f54cd3c61f5aa42e9c184d2d390780652e3 100644 (file)
@@ -32,7 +32,6 @@
  *
  * XXX: AT THIS TIME, ONLY the NATIVE PCI-X INTERFACE IS SUPPORTED.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/kernel.h>
index a3eebe5890a76db08e87fe305d6bc65dd76c1a6c..ba2e34b09231dccdb6bf8e587363ac9e90d648ba 100644 (file)
@@ -31,7 +31,6 @@
  * problem.
  *
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/kernel.h>
index 180af89bcb1ed133c2a296017c4d118b7d5f1493..17c7932cf0ae1775b89ab24584abfc4430d542c8 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 2000, 2001 Keith M Wesolowski
  * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
index 7cca3bde59b24d09c01d48dd816345c9e5fe89e7..80f5e8c4bcd47e203822d9dc3df74c7ceb3b00a1 100644 (file)
@@ -30,7 +30,6 @@
  * kernel mapped memory.  Hopefully neither of these should be a huge
  * problem.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/kernel.h>
index ba66f8c9bd4eec824b21882d8129d284289cf6dc..5ace368657ad691a352ca4dfa237a3bde96d8c00 100644 (file)
@@ -6,7 +6,6 @@
  *
  * Copyright (C) 2003, 04 Ralf Baechle (ralf@linux-mips.org)
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
index 8f18764a235956c6dbb14825b8cabba6daf8dd91..388a4df7304029bb6ff836ddc3086de605baa0ae 100644 (file)
@@ -23,7 +23,6 @@
  *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/sched.h>
index 0e791f4f6ea3bf41b384346c082737c30046ae8d..8ac81a9dc29327e743c7a9498090550b538065f0 100644 (file)
@@ -17,7 +17,6 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/ioport.h>
index fb523ebcafa8e8a5e6c8ee753cdbaa8c6a347e57..1f7c999eb7c63d69f6cea6aa08f28926d37eee41 100644 (file)
@@ -23,7 +23,6 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/kernel.h>
index a1f524fc4c107feb18ba11024c35fa0f7b49b963..b91d0aa3b7ed3667374d0873cc56782d07e570dd 100644 (file)
@@ -26,7 +26,6 @@
  *
  * Second level Interrupt handlers for the PMC-Sierra Titan/Yosemite board
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/kernel_stat.h>
index 165275c00cbb9c8fb42ebf9cbf64807725f67c95..9fe4973377c315ad0dd829946c4521e8d7a1c3ac 100644 (file)
@@ -8,7 +8,6 @@
  * Author: Manish Lachwani (lachwani@pmc-sierra.com)
  * Copyright (C) 2004 Ralf Baechle
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 989167b49ce92e70611940937a10c3a7efff5e28..ce8e4a7869b04276477b32d26b5a8d0bdbad30dc 100644 (file)
@@ -19,7 +19,6 @@
  * - Fix more bugs.
  */
 
-#include <linux/config.h>
 #include <linux/eisa.h>
 #include <linux/types.h>
 #include <linux/init.h>
index 18906af6969100e7c51f9b0c9a62a60ad1c3ad3e..aee567dc372ae5046487a77082a690700f2bbecc 100644 (file)
@@ -9,7 +9,6 @@
  *                    - Interrupt handling fixes
  * Copyright (C) 2001, 2003 Ladislav Michl (ladis@linux-mips.org)
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/kernel_stat.h>
index d7138906eb10e13fca53702ddf1464db66a1f57b..25097ecc9baa4b5eab82f45f914705ef8db985a2 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
  * Copyright (C) 1997, 1998 Ralf Baechle (ralf@gnu.org)
  */
-#include <linux/config.h>
 #include <linux/ds1286.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index a6b490e99709f49c064224d31fd7816a48cb474e..9094baf31d0e8c8d7b4c6d40ccc3ce1fbea4a96c 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 2000 - 2001 by Kanoj Sarcar (kanoj@sgi.com)
  * Copyright (C) 2000 - 2001 by Silicon Graphics, Inc.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/sched.h>
index 869566c360ae9b5fe5a4e7b2d848498d39dda975..a94e4c785805700648fcc3e192d672103af6f5ba 100644 (file)
@@ -8,7 +8,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/errno.h>
index 41c3f405e00c99c7ad98ed51d5db716fbd05f1c9..d777b7d1a9fec6c30e3058208887cc12ffbf1ff7 100644 (file)
@@ -3,7 +3,6 @@
  * Copyright 2000 - 2001 Silicon Graphics, Inc.
  * Copyright 2000 - 2001 Kanoj Sarcar (kanoj@sgi.com)
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mmzone.h>
 #include <linux/kernel.h>
index 6c00dce9f73fbd386e3366700c69c71c5a46f5c8..efe6971fc800f7ebdb6fedce429a3345b5aaf881 100644 (file)
@@ -10,7 +10,6 @@
  * On SGI IP27 the ARC memory configuration data is completly bogus but
  * alternate easier to use mechanisms are available.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 4322db57d3c15e9eb53f91fbe741ecb7f5577b1c..c17076108d47974f21fd9a89d40b461d9389806c 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 1997, 1998, 1999, 2000, 06 by Ralf Baechle
  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/timer.h>
index acbdad06fac18f157c6c2fbc7b929d809bf071ad..240a2f981d08e4f125eb5ee1daf9134b3c5ba1fc 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 2000 Harald Koerfgen
  * Copyright (C) 2002, 2003, 2005 Ilya A. Volynets
  */
-#include <linux/config.h>
 #include <linux/console.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
index 610df40cb82088241ed6fdcb52e98ed30cef455d..29d3bbb5847daf7061f7b2403fb152bafdc26173 100644 (file)
@@ -15,7 +15,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/linkage.h>
index d90a0b87874cb77bb7cc07fb1a1055adfa09c589..8236d0c48542cc7dbaedd672588e13f46e513283 100644 (file)
@@ -15,7 +15,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/reboot.h>
 #include <linux/string.h>
index efaf83efd2e4b271a8e09c71e2f6704c0d4b2258..7e088f6c4a8664dc9abc947d06c210fe3eb73629 100644 (file)
@@ -25,7 +25,6 @@
  * code to do general bookkeeping (e.g. update jiffies, run
  * bottom halves, etc.)
  */
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/sched.h>
 #include <linux/spinlock.h>
index 7721100d0275dd566c9aa67d1b5b1489beb00eed..c6ec748175b0eebfba871caefef83faa031f1e16 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/errno.h>
 #include <linux/console.h>
index ea308029450e581ef65978af5d58056f7f2af0f0..6e8952da6e2acf811541ea21873c83df229e9f4f 100644 (file)
@@ -16,7 +16,6 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/linkage.h>
index 482dee054e685d86bbd3652e6f7b4968939b9b77..bb90649fbc485b79ea3a04c17f6dc9a72d9f985e 100644 (file)
@@ -25,7 +25,6 @@
  * /proc/bus_watcher if PROC_FS is on.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/interrupt.h>
index fcc61940f1ff6444e8e03fed4cdf105a9cac555e..1d280aabcf6a74fcb90ae2f945fdd237ed8e40b4 100644 (file)
@@ -15,7 +15,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/linkage.h>
index 742043f8d755626f7f42afc3b5c5d864ac983f2c..3c33a4517bc3ac72aba110fe3766f3b116c5b373 100644 (file)
@@ -16,7 +16,6 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index fde4751c84fe6335108eb4eda4fab5566f6d1834..d0ee1d5b822388bfaf32496da80d9b8238903fdf 100644 (file)
@@ -15,7 +15,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/reboot.h>
index 1588f6debd90698522d9c278bedbab47d6696808..4b669dc86ef4de85e2de49ea9a6b50e414c6510f 100644 (file)
@@ -25,7 +25,6 @@
  * code to do general bookkeeping (e.g. update jiffies, run
  * bottom halves, etc.)
  */
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/sched.h>
 #include <linux/spinlock.h>
index f9e694988cdf18733682531f0f304321a6cf3635..a9a6dbc068495aadb870275dcf0907a380cc3534 100644 (file)
@@ -21,7 +21,6 @@
  * Setup code for the SWARM board
  */
 
-#include <linux/config.h>
 #include <linux/spinlock.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
index a050bb6ae7044939c7b129305f5ba8eb5a1dab07..870486d6cd75e3611ea73c02ed52bedc45df4ce8 100644 (file)
@@ -7,7 +7,6 @@
  *
  * Copyright (C) 1996, 97, 98, 2000, 03, 04, 06 Ralf Baechle (ralf@linux-mips.org)
  */
-#include <linux/config.h>
 #include <linux/eisa.h>
 #include <linux/hdreg.h>
 #include <linux/ioport.h>
index a42be00483e6d57f07bcdbe10b1267570939a974..ae9d5653a863e89a9d83f983e628bc0e873ca548 100644 (file)
@@ -23,7 +23,6 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/kernel_stat.h>
index 81a5acfe8c4279c8845c072b1ea724c7c8023385..64a1b394b2520f10ca649b3062fd54a507b94fae 100644 (file)
@@ -24,7 +24,6 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/kernel_stat.h>
index c67978b6dae494b5ec08f6b175f759be3c941faf..ee943cb1328cef6b27800141ffdcc93cdfd44710 100644 (file)
@@ -111,7 +111,6 @@ SuperIO/PS2/Mouse, using INTR via ISA IRQ12 (mouse not currently supported)
 JP7 is not bus master -- do NOT use -- only 4 pci bus master's allowed -- SouthBridge, JP4, JP5, JP6
 */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 6dcf077f61a0af526d625d6b683cec7e1502aeae..f0d70c47600528a7e3c7601d9608d8955c817c24 100644 (file)
@@ -42,7 +42,6 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 7df8b32ba2656863c45c8c069292906e566841aa..e44daf30a7c1a84c0da46a0cb4bb083cddbc09a5 100644 (file)
@@ -12,7 +12,6 @@
  * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com)
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
index 96e833cd4c14260e6ea40a77ebef990ceae6433d..66163ba452c809b31a25338271a1bbed15cd4f30 100644 (file)
@@ -11,7 +11,6 @@
  *
  * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com)
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/ioport.h>
index 951a208ee9b34effe43a823c4225a9ca595d987a..89596e62f9096cf5f9313c6d87e121bc58afaa5c 100644 (file)
@@ -9,7 +9,6 @@
  *
  * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com)
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/delay.h>
 #include <linux/proc_fs.h>
index be590edb0b83944b2c8dd7d083a83ec9dc2b6da6..ae1af6b21c45f7f629988913b4c3ee4b484f1d92 100644 (file)
@@ -15,7 +15,6 @@
  * Support for NEC-CMBVR4133 in 2.6
  * Manish Lachwani (mlachwani@mvista.com)
  */
-#include <linux/config.h>
 
 #ifdef CONFIG_ROCKHOPPER
 #include <asm/io.h>
index 1f6b24ef869535fc455518e1d6db4e45cf605d26..f45caccedc07176d3348b8f8e5b62c1d3e1ccf79 100644 (file)
@@ -14,7 +14,6 @@
  * Support for NEC-CMBVR4133 in 2.6
  * Author: Manish Lachwani (mlachwani@mvista.com)
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/serial.h>
index 53272a5c3cbe06efc02fa8272674d27aa4420c43..b20b93b2b95eac16e729c992bddccc001fc05eac 100644 (file)
@@ -14,7 +14,6 @@
  * Support for CMBVR4133 board in 2.6
  * Author: Manish Lachwani (mlachwani@mvista.com)
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/ide.h>
 #include <linux/ioport.h>
index 630730c32a5a1e9d794f82ac5c9c7c15c3ab4831..95c1b8ec428966f4e42491ae89ebef6202819db0 100644 (file)
@@ -22,7 +22,6 @@
  *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <asm/asm-offsets.h>
 
 /* we have the following possibilities to act on an interruption:
index 82fe6ba29727a6824bd4a83e5fef44322239f08f..52761d96f991a0aba0bd05ad61b7d90c041b0e35 100644 (file)
@@ -22,7 +22,6 @@
  *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 #include <linux/bitops.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
index f600556414d1a3afb0e7ae5d96f95832e3da5e1a..e81c9937d10a30a31917fc9c2a5311c51865f41e 100644 (file)
@@ -40,7 +40,6 @@
        .level  2.0
 #endif
 
-#include <linux/config.h>
 
 #include <asm/psw.h>
 #include <asm/assembly.h>
index fc107add627cce2608d2699c2e608e8f72205c67..6d57553d8ef886890dc358247f85adc7fdb52e2d 100644 (file)
@@ -24,7 +24,6 @@
  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/syscalls.h>
index 7d6967ee367c7f8ef5784281d0eb082af7a9a9b2..d3b8fc52dfc1e130a2c9a6e621116c62ed8a74f7 100644 (file)
@@ -9,7 +9,6 @@
  * Copyright (C) 1999-2001 Hewlett-Packard Company
  * Copyright (C) 1999-2001 Grant Grundler
  */
-#include <linux/config.h>
 #include <linux/eisa.h>
 #include <linux/init.h>
 #include <linux/module.h>
index 215d78c87bc515d2e5142de76430dbd9bc468b9f..ce78f412ff2ebff0bf95ea2a4d691903253fb179 100644 (file)
@@ -44,7 +44,6 @@
 #define EARLY_BOOTUP_DEBUG
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/console.h>
 #include <linux/string.h>
index adb3c64449102636616f95f7d091c1a499f738ef..5e7bb90e7e08e968e765179bcd9631e55b20cc78 100644 (file)
@@ -19,7 +19,6 @@
  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <asm/assembly.h>
 
 #ifdef CONFIG_64BIT
index 6df9f62cecb59cd94177331ca32914909ec70b5c..99d7fca9310475c51e89520b64cffa1e63fecf58 100644 (file)
@@ -26,7 +26,6 @@
  *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  */
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 453d01a9f97149ce44ea848667c1b3661e072e6f..789061f6ceb4827b6b28c1c8fb4fa8355220d1bf 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 2000 Hewlett Packard (Paul Bame bame@puffin.external.hp.com)
  *
  */
-#include <linux/config.h>
 
 #include <asm/psw.h>
 #include <asm/assembly.h>
index 278f4b9f6a3878806c7199c8dedec4e48d41d8be..3c7a3faf78edcc657443772e5fe785472df4ef8c 100644 (file)
@@ -27,7 +27,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/initrd.h>
 #include <linux/init.h>
index d6ac1c60a4713bf2f0266f99ca84c416016558e7..98e40959a564815df35e2d57272c3deb0e2d2d8c 100644 (file)
@@ -18,7 +18,6 @@
 */
 #undef ENTRY_SYS_CPUS  /* syscall support for iCOD-like functionality */
 
-#include <linux/config.h>
 
 #include <linux/types.h>
 #include <linux/spinlock.h>
index d286f68a3d3a6a6257dce190054b5db570e80fce..b74869803081900be006855604f941664a46d157 100644 (file)
@@ -9,7 +9,6 @@
  * environment. Based heavily on sys_ia32.c and sys_sparc32.c.
  */
 
-#include <linux/config.h>
 #include <linux/compat.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index eb35e1c0bb532b679b660351fc5e28db1e6ee8b8..5facc9bff4ef68b584aa32fb263b99461e90eb77 100644 (file)
@@ -10,7 +10,6 @@
  * 1998-12-20  Updated NTP code according to technical memorandum Jan '96
  *             "A Kernel Model for Precision Timekeeping" by Dave Mills
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 348344a84bf7615fa4a31cbf2cb81cc3ca378ff9..77b28cb8aca6f1cecab831f219308c787869e729 100644 (file)
@@ -10,7 +10,6 @@
  * state in 'asm.s'.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 92328fbddb3e8becf3ffa346a02d7d9988624e38..bd2230d6a2a69645352eb4b1c8c71b7a4115b5a5 100644 (file)
@@ -20,7 +20,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
index cc1c1afc31878cb2845677b64a21e58a497f99d3..920bdbf8404fa3c50768c7d628c4cb9d0cf174f1 100644 (file)
@@ -8,7 +8,6 @@
  * understand what is happening here
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index 94dcc03a28edb024cfdf04c459a3485436d8290e..9989495a51dd64e8c026c88c20fec99fc9dc2ae0 100644 (file)
@@ -23,7 +23,6 @@
  *    along with this program; if not, write to the Free Software
  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
-#include <linux/config.h>
 #include <asm-generic/vmlinux.lds.h>
 /* needed for the processor specific cache alignment size */   
 #include <asm/cache.h>
index 90f400b10282276b12eb5fba16ea14c6c61ff449..f352666b5b2f401d096c8c53e876d5ac1c4188e6 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright 2000 Grant Grundler (grundler@cup.hp.com)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/spinlock.h>
 #include <asm/system.h>
index e0661c2978ed697fe8f916f4d732c57a74f92b45..ecce3d35401ff87c5f0e35103fd47e3f73799c6f 100644 (file)
@@ -19,7 +19,6 @@
  * 
  * Fixup routines for kernel exception handling.
  */
-#include <linux/config.h>
 #include <asm/asm-offsets.h>
 #include <asm/assembly.h>
 #include <asm/errno.h>
index b7098035321f76a530adbe070ff6fa8d3f891e8d..5575e41f9d605b0687d681934f14b763a9218061 100644 (file)
@@ -53,7 +53,6 @@
  */
 
 #ifdef __KERNEL__
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/compiler.h>
 #include <asm/uaccess.h>
index 6317125626569ec713b5471adf07fb9b50b260ad..b64602a99d8972f92ede87f71007ca00ef30f5f7 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #include <linux/module.h>
 #include <linux/mm.h>
index ff2940548929b9084473052107140e569d737ad5..7ee84968087b3db9323045b67278423064da6b32 100644 (file)
@@ -13,7 +13,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 8ad6b0f33651406bc9bf0500190bad8099a3d525..5cb58757e1b1badcf32744c28a62abc87542941e 100644 (file)
@@ -19,7 +19,6 @@
 
 #include <asm/processor.h>
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/elfcore.h>
 #include <linux/compat.h>
 
index 6223d39177cb7c7bd9ee408be588e9cfa3d06014..a6920919d68eb20781f915baf953acd180ac4996 100644 (file)
@@ -3,7 +3,6 @@
  *
  * Benjamin Herrenschmidt <benh@kernel.crashing.org>
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/init.h>
index 365381fcb27c378db1ad9c219624a09518572b2a..8b4a4ee85eca24b8b229bf1c46b42c26bba82e6d 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/cputable.h>
index 1fc8632610030c7da76bd33933ecfda1b5373c35..f69af2c5d7b30faaead1c3f9473e6c8b91182674 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/cputable.h>
index abf7d42a8b07f6bee788f8ced65656188ef59aae..272e43622fd634218e89ca6ed0838a2d3d92055c 100644 (file)
@@ -10,7 +10,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/sched.h>
 #include <linux/threads.h>
index 8866fd26c6b97048dfb3c8142c95dcf4c43c3bcc..c03e829fee3c17a2f3d29cc2fe51e93167fbc3b9 100644 (file)
@@ -19,7 +19,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sys.h>
 #include <linux/threads.h>
index 221062c960c99ae23578e8942ee668e9214d27f0..54d9f5cdaab49eb7c1943aadbb026ba680bf6bf9 100644 (file)
@@ -18,7 +18,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <asm/unistd.h>
 #include <asm/processor.h>
index 0bfe9061720a55d80d350cee414a4a401bf90f86..1679a70bbcad7e6bfe2370c142c2bd9b33688db5 100644 (file)
@@ -13,7 +13,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <asm/firmware.h>
index 01f71200c60356077015d4da8c90bc5692e6784a..7e2c9fe44ac17046d1fca345526449c620f0d5f8 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/reg.h>
 #include <asm/page.h>
 #include <asm/mmu.h>
index b25b25902d15cffe6543bc115c879bb6eb067cdc..d88e182e40b3849ba085ec3f83265adac690e538 100644 (file)
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/reg.h>
 #include <asm/page.h>
 #include <asm/mmu.h>
index 47c7fa148c9a999dfbe38f8a1c62eb12e2236b5c..accb39d49911bee35bbaa7ed5277017661e0a0bf 100644 (file)
@@ -28,7 +28,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/mmu.h>
index 2590e97f553901d666f27091ac79d220fa10708c..adc7f8097cd4f49c0df89a9df04847f21a676828 100644 (file)
@@ -31,7 +31,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/mmu.h>
index 8cfd040d1f50c07211eca77ce4694d1cabf0f12e..e16eb2a33173142c828cfba102d248b8e982c7e8 100644 (file)
@@ -21,7 +21,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <asm/reg.h>
 #include <asm/page.h>
index 28941f5ce6732cf91e28d2b40ba52133f34d0dc5..901be47a02a98c65350038049c3cf7ddeec4870f 100644 (file)
@@ -19,7 +19,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/mmu.h>
index dd86bbed76271120c4f64ea39912e1e07d65a9e8..66877bdfe0b7b8c5a20d2d0bdc7df02b4594152c 100644 (file)
@@ -30,7 +30,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <asm/processor.h>
 #include <asm/page.h>
index d491052c8e0c5d3ab8c5ee1cfb70d7c1a93d45c5..4180c3998b398f47a1fd5cc3bcc779446901b8fb 100644 (file)
@@ -19,7 +19,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/smp.h>
index b45fa0e37212526614c88f5e384a5f5d7a59e1c6..01bcd52bbf8e11f8594987f41a69a795a848071b 100644 (file)
@@ -13,7 +13,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <asm/reg.h>
 #include <asm/page.h>
index d85c7c938eed37f075c4eca9c95c0510b739d1aa..30de81da7b40fe163693ca4400edd643c36e3943 100644 (file)
@@ -7,7 +7,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <asm/processor.h>
 #include <asm/page.h>
index 3d677ac996592d1cb4c15462499c41b6e0e1ecf0..ba0694071728f0fcd2a7af1ce0f27a03b4a68de1 100644 (file)
@@ -23,7 +23,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/slab.h>
index 24f6050aa4abb2d13a873659e737ae13442409bc..525baab45d2d83d667801ad7ba977b8863b94baf 100644 (file)
@@ -38,7 +38,6 @@
 #include <linux/ioport.h>
 #include <linux/interrupt.h>
 #include <linux/timex.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/slab.h>
 #include <linux/delay.h>
index f78866367b70b2abbee2f0ba1e746b775daca6b4..9f0898c897592d41760817b396adeff3b15b3784 100644 (file)
@@ -26,7 +26,6 @@
  *             for PPC64
  */
 
-#include <linux/config.h>
 #include <linux/kprobes.h>
 #include <linux/ptrace.h>
 #include <linux/preempt.h>
index d7f4e982b53924b61d11e1df357e73487cdc0eac..858f28ac8a06e4cee41e3b4696144dccb1724bc6 100644 (file)
@@ -40,7 +40,6 @@
        Author: Terry Greeniaus (tgree@phys.ualberta.ca)
        Please e-mail updates to this file to me, thanks!
 */
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/cputable.h>
 #include <asm/ppc_asm.h>
index 3a9b78d0354205d27a92bc1fab94235ea12f46ee..4cf0b971976bf8312d4f30bff958e08bc50f79fe 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/serial.h>
 #include <linux/serial_8250.h>
index 73edc3c16137f532a84754536da5509575d3b927..23f34daa044a0e7ad9cc6d2b6686c94c2c6611b7 100644 (file)
@@ -18,7 +18,6 @@
  * keyword - value pairs that specify the configuration of the partition.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/errno.h>
index c74774e2175d9075a8a60a9b0636f18bf5fddc66..58758d8833619f011e10801e0647a2c08b1e8ff1 100644 (file)
@@ -16,7 +16,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/sys.h>
 #include <asm/unistd.h>
 #include <asm/errno.h>
index 580891cb8ccb68766e4f5a28534eb29d81edea36..0c3c70d115c649003bba81361ce274b91591bb90 100644 (file)
@@ -14,7 +14,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/sys.h>
 #include <asm/unistd.h>
 #include <asm/errno.h>
index 9feeeef5a87535a298b90e95f145b4664862277f..3262b73a3a6898e926e33b5f3d97e97c3943e684 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index a0bb354c1c08154e070ea032b290b0e5a07d35d8..c68741fed14bbb356ac02aaf5cf86a064a3c6ef1 100644 (file)
@@ -7,7 +7,6 @@
  *      2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/threads.h>
 #include <linux/module.h>
index 8474355a1a4f46d8a9e1df29a2ad403fc847713a..1333335c474e6d4abb4c2da5f48a47c560739241 100644 (file)
@@ -2,7 +2,6 @@
  * Common pmac/prep/chrp pci routines. -- Cort
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/delay.h>
index 286aa52aae334db643c5769d5816ee7b6a8ba3f9..bea8451fb57b797d7d203d58ace1c0cdc45bb203 100644 (file)
@@ -13,7 +13,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/string.h>
index 32455dfcc36bb2a55d9728e7af15c48500668710..bdc3977a7b062c647fb788bda68f56ecab924df7 100644 (file)
@@ -21,7 +21,6 @@
 #include <linux/user.h>
 #include <linux/a.out.h>
 #include <linux/interrupt.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/prctl.h>
index e6fb194fe537dfb941261641f8d33b1eb92e5c4f..a0a2efadeabf8fbbed432e506360d14f85c1770f 100644 (file)
@@ -12,7 +12,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/spinlock.h>
 #include <linux/module.h>
index 4b052ae5dc344a39eb93b0ab4e5018558ee0bc65..e3b80f71748e96fd2cc064031d2241a25a83ee51 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/threads.h>
 #include <linux/smp.h>
index 2ab8f2be911e055c2d38b726816f9d7fc6b0f3ef..f598cb5195395d3ee3c53b584f8fdf71de0d4302 100644 (file)
@@ -16,7 +16,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/proc_fs.h>
index e4732459c48571c6508631b81c6ed46917dae082..a127a1e3c0976aea0134de07ce2c6d3d1f4d0ba6 100644 (file)
@@ -14,7 +14,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 320c913435cd149a40cd2f8e4f16385184d7bde0..4c524cb5218443240a04daaf3c60fd3553038f6b 100644 (file)
@@ -16,7 +16,6 @@
 #undef DEBUG
 
 #include <stdarg.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/init.h>
index 8c28eb0cbdac7392c3ed9d895e67aa81545b7613..1e95a9f8cda11c264bfdc71f2d3a311a9f1cc8ec 100644 (file)
@@ -16,7 +16,6 @@
 #undef DEBUG_PROM
 
 #include <stdarg.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/init.h>
@@ -988,7 +987,7 @@ static void reserve_mem(u64 base, u64 size)
 }
 
 /*
- * Initialize memory allocation mecanism, parse "memory" nodes and
+ * Initialize memory allocation mechanism, parse "memory" nodes and
  * obtain that way the top of memory and RMO to setup out local allocator
  */
 static void __init prom_init_mem(void)
index c42a860c8d25fd9fda90122b8aa1dd32655136b7..8797ae737a7bc55eee4b4d4397cdbde8e363c0ab 100644 (file)
@@ -10,7 +10,6 @@
 #ifndef _PPC64_PTRACE_COMMON_H
 #define _PPC64_PTRACE_COMMON_H
 
-#include <linux/config.h>
 #include <asm/system.h>
 
 /*
index 5563e2e7d89c8ca934d51ce11599579c7d0baad5..dea75d73f9831eb8c5d0a539374212dfb2b6472f 100644 (file)
@@ -15,7 +15,6 @@
  * this archive for more details.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 826ee3d056de09c8618b8671e8684a5e1b1c3edd..9b9a230349bc8fea17ae9b247641158efd6617e1 100644 (file)
@@ -17,7 +17,6 @@
  * this archive for more details.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index bd328123af7550ab032a0fe1f48d11cce0262624..c6d7b98af7d5b41f94cc7ccb16c8b0a85c22e3f5 100644 (file)
@@ -12,7 +12,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/sched.h>
index 0932a62a1c9637d6834c4872f7f5bca7e2b5d11d..ba7cd50d820d0e08d61179b73e63c7f80835146e 100644 (file)
@@ -2,7 +2,6 @@
  * Common prep/pmac/chrp boot and setup code.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/sched.h>
index 175539c9afa066c9b3d2b3596423b0cda5e63a0c..ac7276c406854c646b2238a16df1b2d214d87402 100644 (file)
@@ -12,7 +12,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/sched.h>
index d73b25e22fca892fd7b2f2dce8db2d94ddc0efda..320353f0926f99334aa3821d30cca981f28b4ff5 100644 (file)
@@ -17,7 +17,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
 #include <linux/smp.h>
index 6e75d7ab6d4d4757271c9bde664f4ead13724716..f72e8e823d7818458210a025538b606450e81f9e 100644 (file)
@@ -12,7 +12,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
 #include <linux/smp.h>
index 9adef3bddad41b335beb6b1188770941cd6353fd..f19e2e0e61e7b6635e69efc1b91458cf4805ebac 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/smp.h>
index c5d179d4f8189a5008000e6fb4e8b065be1e6213..46c56cfd1b2f9685aa69a2b4cbc879009b48c6e2 100644 (file)
@@ -17,7 +17,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 69773cc1a85f35a39b9914d17765e5ae513a6adf..7369f9a6ad25c2c4c70132c116e18b34b7ecb9cd 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <asm/processor.h>
 #include <asm/page.h>
index ec274e688816d399bb16a349f1eb96a6164b48c8..2e292863e982acac45b743248300d2820d73cbb7 100644 (file)
@@ -14,7 +14,6 @@
  *      2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/fs.h> 
index 4662b580efa1648939eb9e03ec932dd6b63680e2..0104350955501942833470f5a7c578d6125530cd 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/sysdev.h>
 #include <linux/cpu.h>
 #include <linux/smp.h>
index ee75ccf1a802b75831244071c828f3d7d0f6e825..579de70e0b4dc3d32f473576ee8cc125b0406a57 100644 (file)
@@ -14,7 +14,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/ppc_asm.h>
 
 #ifdef CONFIG_PPC64
index 26bd8ea35a4e915e10264202cc12a6937f8c4cbf..368a4934f7eec026eb1779e17443e0a9039cf92e 100644 (file)
@@ -11,7 +11,6 @@
  * life in portables, and add a 'performance/watt' metric somewhere in /proc
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/jiffies.h>
 #include <linux/kernel.h>
index 7dd5dab789a15fadcc707d3cfdb16a924c619820..774c0a3c50191a8effd7e05d9b2b5072c3a94eba 100644 (file)
@@ -32,7 +32,6 @@
  *      2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index fa6bd97b6b9d59c30fd4897dd241c53064d28339..3c668078e524fefb03c628dd1fd986d8745f092d 100644 (file)
@@ -14,7 +14,6 @@
  * This file handles the architecture-dependent parts of hardware exceptions
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 759afd5e0d8a3c8a567c7609facb75264930a4aa..5730906b23d53e8e8ab4857e84760f8777bd2240 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 #include <stdarg.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/sched.h>
 #include <linux/console.h>
index 5d29dcca523c113e62e9a6332552c145fbe01270..0835b4841dea41d8157fde5a7faa37f68a7aab12 100644 (file)
@@ -8,7 +8,6 @@
  *      as published by the Free Software Foundation; either version
  *      2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <asm/udbg.h>
 #include <asm/io.h>
index bc3e15be308759c4026379dde0a16551c75630e6..1a7e19cdab39c37a9f0e759a6b2177744ef3a967 100644 (file)
@@ -8,7 +8,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
index 09629aea3e4738d812280343756920edd55b0b74..9cb319992c3888dab15552977dab9dd4e0c4ec6e 100644 (file)
@@ -9,7 +9,6 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/ppc_asm.h>
 #include <asm/vdso.h>
index 4709f1d9542cde4aca0bfbc1e1bffc2ceefcb3ab..dc21e891d2e71b12ebc1dfb709357689dc089fd2 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/ppc_asm.h>
 #include <asm/asm-offsets.h>
index 7eebff03a0415c97d831c117d1269be34988e7a3..05909f75430707677ace1f5237245f1fb27442a8 100644 (file)
@@ -10,7 +10,6 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/ppc_asm.h>
 #include <asm/vdso.h>
index 0c6a37b29dde0eab7eecb80ef0a3ebf6aac3440b..68d49dd71dccfb8b2f1813b6576d7df60736479b 100644 (file)
@@ -10,7 +10,6 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/ppc_asm.h>
 #include <asm/unistd.h>
index cb4ae0a5edd098491fdc2a0145a15b35f7896c22..66a36d3cc6ad13ae02173f6b41a52fba3e043086 100644 (file)
@@ -9,7 +9,6 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/ppc_asm.h>
 #include <asm/vdso.h>
index 3b2dd7d0c1ebf88453cc80b8b7ae658216a20d2e..79796de1173743d20d34806609680c4967d94839 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/ppc_asm.h>
 #include <asm/asm-offsets.h>
index 4ee871f1cadbc776f6c5a512f74a86b27220b2d6..56e76ff5498f49fd2a5b590a8c599c1e606f41cc 100644 (file)
@@ -11,7 +11,6 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/ppc_asm.h>
 #include <asm/vdso.h>
index 7479edb101b8c704452af982349b44da49bbf164..17a83fa6dc52a969f1deab043e5e45e57132ab3e 100644 (file)
@@ -10,7 +10,6 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/ppc_asm.h>
 #include <asm/unistd.h>
index 9416b4ab92ec26e0328b29122bceaa6707efbae6..49ac3d6e1399a646309d3d4cdc049caedf02a721 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <asm/ppc_asm.h>
 #include <asm/reg.h>
 
index 8b25953dc4f02022d8c939579ca7bb3bdef66777..02665a02130d1730a918f2a3f43e1f170a4bca4c 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #ifdef CONFIG_PPC64
 #include <asm/page.h>
 #define PROVIDE32(x)   PROVIDE(__unused__##x)
index bee51414812ebda0241f99983a454709e3326e8d..c657de59abca8c8dfd48417e12ecb49c3fd75c53 100644 (file)
@@ -8,7 +8,6 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/cache.h>
 #include <asm/errno.h>
index 8362fa272ca58e9699c88c155c535a2e59fb4aeb..077bed7dc52b3726ae4ebd7ecb227832fd52de95 100644 (file)
@@ -12,7 +12,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/spinlock.h>
 #include <linux/module.h>
index c251d9936612916eb9f0329ebd4998d2be4ef1db..9590ba780b987c64afbe47da426b77c5964342e0 100644 (file)
@@ -10,7 +10,6 @@
  */
 #include <linux/kernel.h>
 #include <linux/ptrace.h>
-#include <linux/config.h>
 #include <asm/sstep.h>
 #include <asm/processor.h>
 
index b9ca84ed89278403058a055c37ebd0d4a3061b9e..c4c622d8e6ac253cbda0dffe6098401e7fa3fab5 100644 (file)
@@ -8,7 +8,6 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/errno.h>
 #include <asm/ppc_asm.h>
index 5891534727617836c6ebfffdb958f95edf12c107..69058b2873de8d6dfd76cb9b46736cd289d2c701 100644 (file)
@@ -2,7 +2,6 @@
  * Copyright (C) 1999  Eddie C. Dost  (ecd@atecom.com)
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/sched.h>
 
index 3d79ce281b677f52eb359f6067e945706cf963c4..376829ed22110170238fc4dd9c8bf1aa028550b3 100644 (file)
@@ -24,7 +24,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 4d006aa1a0d19c69ae7f129cb39192552e8aa705..838e09db71d97f56ca3721917dd2fd0ada843042 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index a0a9e1e0061e83de3ff6436faae4081ba77832c1..78a0d59903ee69d2b8ac96de20e18c17fd5f9206 100644 (file)
@@ -15,7 +15,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 5d581bb3aa1249fa8826fe16a648f818c3f33cae..123da03ab1186df9bb977d21e238e15c858331f5 100644 (file)
@@ -26,7 +26,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 94255beeecd371bec3df12f5212b9fe85c9e47ec..bd68df5fa78ac083bc0479946b1085c44934f5b7 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/reg.h>
 #include <asm/page.h>
 #include <asm/pgtable.h>
index 52e9142389598afd48061b026716b96c61a8c544..9bc0a9c2b9bcee59e6ca39fa5b9e7207dc7425b0 100644 (file)
@@ -10,7 +10,6 @@
  * described in the kernel's COPYING file.
  */
 
-#include <linux/config.h>
 #include <asm/reg.h>
 #include <asm/pgtable.h>
 #include <asm/mmu.h>
index 3cc6d68f71171f3d8953d753a7bd671c3b8fb474..1915661c2c817b65944877d4943b688cc273cc1d 100644 (file)
@@ -21,7 +21,6 @@
 #undef DEBUG
 #undef DEBUG_LOW
 
-#include <linux/config.h>
 #include <linux/spinlock.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
index b57fb3a2b7bb25767d10596f978a5ed4df985c47..0e53ca8f02fb88a4f14de9d40cf97dfc6d6d2722 100644 (file)
@@ -18,7 +18,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index d454caada265d599addca7877ced6e5f7a318e04..3ff374697e34945f15276ede561035b5aafccb3e 100644 (file)
@@ -22,7 +22,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 8b6f522655a62c56542629c2b7da3455ebd4b867..4b17a7359924ef5e339753194a25ab5a2b59254f 100644 (file)
@@ -10,7 +10,6 @@
  *      2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/bitops.h>
index 089d939a0b3e9829b037cc95d38e27e2180746f9..eebd8b83a6b05243f3633bbe4578b2a0e6db0355 100644 (file)
@@ -18,7 +18,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index e326e4249e1a24eb393d7c3628af9a046e43bf16..792086b01000e2ed12db55a3f48607cd4426dc17 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/init.h>
 
index e2051efa09c58d413d95814615c94f2d683b8b22..90a06ac02d5e5f35f44adf4366cc016b473463ee 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 90628601fac73ad59a0b4c92b15b008b96a4ddd8..8fcacb0239da8a9caedd78196159cc88307628b2 100644 (file)
@@ -20,7 +20,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/types.h>
index 7b278d83739ee64614ab0651ecfbc959749a1204..b1da0316549601745d6c21e49f6fd78098e766e0 100644 (file)
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 2ed43a493b310bfcd8a31ff25654d4b02ffd8af3..7cceb2c44cb911936c40dc96ea57f0ba0accf9c7 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/init.h>
index 6a8bf6c6000e29428d8d69f2b559363d8f8b146a..de0c8842415cb98232b3569dc78ba8f7e4b8765e 100644 (file)
@@ -16,7 +16,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <asm/pgtable.h>
 #include <asm/mmu.h>
 #include <asm/mmu_context.h>
index 8548dcf8ef8b35b1089c421785079a6116f932b3..dbc1abbde0381f6a821a2d87fc1b55ab0b00deda 100644 (file)
@@ -14,7 +14,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/ppc_asm.h>
 #include <asm/asm-offsets.h>
index 691320c90b780d105da66db8fa6fbeb706e3d13b..eeeacab548e655f79f2f0ea90c86d16dd2b47ffd 100644 (file)
@@ -12,7 +12,6 @@
  *      2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/pgtable.h>
 #include <asm/mmu.h>
 #include <asm/mmu_context.h>
index 02eb23e036d593eb9589313de023cdaafe31b4ef..925ff70be8ba93ed9133a1f123067ff8527e9c9f 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/init.h>
index e7449b068c8259cb2105522bf5f56fa0cd0da103..f6eef78efd293212dbb55966650c9a62d2a4ad89 100644 (file)
@@ -22,7 +22,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/init.h>
index 1455bcef489258a811bf9d4b961437d35b7f13f1..f0c6df61faa9e0a025243507d68553948e78ad92 100644 (file)
@@ -9,7 +9,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 
index 7e789d2420ba41730c97916b690ee4ded43285af..3e1c16eb4a639bf8d03f63614b674500d34e087b 100644 (file)
@@ -11,7 +11,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 3baceb00fefaacde0f2929e8572e17c8b3282960..3b5e563c279f97c32544da364a64670ea10789fb 100644 (file)
@@ -9,7 +9,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index f770cadb2080ab67c197143f21fdb648064fdcb2..c0d56d2bb5a5688ef63d05daa4c2d5357955b92b 100644 (file)
@@ -17,7 +17,6 @@
 #ifndef __MACH_MPC8540ADS_H__
 #define __MACH_MPC8540ADS_H__
 
-#include <linux/config.h>
 #include <linux/initrd.h>
 
 #define BOARD_CCSRBAR          ((uint)0xe0000000)
index 5eeff370f5fcaa7084f758110c2a1f710822a5c3..06a497676c992f5a7f2ab59af3309b0c24f72f61 100644 (file)
@@ -11,7 +11,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
index 48c8849c07ca39614caf78ae02206fa1a23dfdc1..1d51f3242ab1be40b768c7505610109139e0aec8 100644 (file)
@@ -9,7 +9,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 7bff3cbc5723b1615b28a46c1e62fe91cdebaccd..880c8083d16f5e19a093e48504dafaa2273e6be1 100644 (file)
@@ -20,7 +20,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
 #include <linux/module.h>
index 695ac4e1617e26ad1b336fe22c89d9c83eda56f7..9f2e4ed20a57d8af2af6cc76ca4586ce7e793681 100644 (file)
@@ -23,7 +23,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
 #include <linux/percpu.h>
index 00d112f92272fcda65c20adece8499b68e6bb318..d8c2a29b3c1547385bf59d3682888d348899bbe9 100644 (file)
@@ -14,7 +14,6 @@
  */
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index bdf6c5fe58c02e9346c3334041a668f646687e81..46aef064074267c7229a821c4738182808e70588 100644 (file)
@@ -14,7 +14,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index f1d35ddc9df3b49a37563de6978c3f79ffd8d416..2d22cd59d6fc40ae0a617b3e4d72538aa91139b3 100644 (file)
@@ -21,7 +21,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
index ede2cac46b6d0899b76b6cd426fb9cceb764df8b..c8670f519734aab795e40d4fc8b10e247b9dccbb 100644 (file)
@@ -18,7 +18,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
index 3dcc5d8d66b96f8abd49183030837c19d13fe9da..1350294484b62e191a131daa99dbd6f8de51aab2 100644 (file)
@@ -26,7 +26,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
index c7fea2cca5346fbbd675233bc2506fd1adc9576b..9d9d82dd32ba8d466f5794e6dfaad2685ffb2f3c 100644 (file)
@@ -32,7 +32,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
index 53515daf01b18196ab671f56b485330247833807..66c253498803b114ef7af3e82ff9b47f3bb900f8 100644 (file)
@@ -2,7 +2,6 @@
  * CHRP pci routines.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/delay.h>
index 18d89f38796b458d9953b93672893c528b537acf..1f1771b212b441b86b038d730ec57b3b72e799c4 100644 (file)
@@ -8,7 +8,6 @@
  * bootup setup stuff..
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index b616053bc33119d5a3b6e3523824483f7fe3aea1..c298ca1ea6800b18483c6817fffff587707bc655 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/smp.h>
index 33bb4aa0e1e819df8464376de3064b48622f76b1..f70e820e73046e760f8ef02991a2e080d251a7dc 100644 (file)
@@ -23,7 +23,6 @@
  *   Created, December 13, 2000 by Wayne Holm
  * End Change Activity
  */
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/init.h>
 #include <linux/threads.h>
index 438e2dba63b59526f8e0356e6be776b86c850b64..a7769445d6c701c2ec25fc386b091e1d852df89f 100644 (file)
@@ -6,7 +6,6 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/threads.h>
 #include <linux/module.h>
index 66c77e4f8ec2441c932d30f26db8a5d1e3e209ce..c877074745b26ba7bf442efb21ca738736b565d2 100644 (file)
@@ -16,7 +16,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/threads.h>
 #include <linux/smp.h>
index 6f9d407a709f21334f1fd3be58cf2685174a2787..2eb095edb472c213f0cf8a2589a5424913572952 100644 (file)
@@ -14,7 +14,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 4e32a5417fd14897e17cf1bf69ae3fa6b5c43ed0..5cf90c28b141c6887a9d2a533065dae2cfab297f 100644 (file)
@@ -13,7 +13,6 @@
 
 #define DEBUG
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
index b9a2b3d4bf3323d6a04bf7f91f6f158d01b10030..9f7579b38c72db2f5df5d80af6a493bbba80371e 100644 (file)
@@ -11,7 +11,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index c7a27eddca6d4b96f002f2c5b5a3725933849089..69f65e215a5c8baa9fe7895542f1c84b9cf83780 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/fb.h>
 #include <linux/backlight.h>
index eacbfd9beabcd8c47f27ee81158f44bbc3519d85..cb257aeb91f6249d4fb2132fbf022e9924e2c8a2 100644 (file)
@@ -9,7 +9,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/init.h>
index fb977de6b704a88a4a27c3567bb68bc5334a84a8..6be1a4af335973cc057cec26bdb9bc6080e93cae 100644 (file)
@@ -14,7 +14,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/ppc_asm.h>
 #include <asm/cputable.h>
index af2a8f9f122214328d7733ddbe6ef80179a645ef..62926248bdb8342b665ee94f87ca3f972b57282c 100644 (file)
@@ -13,7 +13,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/errno.h>
@@ -68,7 +67,7 @@ static unsigned int cur_freq;
 static unsigned int sleep_freq;
 
 /*
- * Different models uses different mecanisms to switch the frequency
+ * Different models uses different mechanisms to switch the frequency
  */
 static int (*set_speed_proc)(int low_speed);
 static unsigned int (*get_speed_proc)(void);
@@ -268,7 +267,7 @@ static int pmu_set_cpu_speed(int low_speed)
 
        /* Make sure the decrementer won't interrupt us */
        asm volatile("mtdec %0" : : "r" (0x7fffffff));
-       /* Make sure any pending DEC interrupt occuring while we did
+       /* Make sure any pending DEC interrupt occurring while we did
         * the above didn't re-enable the DEC */
        mb();
        asm volatile("mtdec %0" : : "r" (0x7fffffff));
index b57e465a1b71d3ceb3409f6efd84a233c0c871e5..f08a14516139f5f5c042c4d4a6a1b1f8ff910a57 100644 (file)
@@ -10,7 +10,6 @@
  * that is iMac G5 and latest single CPU desktop.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/errno.h>
index 85e00cb0006ea47c400b28141dcc33b37625e529..f8313bf9a9f75aabe7d78f2215f41970756f0bc2 100644 (file)
@@ -16,7 +16,6 @@
  *   - Split split split...
  *
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/delay.h>
index c896ce83d412917da2820292c32c9b6e4c32dcd1..ceafaf52a66878b6b2e994232900e3eb708c2395 100644 (file)
@@ -30,7 +30,6 @@
 #undef DEBUG
 #undef DEBUG_LOW
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/sched.h>
 #include <linux/init.h>
index 262f967b880a151ca132df5d6933b01637974cec..41fa2409482a887e2b927fde6883f3d65675e82c 100644 (file)
@@ -8,7 +8,6 @@
  *
  *  Todo: - add support for the OF persistent properties
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/stddef.h>
index a3bd3e728fa3bfa587a1cb00834d654a4afe557d..d6eab8b3f7dee061481794c2f82f4d32931252d0 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/delay.h>
index 93e7505debc59813fb30dc82afadf96b963ef0bc..b117adbf957182251da8c1a5b4701ddc844879e8 100644 (file)
@@ -5,7 +5,6 @@
  * FIXME: LOCKING !!!
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/delay.h>
 #include <linux/kernel.h>
index 9f6189af6dd6b2c5daab9fb1d5d70a3e574ee233..532bce57c0dce9030f52fae9d4f587fa1dcd74ea 100644 (file)
@@ -15,7 +15,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/init.h>
 #include <linux/sched.h>
index 89c5775f83beffb4947fb5c466bb6478096e84e4..8654b5f07836ae3d1ff502b5003a7a2e04704dc6 100644 (file)
@@ -23,7 +23,6 @@
  * bootup setup stuff..
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
index 22b113d19b2442089726f7901a5e2e07a3a3b491..1174ca128efa4aa160b13790937ad418366e280a 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/ppc_asm.h>
index 1065d87fc27904f63b182f696f7f8fd8f8e9059b..63affcb24219b6c23e17e4442593b8c1d8c2090b 100644 (file)
@@ -21,7 +21,6 @@
  *  as published by the Free Software Foundation; either version
  *  2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/smp.h>
index 890758aa9667e61fac3208c0600ad8fb39998f23..a4173906e94525a56184ece0d3d1db89e4d66bf3 100644 (file)
@@ -9,7 +9,6 @@
  * Copyright (C) 2003-2005 Benjamin Herrenschmidt.
  *
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 06c8265c2baff77bdc7aa06d8f0f951b57e675d7..6124e59e1038153e66ba3b4c5fe770c095dd3acf 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index b4fa9f03b46142d28508af24219d69b2cb2e3d72..37e5b1eff911faeaaa1a9d4c7f36b142284dad10 100644 (file)
@@ -8,7 +8,6 @@
  *      as published by the Free Software Foundation; either version
  *      2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <asm/udbg.h>
 #include <asm/processor.h>
index 0ec9a5445b95e177f2853d235037acb14508df06..aaad2c0afcbf93868c581bf9d1f971bcbdc41794 100644 (file)
@@ -175,7 +175,7 @@ static void eeh_report_failure(struct pci_dev *dev, void *userdata)
  *
  * pSeries systems will isolate a PCI slot if the PCI-Host
  * bridge detects address or data parity errors, DMA's
- * occuring to wild addresses (which usually happen due to
+ * occurring to wild addresses (which usually happen due to
  * bugs in device drivers or in PCI adapter firmware).
  * Slot isolations also occur if #SERR, #PERR or other misc
  * PCI-related errors are detected.
index 8cfb5706790ecd395bd7039463a435a6a0574405..d67af2c657544ef5b0a6386a9c45a31de2fb4681 100644 (file)
@@ -24,7 +24,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/slab.h>
index 27480705996f988ae6335925930bb08911afa173..3aeb4069904203e8e2c7d6e4f71bdc70a7d2da01 100644 (file)
@@ -21,7 +21,6 @@
 
 #undef DEBUG_LOW
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/dma-mapping.h>
 #include <linux/console.h>
index b3197ff156c6ab277b46abe710eb8fbc0a6c18e4..999509d28af8196cc975cafa239966b8f4cb823f 100644 (file)
@@ -18,7 +18,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/cpu.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
index 3cf78a6cd27c32d55659cec05350ed28f8835a86..4ad144df49c213406a55247b842ffbf191c88286 100644 (file)
@@ -14,7 +14,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 19c03dd43000fdd46c31413da79e7a11d7e5397c..4d935d0817f2247eb1000fd0cb46fcc54b4aa5cd 100644 (file)
@@ -8,7 +8,6 @@
  *  as published by the Free Software Foundation; either version
  *  2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/threads.h>
 #include <linux/kernel.h>
index 7c7f34ce4986621808f0d5d731f55f9fe19e6711..e32fadde1f7746c92c1231a6161fa949de3a534f 100644 (file)
@@ -27,7 +27,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/slab.h>
index 71a3275935eca1cc76ec0d3f75ccddb62b5461a1..e983972132d8cf2f37d3cbd1fecf5ac19bb8eed3 100644 (file)
@@ -9,7 +9,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 28df9c827ca66b409d0b0427f09c22944dad2079..63ff89575cbb8b6e71c6b62438496b0216478885 100644 (file)
@@ -17,7 +17,6 @@
 #undef DEBUG_IRQ
 #undef DEBUG_LOW
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 0741df8c41b7c3c60cf42eb2170d48e7b36b4af9..179b10ced8c773ee75d6c5dfb290dd35b84d25f0 100644 (file)
@@ -8,7 +8,6 @@
  *      as published by the Free Software Foundation; either version
  *      2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/smp.h>
index 1e113d0f59b8e3cbfa760f1aec1734c4b530c313..b81a367dc2780bb15e49545e1d8ac92fe73a4d24 100644 (file)
@@ -28,7 +28,6 @@
  * is compatible with normal ttyS* devices.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 4edeede9ccfdbc4c2636cf5b83b672ee182629e0..cd5f3faa4b20398e0a9bc58e5edcc60273a4576c 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index f1c7392255f869693740a9a2cd5ff4ab353f0759..e5f943045afa50acb2182f2cd86b125133c85a64 100644 (file)
@@ -13,7 +13,6 @@
 #define _cs4218_h_
 
 #include <linux/types.h>
-#include <linux/config.h>
 
 #define SND_NDEVS      256     /* Number of supported devices */
 #define SND_DEV_CTL    0       /* Control port /dev/mixer */
index a892356d5c3b66cf6bbd34dffd2657058ef9ee96..f5f300fc213de91631e135e1289d3887e38ef864 100644 (file)
@@ -14,7 +14,6 @@
 #include <linux/sched.h>
 #include <linux/timer.h>
 #include <linux/major.h>
-#include <linux/config.h>
 #include <linux/fcntl.h>
 #include <linux/errno.h>
 #include <linux/mm.h>
index ece6a9fbe09bf1d8fda9c45552bbef95ff43d750..a695375c3e4c58f37906657914aafc66c37d2f33 100644 (file)
@@ -22,7 +22,6 @@
  * small packets.
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index 62f68d6181c652b3bd8be030463b78e260f89db0..8b6295bbb564626ff5fab4466b0536bc94ec618a 100644 (file)
@@ -28,7 +28,6 @@
  * Thomas Lange, thomas@corelatus.com
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index 312af0776c315bc6f702df608c3264201f2db26f..cfad46ba17e38040ef7f51922edfb7c1ae282cae 100644 (file)
@@ -4,7 +4,6 @@
  * also relocates SMC2, but this would require additional changes
  * to uart.c, so I am holding off on that for a moment.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index b2bba052ab934af82bda92dc5650d46ab6fbf6a3..265fcd3c6ab296bbadacf9986ed6a724df2b3161 100644 (file)
@@ -35,7 +35,6 @@
  *           /Jes
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index bbe47c9bd707cf25f0cbc36b8f83360ebc09582e..bc50ed11957d8406ea4947300cc89fccadedb15b 100644 (file)
@@ -12,7 +12,6 @@
  * Miscellaneous Amiga stuff
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 4d31b824bbd175c999211eafa96c10b3675cdf04..8f0ef04b8de509b8ccf86caded71640ee912e0f6 100644 (file)
@@ -18,7 +18,6 @@
  *    2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/ppc_asm.h>
 
        .text
index 073830a8559ac5c7d2f3f7857bda20f3d767d2d9..8e1fccd96fc029a252f58c67c181bca0012abc10 100644 (file)
@@ -13,7 +13,6 @@
  */
 
 #include <stdarg.h>    /* for va_ bits */
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/zlib.h>
 #include "nonstdio.h"
index 4f00c93ac870240cac5807aadb8c29c15120198c..fc5b7204194802db616c2271208eaadc79fc219f 100644 (file)
@@ -2,7 +2,6 @@
  * COM1 NS16550 support
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/serial.h>
 #include <linux/serial_reg.h>
index 3a51b1062940f5d2cf8ca26fcf460ce632201c5f..840bff2a45fb8bcaf2c06eb252bb0dbe769ae303 100644 (file)
@@ -8,7 +8,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/config.h>
 #include <linux/string.h>
 #include <asm/reg.h>
 #ifdef CONFIG_8xx
index 160da1006ff8f5bca910a1b9d779b1a3aab79f54..1b4d7b1d4ec173740cdc275cd6702853df064240 100644 (file)
@@ -11,7 +11,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <asm/reg.h>
 #include <asm/cache.h>
 #include <asm/ppc_asm.h>
index 1d2778e248c6ad5439979266e887f9eab6df6b57..cacc40fdbcfac140a9461541bd2f75cc65c37ac1 100644 (file)
@@ -8,7 +8,6 @@
  * use COM1 instead of SMC1 as the console port.  This kinda sucks
  * for the rest of the kernel, so here we force the use of SMC1 again.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <asm/uaccess.h>
 #include <asm/mpc8xx.h>
index b94e142ad8922023056b8add13fd8236ee6cd380..14a4b56d4f8493343ae76108aacce2da66f5eb5f 100644 (file)
@@ -9,7 +9,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <asm/io.h>
 #include <asm/mv64x60_defs.h>
index 3865f3f8dcd1f7c1e8896f3f58148afb4f994dc2..10219eeca054c22f24b1693c14de80f035ec8349 100644 (file)
@@ -6,7 +6,6 @@
  * Currently maintained by: Tom Rini <trini@kernel.crashing.org>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/string.h>
 #include <asm/bootinfo.h>
index 2678c224af2237cadc79ff0fc27546a00816bd82..0b3978632acaed1ea89558dd542b58794cba68c1 100644 (file)
@@ -10,7 +10,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <asm/reg.h>
 #include <asm/io.h>
index a212b5b988cb0e9143581f266c714bf066e7e7e3..96eaebb78df58498cd9934bc23dd9e19cef06c83 100644 (file)
@@ -19,7 +19,6 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <asm/io.h>
 #include <asm/mv64x60_defs.h>
index d97f2ee6f04ec4a80324c254446f645a65196762..79a1bbcbc6c5f30da0d39a68924e2f9f8ddf548e 100644 (file)
@@ -9,7 +9,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <asm/io.h>
 #include <asm/mv64x60_defs.h>
index 71ff20fd494a6d3c38dc3aac631c3d9f06a07561..28b3108083edd691c65aa24efc5b3304198c4881 100644 (file)
@@ -9,7 +9,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <asm/io.h>
 #include <asm/mv64x60_defs.h>
index 63def9d13d701347f0513c9bac3dc2efb55a447a..0086e1cfb48cbb1f66442e2c31a77d9de94b3668 100644 (file)
@@ -4,7 +4,6 @@
  * In the past: Gary Thomas, Cort Dougan <cort@cs.nmt.edu>
  */
 
-#include <linux/config.h>
 #include <linux/pci_ids.h>
 #include <linux/types.h>
 #include <asm/residual.h>
index 0cad2f557a1e814962c6cb1f85c6e844cb0e2835..5b3a6c6f113b28953487abd02008421da9729996 100644 (file)
@@ -13,7 +13,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/config.h>
 #include <linux/pci.h>
 
 #include <asm/bootinfo.h>
index 3d78571ad94529b292cce24bdb9c01fd6d920558..a5df089636955cc3ee327801ae86cfbb6db89ca0 100644 (file)
@@ -15,7 +15,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/config.h>
 #include <linux/string.h>
 
 #include <asm/page.h>
index 1964493cf3bdc0337342202b06b0f0c18b75ad6c..7b5924cc3c026eaed2f4d8d91289d58e2c44d29c 100644 (file)
@@ -9,7 +9,6 @@
  * "as is" without any warranty of any kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <asm/uaccess.h>
 #include <asm/mpc52xx.h>
index 0c52f5c784a2eee9e2a91e6a70007e14a23789b0..781e040a97d1443cb6fcf9e8916cb0e2d0579c61 100644 (file)
@@ -12,7 +12,6 @@
 
 /* This code assumes that the data cache has been disabled (L1, L2, L3). */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/serial_reg.h>
 #include <asm/serial.h>
index 3f2ed53f793ae880578ac23f3179c253e6013154..6ff2701598f24c804415886a2a0e97daae886c99 100644 (file)
@@ -12,7 +12,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/config.h>
 #include <linux/string.h>
 #include <asm/ppcboot.h>
 #include <asm/ibm4xx.h>
index 67222d57c3456476f797538f3d90fb968a81fd53..f39d01e0619de89080c704086c85047b6c84e466 100644 (file)
@@ -6,7 +6,6 @@
  */
 
 #include <linux/types.h>
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/ctype.h>
 #include <asm/ppcboot.h>
index 2533113c1cc50d94cc8c604f672c8a536efdab69..0c021556d78e25a822e573aea1d521fd06c0d8e5 100644 (file)
@@ -13,7 +13,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <asm/cache.h>
 #include <asm/ppc_asm.h>
 
index 2f5c5e1576175ffb5bc4e3a7e9868dda7bc1caf7..1f91eca2f3d70125f7e408a44d9e28feb16e4ec7 100644 (file)
@@ -8,7 +8,6 @@
  * #defines from the assembly-language output.
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index d7bfd60e21fc2e0cc8660bd44e5e7cb4f75706c0..6a674e834eebbf65eccbaf25ff698cceccec81a4 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/ppc_asm.h>
index 61465ec88bc7268b0325001bac308c28d1db8588..10fec7363962ed15b6eedcb9b825644f1c2263c0 100644 (file)
@@ -22,7 +22,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
index 1adc9145516f9eaf88a14047031038821ee67940..a9d455369dc6b5a6ddb9455747c695dbe4079d04 100644 (file)
@@ -19,7 +19,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sys.h>
 #include <linux/threads.h>
index 01303efeddadb5a7a268da24363d43730068348f..100052aaea9aa9831a3bc0ed8ff1aa37dd74fbd5 100644 (file)
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/mmu.h>
index 0d8b88219d3880ac2e8d966a77850cfe99e8853a..7e44de5a26db447689bf1424ce750758893fa4f0 100644 (file)
@@ -28,7 +28,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/mmu.h>
index 10c261c6702199384dd8aa52444c1d81136f9081..51da157a629e436e2b88c6df17c2c44f1637f3dd 100644 (file)
@@ -31,7 +31,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/mmu.h>
index 7a2f20583be406beb0f42cb16f64e3a514fd1a04..944c35c242785b94b66474dd7549fd6284e9635e 100644 (file)
@@ -19,7 +19,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/mmu.h>
index dd86bbed76271120c4f64ea39912e1e07d65a9e8..66877bdfe0b7b8c5a20d2d0bdc7df02b4594152c 100644 (file)
@@ -30,7 +30,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <asm/processor.h>
 #include <asm/page.h>
index 5a936566fd6155bdf1b4ba71ba26164e7d2eef63..2fa0075f2b5f832f122d1ac196b011da9918dfde 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/sys.h>
 #include <asm/unistd.h>
 #include <asm/errno.h>
index 242bb052be679f66bca5345fdeda0f226ef90046..63808e01cb0b7cc51ea75c20885c630d8ef63ea4 100644 (file)
@@ -2,7 +2,6 @@
  * Common prep/chrp pci routines. -- Cort
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/delay.h>
index d61889c24046c9ce181f70808e8aa1833d2f8030..5f9ee7bb67ec32b7bca5557bde3dd0119a9b54d2 100644 (file)
@@ -99,7 +99,6 @@
  *
  ****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/mm.h>
index 75c64504374660d3191169417379458d0ae4cb19..bd129d3c2cc13af95228168f53d6cf76df5d2666 100644 (file)
@@ -10,7 +10,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/proc_fs.h>
index b250b1b539b681f9be079e0bb7bf60dd87bba9ea..50c1b4739ca7021e5b43d28f119edf39f45faf51 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/threads.h>
 #include <linux/smp.h>
index 4b4607d89bfa6e1c105a01d85c0a674748c5fa8f..faf2940300b0b79becf8bafecacb51161f5effa9 100644 (file)
@@ -2,7 +2,6 @@
  * Common prep boot and setup code.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/sched.h>
index 6a5694fcc711efefdc063e9b53d905b82a091dab..1576758debaf1cdee7b9f3b091dc1cbf983dd34c 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/smp.h>
index f77795a64daed9628c50b5885831377954c8006e..ca57e896a36c339196a9e23b1e15f3e918670760 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 53ea723af60aa5fff91a1ff057986584098f7285..6ab8cc7226ab232b220d9d555f0ed66358c0f6c0 100644 (file)
@@ -42,7 +42,6 @@
  *             "A Kernel Model for Precision Timekeeping" by Dave Mills
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 1c0d68026abd0b9e03381220a1339a9d681ae5b3..d7a433049b4857b3acf2caa59e6f7c981d1c5f21 100644 (file)
@@ -25,7 +25,6 @@
 #include <linux/user.h>
 #include <linux/a.out.h>
 #include <linux/interrupt.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/prctl.h>
index c450dc4b766e23b5588dccf0f57e42ea6e1ea22d..ea4aee6b20e6e6a8074b96c46aa8c52cc25c7e40 100644 (file)
@@ -4,7 +4,6 @@
  * Written by Cort Dougan (cort@cs.nmt.edu)
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/spinlock.h>
 #include <linux/module.h>
index 2e258c49e8bea826a05b377289e95c1ccb3fc744..84ed33ab4c2de8038a0891eb06ddda06e2484a31 100644 (file)
@@ -8,7 +8,6 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/cache.h>
 #include <asm/errno.h>
index e0152a9b26e68590950db9f96c9286d3e128fb75..0a0a0487b33435f350713fc730a8b370b5e43b17 100644 (file)
@@ -24,7 +24,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 4d006aa1a0d19c69ae7f129cb39192552e8aa705..838e09db71d97f56ca3721917dd2fd0ada843042 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 8e08ca32531a878d4b450910ab437c4125cdf6dc..5cdfb71fcb078ca50f56059a907e0104ab452194 100644 (file)
@@ -13,7 +13,6 @@
  *  2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 5d581bb3aa1249fa8826fe16a648f818c3f33cae..123da03ab1186df9bb977d21e238e15c858331f5 100644 (file)
@@ -26,7 +26,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 31d0a924317c7d94a6f7c87a6d23225e5b79205f..e756942e65c40fe482f3f223321938ffc9103f65 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/pgtable.h>
index c9bd184a295adad73d58108c19d76be395e2f18e..523392d460fa129aecceb4a0c8f5e0f541f0c970 100644 (file)
@@ -18,7 +18,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 3d639052017ee3b05606c7d1572827c80819680c..6030a0ddfbb43b7b80dcaae73b3c43544fbe8bdd 100644 (file)
@@ -14,7 +14,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/stddef.h>
 #include <linux/init.h>
index 8784f3715032d8008c2f37cafd1ceb3005fb8bae..85afa7f8aa78ef80708a1a7995961929d4ac564a 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/init.h>
 
index 706bca8eb1448f826ff5ddab5874e8858966870e..354a9408f02436b83ac8204d8a854686c675e264 100644 (file)
@@ -20,7 +20,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/types.h>
index 25bb6f3347c1b43ea3cff8ec25ef994ffdbbbe25..973f1e6afa53f5240b3ab4c4a9700a7418891e3a 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/init.h>
index 606b023196a29d2fa42b74cae93ae3616bb36a9b..fa29740a28f57dade5052629de5f625cdbc8a56c 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/init.h>
index b940cfd646c2af5783d3c87924454ab7393ba5d2..349660b84a02a88ee3f33da44f65d5dde772eade 100644 (file)
@@ -10,7 +10,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 31c0dd6a26cb735b15f405a869bac732bdd91d61..dcd3d09a0a7159f2a0e45d401980d6b2668d41f2 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef __ASM_BAMBOO_H__
 #define __ASM_BAMBOO_H__
 
-#include <linux/config.h>
 #include <platforms/4xx/ibm440ep.h>
 
 /* F/W TLB mapping used in bootloader glue to reset EMAC */
index ce48a4f08cbbc62966ebeb68fea7a4b369b0e852..4009f4983ca60aa07e7e4c83af38b63ffc0d309f 100644 (file)
@@ -10,7 +10,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/smp.h>
 #include <linux/threads.h>
index 606aa9fa5caa80547db202cae8bf3ace2440e778..5c408060eb35cb97abfb178a6b596cb1216d5766 100644 (file)
@@ -19,7 +19,6 @@
 #ifndef __BUBINGA_H__
 #define __BUBINGA_H__
 
-#include <linux/config.h>
 #include <platforms/4xx/ibm405ep.h>
 #include <asm/ppcboot.h>
 
index 970b69831e6fc15777c0b4b080896c94572fb3cd..367430998fc5a8864254b39635d24b044089f69c 100644 (file)
@@ -15,7 +15,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/pci.h>
 #include <asm/system.h>
index b4ecb9c798541e4cea57accaff4a3c1736f1c035..f0f9cc8480ca94d1e788e321112a700dcf94eaa0 100644 (file)
@@ -13,7 +13,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 27b2e77c7c8375417261ccfc5ddbb4a34813fd4d..f40e33d39d76045f95d5784def584147b6a00786 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef __ASM_EBONY_H__
 #define __ASM_EBONY_H__
 
-#include <linux/config.h>
 #include <platforms/4xx/ibm440gp.h>
 
 /* F/W TLB mapping used in bootloader glue to reset EMAC */
index 6efa91ff9c073efd0dd3b8ca2ce3242641fb1431..ae5c82081c95608e0543f9c1eff8c9fa0086155c 100644 (file)
@@ -9,7 +9,6 @@
  * is licensed "as is" without any warranty of any kind, whether express
  * or implied.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/pci.h>
 #include <asm/system.h>
index 55af769a6e70854e5000017973a75b4f35924a53..fb3630a1608d49c9c9c13ac6744c7a9f2d79c3f8 100644 (file)
@@ -10,7 +10,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/smp.h>
 #include <linux/threads.h>
index fe46640de15209244f7512d6eee8857e093ed1cb..3ef20a547080ed1ddfaacff66afa9407045a5a45 100644 (file)
@@ -14,7 +14,6 @@
 #ifndef __ASM_IBM405EP_H__
 #define __ASM_IBM405EP_H__
 
-#include <linux/config.h>
 
 /* ibm405.h at bottom of this file */
 
index e5700469a6829092e643a840c7a8b99cb09c9849..2ac67a2f0ba64b251c56a78af4c33fcb6758fb03 100644 (file)
@@ -13,7 +13,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/smp.h>
 #include <linux/threads.h>
index eaf0ef57028d2066cf828f65811028bd5c5c44f0..9f15e5518719c63a2fcdde911bb64394fe612b7e 100644 (file)
@@ -11,7 +11,6 @@
 #ifndef __ASM_IBM405GP_H__
 #define __ASM_IBM405GP_H__
 
-#include <linux/config.h>
 
 /* ibm405.h at bottom of this file */
 
index 49da61f6854a08e95c3c111b4db92fcaf11c16ac..9f4dacffdbb3d82e70f0be8bb394dc4cff90f0d0 100644 (file)
@@ -7,7 +7,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/smp.h>
 #include <linux/threads.h>
index e90c5dde01d35d0a2faaa7e9023f4ac5ef408338..9e01f1515de3b770a9c6b240c518350a1a65d266 100644 (file)
@@ -11,7 +11,6 @@
 #ifndef __ASM_IBM405GPR_H__
 #define __ASM_IBM405GPR_H__
 
-#include <linux/config.h>
 
 /* ibm405.h at bottom of this file */
 
index 61717e8a799e968ee67aee04bf408608faf96b2c..d92572727d20af759dcc1b353ae0de6fe835ee0a 100644 (file)
@@ -17,7 +17,6 @@
 #ifndef __PPC_PLATFORMS_IBM440EP_H
 #define __PPC_PLATFORMS_IBM440EP_H
 
-#include <linux/config.h>
 #include <asm/ibm44x.h>
 
 /* UART */
index 7b2763b6024f761d4db9381c7d6d15246e6bd752..391c90e1f5ea53a4e7f8a4f385086912635d76a4 100644 (file)
@@ -18,7 +18,6 @@
 #ifndef __PPC_PLATFORMS_IBM440GP_H
 #define __PPC_PLATFORMS_IBM440GP_H
 
-#include <linux/config.h>
 
 /* UART */
 #define PPC440GP_UART0_ADDR    0x0000000140000200ULL
index 070a34efe1c7c56aeee65e1c217b5c0688649564..599c4289b9c2e556d9e804c00cc337ff96dfa021 100644 (file)
@@ -17,7 +17,6 @@
 #ifndef __PPC_PLATFORMS_IBM440GX_H
 #define __PPC_PLATFORMS_IBM440GX_H
 
-#include <linux/config.h>
 
 #include <asm/ibm44x.h>
 
index 77e8bb22c527f64640162a89169066a60c84be7a..2978682f172026e3882c23cb4711654c2e05dc35 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef __PPC_PLATFORMS_IBM440SP_H
 #define __PPC_PLATFORMS_IBM440SP_H
 
-#include <linux/config.h>
 
 #include <asm/ibm44x.h>
 
index f1dcb0ac15b79463453156b69447a7d47b378eca..1afc3642e5b1ddad76e092e69cadc0e65d1b911c 100644 (file)
@@ -7,7 +7,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/ocp.h>
 #include <platforms/4xx/ibmnp405h.h>
index 2c683f6aaa6699ab81d9113db55f9b7a685b94bf..4aa8821b478bb3e70439a43680bdc20d3d5a8b98 100644 (file)
@@ -11,7 +11,6 @@
 #ifndef __ASM_IBMNP405H_H__
 #define __ASM_IBMNP405H_H__
 
-#include <linux/config.h>
 
 /* ibm405.h at bottom of this file */
 
index 9de4265973510a7fdd655b1ac844ad7190c794ac..31a08abaa4a210b131288074a5d45ebd204f373e 100644 (file)
@@ -11,7 +11,6 @@
 #ifndef __ASM_IBMSTB4_H__
 #define __ASM_IBMSTB4_H__
 
-#include <linux/config.h>
 
 /* serial port defines */
 #define STB04xxx_IO_BASE       ((uint)0xe0000000)
index 6884a49d3482203fea9c27fd9e3ad75cac73459b..31b63343e6416308a6ed017fe6ff585454a49728 100644 (file)
@@ -11,7 +11,6 @@
 #ifndef __ASM_IBMSTBX25_H__
 #define __ASM_IBMSTBX25_H__
 
-#include <linux/config.h>
 
 /* serial port defines */
 #define STBx25xx_IO_BASE       ((uint)0xe0000000)
index 5c37de28e13520160ce60a9adb7d0db320116eed..61706ef37112046cc2538e53ababb57c1a76d817 100644 (file)
@@ -11,7 +11,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index e0db6a810febb4bc6d3fea98848ecdf147cfe24a..68dd46b0a5c43d257de0ab3cd46fbf16f44a4748 100644 (file)
@@ -16,7 +16,6 @@
 #ifndef __ASM_LUAN_H__
 #define __ASM_LUAN_H__
 
-#include <linux/config.h>
 #include <platforms/4xx/ibm440sp.h>
 
 /* F/W TLB mapping used in bootloader glue to reset EMAC */
index 554776d4b8ac79f573183e93b31e22c7c331ee18..84e999d9a7bb950494675f6f09dd49c25ed6ffff 100644 (file)
@@ -11,7 +11,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 7c799a9ff82b409675157fc59f0fafff0d84dbe5..89730ce2322cec1b0ca933fcf6340e96e4cb8155 100644 (file)
@@ -16,7 +16,6 @@
 #ifndef __ASM_OCOTEA_H__
 #define __ASM_OCOTEA_H__
 
-#include <linux/config.h>
 #include <platforms/4xx/ibm440gx.h>
 
 /* F/W TLB mapping used in bootloader glue to reset EMAC */
index d3a620ddcdee3d91cfaa4f8be5287d8d8b7ccad1..f1e867c4c9fc0d565b276f5a2261180dc9175bfe 100644 (file)
@@ -17,7 +17,6 @@
 #ifndef __PPC_PLATFORMS_PPC440SPE_H
 #define __PPC_PLATFORMS_PPC440SPE_H
 
-#include <linux/config.h>
 
 #include <asm/ibm44x.h>
 
index 53da2b4f7c24acfc01b57b656220ac467c2d57ce..edf4d37d1a5251f5f650aec7cbf7776b45580cc4 100644 (file)
@@ -9,7 +9,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/pagemap.h>
 #include <linux/platform_device.h>
index 41b27d106fa3b6304b8ab850b197d92aec99b849..006e29f83a1a31613f32517ac5e0c734d01caafb 100644 (file)
@@ -7,7 +7,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/pagemap.h>
 #include <linux/platform_device.h>
index bab31eb306874f54df052a2cde74b8b902e4f0b1..c47493e344c2d860bfc6de4f1112549365ee9805 100644 (file)
@@ -9,7 +9,6 @@
  * is licensed "as is" without any warranty of any kind, whether express
  * or implied.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/smp.h>
 #include <linux/threads.h>
index dae01620227ddfb300976c0a81dee66438f08ee3..69b169eac053025e4efb68c72f4c547fec83b96c 100644 (file)
@@ -19,7 +19,6 @@
 #ifndef __ASM_SYCAMORE_H__
 #define __ASM_SYCAMORE_H__
 
-#include <linux/config.h>
 #include <platforms/4xx/ibm405gpr.h>
 #include <asm/ppcboot.h>
 
index 6bd77902b9a417ec4d100e3f74337096bc60a54f..f414d2d4c58e6c8598f3996dee5324b0966eb3b9 100644 (file)
@@ -11,7 +11,6 @@
  * is licensed "as is" without any warranty of any kind, whether express
  * or implied.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/smp.h>
 #include <linux/threads.h>
index f13a577f0a4192a13b74937a84d7602814089fc4..d9c4eb788940fd1e256a5ee554d3f70bee54df63 100644 (file)
@@ -21,7 +21,6 @@
 #ifndef __ASM_WALNUT_H__
 #define __ASM_WALNUT_H__
 
-#include <linux/config.h>
 #include <platforms/4xx/ibm405gp.h>
 #include <asm/ppcboot.h>
 
index d97a7f269f978065fc69834b9522aa791fafd277..fb5f0b5e13d1e5461abc98872140ed0799e76d24 100644 (file)
@@ -9,7 +9,6 @@
  * "as is" without any warranty of any kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/tty.h>
index 4c0c7e4c11144af67759a3f57c475a860d9414c5..cb3bf7a2bcbed6295ea7c8d9fca72acc1beb955d 100644 (file)
@@ -13,7 +13,6 @@
  * kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/tty.h>
index 4cf21f25635690f20f2fa2dc7043630f03b93988..cd7d0e7d986360d63eb6f1cad031c00bb9116927 100644 (file)
@@ -12,7 +12,6 @@
  * "as is" without any warranty of any kind, whether express or implied.
  */
 
-#include <linux/config.h>
 
 #if defined(CONFIG_XILINX_ML300)
   #include "xparameters_ml300.h"
index f287dcdbffceecaa4df11c9116b25c4df766844d..346787df0ddb14f3211b295532042596a1d6d897 100644 (file)
@@ -12,7 +12,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 7ae23012237af8aa46741ae843c144261c2c2f03..bc9684e66a84f0cb83366acb7ebef430109d5770 100644 (file)
@@ -17,7 +17,6 @@
 #ifndef __ASM_YUCCA_H__
 #define __ASM_YUCCA_H__
 
-#include <linux/config.h>
 #include <platforms/4xx/ppc440spe.h>
 
 /* F/W TLB mapping used in bootloader glue to reset EMAC */
index 11626dd9090f6a497bd534fb81a57706ecf637b9..3397f0de1592da081f70bda02826cb9665816e16 100644 (file)
@@ -11,7 +11,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 6727bbdc36ec317566816aae0317b0070ac010e3..d2e06c95b0832022c112b7147a0e0c964e13280a 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef __MACH_MPC83XX_SYS_H__
 #define __MACH_MPC83XX_SYS_H__
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <syslib/ppc83xx_setup.h>
 #include <asm/ppcboot.h>
index 9b014df516b903d818783963695d12c280c77dca..4f839da6782fb0d5ad40299b19ba969850c5302e 100644 (file)
@@ -11,7 +11,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 0b5e7ff856f5e32c0b37bfc714db4feb1ff62d8c..7559f9e6fc28b2e18c474dba7501558bf4f972f8 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef __MACH_MPC8540ADS_H__
 #define __MACH_MPC8540ADS_H__
 
-#include <linux/config.h>
 #include <linux/initrd.h>
 #include <syslib/ppc85xx_setup.h>
 #include <platforms/85xx/mpc85xx_ads_common.h>
index 9754dbd5d18c72e49d8579883fc4451398aa16fa..4f79c372c4e72654a71260e72f77176171919315 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef __MACH_MPC8555CDS_H__
 #define __MACH_MPC8555CDS_H__
 
-#include <linux/config.h>
 #include <syslib/ppc85xx_setup.h>
 #include <platforms/85xx/mpc85xx_cds_common.h>
 
index 0cb2e86470e2a34d7a7cc8501b736116611facd1..026ace3207291e6301f1620bfc5d45c195c0beba 100644 (file)
@@ -11,7 +11,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index c2247c21fc53aaa7cd9d8b927e6daf842062742c..9f185ab2e019194e697fe15e8f21b090b64984d8 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef __MACH_MPC8560ADS_H
 #define __MACH_MPC8560ADS_H
 
-#include <linux/config.h>
 #include <syslib/ppc85xx_setup.h>
 #include <platforms/85xx/mpc85xx_ads_common.h>
 
index 8fd9d763f58dc5d4349b45e6a930e2b197c833c1..674806e001f6a1aa0e67b44e8b3dbb2588460a2e 100644 (file)
@@ -11,7 +11,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index de8d41aafe1160b07c8fe04837d2f1836ce394ab..abf32281655d77c557024f60fadfc51b43275d22 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef __MACH_MPC85XX_ADS_H__
 #define __MACH_MPC85XX_ADS_H__
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/ppcboot.h>
 
index 4368dc3f3c30baae6a61a06197510200220355d2..139cf0d00855dd0333f5854fb3a8d005579f02ec 100644 (file)
@@ -11,7 +11,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 62df54f61ae3aa95923879fff209da91da8bd622..32c5455c8b82fa5e7393b91005db252a08e5213b 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef __MACH_MPC85XX_CDS_H__
 #define __MACH_MPC85XX_CDS_H__
 
-#include <linux/config.h>
 #include <linux/serial.h>
 #include <asm/ppcboot.h>
 #include <linux/initrd.h>
index b73778ecf8278727f15c8eabb26a29b164df581b..764d580ff5356c0cbf39a4e6e0627fe4e764be4d 100644 (file)
@@ -11,7 +11,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 44ffaa2d2c87ff0ad6a5cb8ff07c7bd457fc0581..c7d61cf3a449b0cecf077e42afa4a5b9a5c78838 100644 (file)
@@ -13,7 +13,6 @@
 #ifndef __MACH_SBC8560_H__
 #define __MACH_SBC8560_H__
  
-#include <linux/config.h>
 #include <platforms/85xx/sbc85xx.h>
 
 #define CPM_MAP_ADDR    (CCSRBAR + MPC85xx_CPM_OFFSET)
index d3ff280510ffea144fd664e3e1e2b5c4492cf53e..2c587ca97bceb9f3d73ba52732891fdf1cd64221 100644 (file)
@@ -10,7 +10,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 5dd8b6a98c9ba5bbd416d0ae1236cd75e5afed3d..21ea7a55639bab49592a4689aaa3f55b195974c5 100644 (file)
@@ -14,7 +14,6 @@
 #ifndef __PLATFORMS_85XX_SBC85XX_H__
 #define __PLATFORMS_85XX_SBC85XX_H__
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/seq_file.h>
 #include <asm/ppcboot.h>
index 8d7baa9a397ad19d81059d4b12e586564f026be9..224612412cbecca561598942d28f602eadf499d3 100644 (file)
@@ -16,7 +16,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 3f71f8f59370679975ab131d98856ff43c59eb56..c6e34c09e9795b59300f45fbb0e9e8c15f4fac33 100644 (file)
@@ -17,7 +17,6 @@
 #ifndef __MACH_STX_GP3_H
 #define __MACH_STX_GP3_H
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/ppcboot.h>
 
index 00af132262b30bf2ff0001a749e1afd2deb5aff9..1c90f113cc8f8b0b5314c02c8d6bda1ddd6c8132 100644 (file)
@@ -14,7 +14,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 612d80504f9b5f3bd67aa3d582f1bed1324bbec7..57284e68f67620c742fc831bdbe1c4042811fd0d 100644 (file)
@@ -14,7 +14,6 @@
 #ifndef __MACH_TQM85XX_H
 #define __MACH_TQM85XX_H
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/ppcboot.h>
 
index 33dad6db824390e4ea09d9cefec7893c49de2833..dc165f0c89084da37c714f427b5572619473fe65 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 #ifdef CONFIG_AMIGA
 
 #include <linux/kernel.h>
index 5c4118a459f3eb1b6822b5817ee16248f9c9da48..1d034ead2c9a645eb99181eecb124cf2b910fe83 100644 (file)
@@ -11,7 +11,6 @@
  *  Amiga specific stuff into mach/amiga.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/init.h>
index edb87b57383134c6f13da3c5170a7c34a5427191..69000b1c7a4c8f2c6a423f508b0b0bba372a4c3b 100644 (file)
@@ -7,7 +7,6 @@
 #ifndef __MACH_CCM_H
 #define __MACH_CCM_H
 
-#include <linux/config.h>
 
 #include <asm/ppcboot.h>
 
index f324f757cae16fe3dda87278f91f31bd5ee22a3d..a764ae71cbcbb7248f9f13b4322061d203c35db1 100644 (file)
@@ -9,7 +9,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 790475c22fd7405d896f4d5e12390d0f273eadc1..e78bccf96c9d98c2bbe29e6c04779934b39d5c15 100644 (file)
@@ -8,7 +8,6 @@
  * is licensed "as is" without any warranty of any kind, whether express
  * or implied.
  */
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/pci.h>
 #include <linux/ide.h>
index 31e8e21e1d5cf93cf1c1aeb8d79ba4e7fd586af2..4957a7bcde2296ce5c9b04bf51076233ca1b9e1f 100644 (file)
@@ -20,7 +20,6 @@
  * Note: The 750CXe and 7450 are not stable with a 125MHz or 133MHz TCLK/SYSCLK.
  *     At 100MHz, they are solid.
  */
-#include <linux/config.h>
 
 #include <linux/delay.h>
 #include <linux/pci.h>
index 104ac9b16e8b2ee33039b2f564ef7a2d53ba9061..90ed375c9b903771cecb6c5cebf946efcb0f94d6 100644 (file)
@@ -11,7 +11,6 @@
  * Free Software Foundation; either version 2 of the License, or (at your
  * option) any later version.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/kdev_t.h>
index e1c0b1b6dcb383bbe39dd0dd16479d581c35248e..2f9f0f60e3f76139f80a5ca43246679e091a3db8 100644 (file)
@@ -19,7 +19,6 @@
 #ifndef __ASM_FADS_H__
 #define __ASM_FADS_H__
 
-#include <linux/config.h>
 
 #include <asm/ppcboot.h>
 
index b181f210800121bd2d8bb9ca257cd88bff887b6d..e8c84d24f01fb7d569795383ba0698c3680effad 100644 (file)
@@ -6,7 +6,6 @@
  *    ---Dan
  */
 
-#include <linux/config.h>
 #include <asm/reg.h>
 #include <asm/page.h>
 #include <platforms/gemini.h>
index 69855aeec88861cc363cb1ab0f015a9072e7db00..b915eff79fdbe4d8b5e64d5d664bd1d3fb907814 100644 (file)
@@ -2,7 +2,6 @@
 #ifndef __ASMPPC_GEMINI_SERIAL_H
 #define __ASMPPC_GEMINI_SERIAL_H
 
-#include <linux/config.h>
 #include <platforms/gemini.h>
 
 #ifdef CONFIG_SERIAL_MANY_PORTS
index 0090ff154608c39473b2d51366eaed607dd86eff..f48048f362a8e9c219ee23f363bfe1956e22ef86 100644 (file)
@@ -6,7 +6,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 75dc2ee87d2fb9c6a7bc1bda30410dc2e76d03f6..71af4b4886214139ed5b71d5539fe3196b763a12 100644 (file)
@@ -12,7 +12,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 
 #include <linux/pci.h>
 #include <linux/delay.h>
index 198fc590b9f58fa4e51fa46961cdb06ce03f918c..de91afff8ca13ec645abc6f9096f0b415f9175bf 100644 (file)
@@ -7,7 +7,6 @@
 #ifndef __MACH_HERMES_H
 #define __MACH_HERMES_H
 
-#include <linux/config.h>
 
 #include <asm/ppcboot.h>
 
index 8c3836c5f054a11d9f851d3a8296b59dac8135df..2f1f86ce1447db9bec48743ae9a00f4add1a34a4 100644 (file)
@@ -7,7 +7,6 @@
 #ifndef __MACH_IP860_H
 #define __MACH_IP860_H
 
-#include <linux/config.h>
 
 #include <asm/ppcboot.h>
 
index d4be310f8084b87c99c3f31c5eee626477318604..9109e684ad9b8b9daa466f34730eae174f5225d3 100644 (file)
@@ -13,7 +13,6 @@
 #ifndef __ASM_IVMS8_H__
 #define __ASM_IVMS8_H__
 
-#include <linux/config.h>
 
 #include <asm/ppcboot.h>
 
index ad21280e892095abd5fa6759b86bcf5cc4c03a4a..720f8b3e2fbc508b9aa42cc321c32a9b9397d504 100644 (file)
@@ -16,7 +16,6 @@
  * Supports the Artesyn 750i, 752i, and 3750.  The 752i is virtually identical
  * to the 750i except that it has an mv64460 bridge.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/kdev_t.h>
index 8c87642c510fd14f8325dd2fd5a3ee29cb192e44..5e5eb6d0f6aaf665d92c479136dd3c416b15e4e9 100644 (file)
@@ -7,7 +7,6 @@
 #ifndef __MACH_LANTEC_H
 #define __MACH_LANTEC_H
 
-#include <linux/config.h>
 
 #include <asm/ppcboot.h>
 
index fecbe9adc9e0c2c78894f8546aa6306a4dd69c6e..b9e9db63f65b81bc43f0f99de8b45b4330da27da 100644 (file)
@@ -21,7 +21,6 @@
  * kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/initrd.h>
 #include <linux/seq_file.h>
 #include <linux/kdev_t.h>
index c6445a727ca3a8c0804cd24bfdcc7552bfa360fa..18dc6e8dd4f40d9712de5a88fb4e125de83434f7 100644 (file)
@@ -10,7 +10,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/delay.h>
 #include <linux/pci_ids.h>
index 995bf5112df05abda856aeeb7e53e62c10df7fd8..e63f3b07a5dbc93adebeab122a0e56eeb35ec0de 100644 (file)
@@ -7,7 +7,6 @@
 #ifndef __MACH_LWMON_H
 #define __MACH_LWMON_H
 
-#include <linux/config.h>
 
 #include <asm/ppcboot.h>
 
index d919dab6134768ae67249071c7ba2577ccb5cf73..f19b6167c7700da2bc265cdc5979b1a242a8bd49 100644 (file)
@@ -11,7 +11,6 @@
  * kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/param.h>
index a80b7d116b4938905d007efdeea0509e2263eedb..d3bbbb3c9a1f125d1c7b0cb45f4cc1a2a5f21b3c 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef __ASM_MPC885ADS_H__
 #define __ASM_MPC885ADS_H__
 
-#include <linux/config.h>
 
 #include <asm/ppcboot.h>
 
index 4b88679cd31c38e3ba3fd3160b8cb4db8540a08f..c1fc4a16fea9d7f9aa95a1c1b124155d48ceee18 100644 (file)
@@ -11,7 +11,6 @@
  * kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/param.h>
index c717cd92c028e5e563c6c5b2c88bb12eedccb23d..bb8d4a45437ae02caf982b0226036735fcf9a01c 100644 (file)
@@ -9,7 +9,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 3c3d881df00d52de50b804e5c54e152d9968ede4..3da47d9ec7a2d8fce1df6a4dbed0324383195aae 100644 (file)
@@ -9,7 +9,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/types.h>
index 91a820a6fbc43590d0370e3ff40209453cf07c2b..a2c03a22875ef91c677d3597e0b104b05a53f3e2 100644 (file)
@@ -7,7 +7,6 @@
 #ifndef __MACH_PCU_E_H
 #define __MACH_PCU_E_H
 
-#include <linux/config.h>
 
 #include <asm/ppcboot.h>
 
index c3a86be11fb79960ee6e28d8d170269fa2ac2b66..4d46650e07fd56c628a945b8a58ea1cdd5de49bd 100644 (file)
@@ -11,7 +11,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index de2761ebe0d927a62350e67b9d07cb7cbb873ef0..9778105d4dfeaaca72ab5f67718cb55e9e0c0631 100644 (file)
@@ -13,7 +13,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/interrupt.h>
 #include <linux/init.h>
index 6b26dd36c64071bca77ab912b7aced5a8ecc4cd1..2b287f4e0ca3c9166efd689375bc484f144b831a 100644 (file)
@@ -9,7 +9,6 @@
 #ifndef __MACH_ADS8260_DEFS
 #define __MACH_ADS8260_DEFS
 
-#include <linux/config.h>
 
 #include <asm/ppcboot.h>
 
index e50b9996848c4ace0b6bc907040f2c321711eab6..c627ba41335fb994b1a8967cd1bbc02a36b21bf7 100644 (file)
@@ -6,7 +6,6 @@
  * The motherboard routes/maps will disappear shortly. -- Cort
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/kernel.h>
index e86f6156d5895cee4f099e91b9319aa7cd3337cb..6436beffdc9688d6cd56855180957e10008963e5 100644 (file)
@@ -11,7 +11,6 @@
  * bootup setup stuff..
  */
 
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/module.h>
 #include <linux/errno.h>
index cdd9cfb13ee991a56157341cee1c399ebab888f3..fcab513e206dd7fc95336c8225ca185e291efb92 100644 (file)
@@ -9,7 +9,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index e459a199fb1d5593e29e01f05c7b98cda8139aa9..f4ade5cd7a88d241347d0e036b998990fae83908 100644 (file)
@@ -7,7 +7,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index bc26b6d71c1d1cf988d02dd4e0024a978835d9fc..97d6c21091e0f127844e4487ecefaa3137209eca 100644 (file)
@@ -18,7 +18,6 @@
  * SCSI / VGA.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 6daa109491c4f1d4946839041b6451fec8f2f75a..57a2a55dab8c57a7fc26d89a3a967ebbbfe34064 100644 (file)
@@ -8,7 +8,6 @@
 #ifndef __MACH_RPX_DEFS
 #define __MACH_RPX_DEFS
 
-#include <linux/config.h>
 
 #ifndef __ASSEMBLY__
 /* A Board Information structure that is given to a program when
index deee5bd36aa8506173869d279c40c6b9e94b6759..71978064627062bde4541f1728eab037cc5bfdab 100644 (file)
@@ -8,7 +8,6 @@
 #ifndef __MACH_RPX_DEFS
 #define __MACH_RPX_DEFS
 
-#include <linux/config.h>
 
 #ifndef __ASSEMBLY__
 /* A Board Information structure that is given to a program when
index 6dc459decb2d105d3d3cfb366f99205f8932b6a7..a76002af686ff9416f35a1d7964fb7bf5b9b2d8f 100644 (file)
@@ -60,7 +60,6 @@
  * found, we can hopefully stop hardcoding 32MB of RAM.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 41006d2b4b3823a3438f2d79e43caf67b77ee5ab..8cff1e3033499a56c3502ad7038ac91a8ee1a917 100644 (file)
@@ -13,7 +13,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
index 3783deccd9b28d1aa21396be566b3449d2fd629e..3c784278487647416ca75c73860fc5371cc14e73 100644 (file)
@@ -9,7 +9,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index c7a78a646c6677acc95770114beecdf76fb63be9..7f8c9a6928f89607b8753f10487339bbedbdcbe3 100644 (file)
@@ -7,7 +7,6 @@
 #ifndef __TQM8260_PLATFORM
 #define __TQM8260_PLATFORM
 
-#include <linux/config.h>
 
 #include <asm/ppcboot.h>
 
index 43ac064ebe5afca4099081157daa241d0b17b64c..662131d0eb39d7e34171761e75d5fbeaf057e902 100644 (file)
@@ -8,7 +8,6 @@
 #ifndef __MACH_TQM8xx_H
 #define __MACH_TQM8xx_H
 
-#include <linux/config.h>
 
 #include <asm/ppcboot.h>
 
index 12fa83e6774a13080c0dd82242179b0128c4fd5d..51ab6e90fe258a6f5a0f20726da602d529c054a4 100644 (file)
@@ -3,7 +3,6 @@
  *
  * Benjamin Herrenschmidt <benh@kernel.crashing.org>
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/init.h>
index 9fcff74bfdd0893ef1515ac3e00d382ca11bf6dc..9293f5c59099154a745b7d833134ab08dfb08a05 100644 (file)
@@ -14,7 +14,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/serial.h>
 #include <linux/tty.h>         /* For linux/serial_core.h */
index 874078a7664dc66ccdc3f1137ea5b3382cd7e093..987cc0414e6e880172318a53525bea57cf28648a 100644 (file)
@@ -15,7 +15,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 
index fbaae5f6d8344e9f072ec7b773d75ccb02c57239..a3927ec9b5d7e46429ed13c538edf0a2b71a04a0 100644 (file)
@@ -13,7 +13,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <asm/reg.h>
 #include <asm/ibm44x.h>
index f48529f3c23d7207316e67aff33dfb56720b3f1c..94d7835038adab254d9fc41f603eaf169b7d3ed3 100644 (file)
@@ -16,7 +16,6 @@
 
 #ifndef __ASSEMBLY__
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <syslib/ibm44x_common.h>
 
index f6cc16888527fd159e017a76f524253ab8c441ff..0440d8f4ce16fedc5582b947f2371576224fc6e4 100644 (file)
@@ -10,7 +10,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/interrupt.h>
 #include <asm/ibm44x.h>
index a03ec6022e8f3ddfdcfa1e2bde18f22cf5462d07..8d6f203e7a1d8bffea13b65bf8a7e7842a7274a5 100644 (file)
@@ -16,7 +16,6 @@
 
 #ifndef __ASSEMBLY__
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/seq_file.h>
 #include <syslib/ibm44x_common.h>
index 293e4138d172e12b1d70054e97c87abfc27bd452..571f8bcf78e6e1ddf34b2fba1cbb16fcea9845a1 100644 (file)
@@ -13,7 +13,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/serial.h>
 
index 14a981a5cea72413ae496d41cdaf8b429cc8791d..01f99b4a6649cea79d5486847678a1bc5633f153 100644 (file)
@@ -13,7 +13,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/time.h>
 #include <linux/types.h>
 #include <linux/serial.h>
index 99e4bc0e42af00b0c7b99b440ccb9f44ac425766..974581ea48493186c5ae1fb87b5732e5d4925393 100644 (file)
@@ -15,7 +15,6 @@
  * or implied.
  */
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/types.h>
index b7a6cb2d8d526b7f6273c4653009fea99e40827e..15f0d7323535f400b81603dd21f1bc00f2ecc50e 100644 (file)
@@ -6,7 +6,6 @@
  *  Further modified for generic 8xx and 8260 by Dan.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 0c4c0de7c59f0b10990969215b0bca76d37a8c55..54303a7b4e6990d1662f9fe257fb35da2dc81648 100644 (file)
@@ -10,7 +10,6 @@
  * bootup setup stuff..
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 5a5a7a9cd248620528e34bbee408203d57e2480c..20a0eac0dc3a3fbd8ca4a6f3bbd59e6a64295dc3 100644 (file)
@@ -11,7 +11,6 @@
  * kind, whether express or implied.
  */
 
-#include <linux/config.h>
 
 #include <asm/pci.h>
 
index ee6379bb415e6e6ac54df6a29d410dcf040a8bf5..80c609019bdac01b7492d5d4e72a4d6d65df8bf2 100644 (file)
@@ -15,7 +15,6 @@
  * kind, whether express or implied.
  */
 
-#include <linux/config.h>
 
 #include <asm/io.h>
 #include <asm/time.h>
index 9cf18764a1a145d33584181a2f37cd0c6998d938..e1876261e5dcc359f53ac12062f900d598d5a241 100644 (file)
@@ -18,7 +18,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/irq.h>
 #include <asm/delay.h>
 #include <asm/mv64x60.h>
index a4ecc2ee579ff781f567ef961aa6004b30b585da..50c55622ece9b7d29719877e98e573357431a0b3 100644 (file)
@@ -36,7 +36,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/list.h>
 #include <linux/miscdevice.h>
 #include <linux/slab.h>
index 767a0bc9581765fb21c70920a0fc93e7b3697735..08973663fa245a9e3d31194e3d2c72a3a106ff15 100644 (file)
@@ -6,7 +6,6 @@
  *  for more details.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index b8154efff6ede2c7a14224a920542b4650488dac..e1ff971539ea9f5f10a7fcc6a84701754c4c3c66 100644 (file)
@@ -10,7 +10,6 @@
  *  register accesses
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 1509fc1ddfb647558106799f8861d7a998cc2be4..dd5d4b958c31e465320ba3a16f75f2d141cdf9b2 100644 (file)
@@ -8,7 +8,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
 #include <linux/pci.h>
index b40b96a8c609ad341fa1e720aaa0ce161b45819b..1eef4ffed4fb6dc44a8fc487a7e597dd8638bd0f 100644 (file)
@@ -19,7 +19,6 @@
  * 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/miscdevice.h>
index e669c1335d47e93bf46a603e2e9ce1dd098420a3..745685df59849f96d2f902b8cf883ac3c338d06b 100644 (file)
@@ -13,7 +13,6 @@
  * Free Software Foundation;  either version 2 of the  License, or (at your
  * option) any later version.
 */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/signal.h>
index e83a83fd95e1dd93293dce60c59561e39e81aa17..debe14c083a12834b76477b03b2f9c6ace7cae32 100644 (file)
@@ -13,7 +13,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/smp.h>
 #include <linux/threads.h>
index 280ea010a9c8e735714b1541b5c1a646078ea3de..2f83e162971f67be9800f2302ad90b76bf6b255b 100644 (file)
@@ -19,7 +19,6 @@
  * 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/init.h>
index 26afd637dc81806b1147be07e54b2cf9b87a808f..ec466db52114202800a97ba462ad1e75f44bf79e 100644 (file)
@@ -22,7 +22,6 @@
  * Added PCI support -- Tony Li <tony.li@freescale.com>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/init.h>
index 478b011cd963305bfe85700716e479bfd5133f86..b918a2d245ea0098612834aff5d739fc900dbfcf 100644 (file)
@@ -23,7 +23,6 @@
 #ifndef __PPC_SYSLIB_PPC83XX_SETUP_H
 #define __PPC_SYSLIB_PPC83XX_SETUP_H
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 extern unsigned long mpc83xx_find_end_of_memory(void) __init;
index 0145c968f9adf70777b464b6290cd944af89679b..e5ac699e7316ad1456a38a5be27a10db61a452ea 100644 (file)
@@ -11,7 +11,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/init.h>
index 182744a1321c3d85d80fe00a5f9b942c398a6709..4fc405425113677858b85bbe73ed9025251ffe79 100644 (file)
@@ -14,7 +14,6 @@
 #ifndef __PPC_SYSLIB_PPC85XX_COMMON_H
 #define __PPC_SYSLIB_PPC85XX_COMMON_H
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 /* Provide access to ccsrbar for any modules, etc */
index 297f3b549177096d8f421ab836394fb324968f72..d9b471b4d6954b175b4ff4a6e0b9342b1a014fd3 100644 (file)
@@ -10,7 +10,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/types.h>
index c0827a2c3eeca4d9680d424a99936c771c08dc15..6d3ff30b15790858f02292d03cdc71c2dcb29b55 100644 (file)
@@ -13,7 +13,6 @@
 #ifndef __PPC_SYSLIB_PPC85XX_RIO_H
 #define __PPC_SYSLIB_PPC85XX_RIO_H
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 extern void mpc85xx_rio_setup(int law_start, int law_size);
index 79b7089d7500a5127af9173ab72e6f50b5b76057..2475ec6600fe71a88caa204e724b2e437882846f 100644 (file)
@@ -11,7 +11,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/init.h>
index f55b8032d3d946c117f9f8d3a9684a350e903fc1..6ff79995210bce6fb384e67160c890b14cfdaee5 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef __PPC_SYSLIB_PPC85XX_SETUP_H
 #define __PPC_SYSLIB_PPC85XX_SETUP_H
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/ppcboot.h>
 
index 3e6f51a61d468c79e18f6046f93d6bd7ca4b6f50..d6c25fe25011c7f52f4ce70c2191d20fe8349a1f 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/stddef.h>
 #include <linux/init.h>
index 784935eac36597cfac07efa69643a04ec2736934..d7d9f651a91b8c7c2a3b69dec187b7fa82f178ed 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef _PPC_KERNEL_PPC8xx_H
 #define _PPC_KERNEL_PPC8xx_H
 
-#include <linux/config.h>
 #include <linux/irq.h>
 #include <linux/interrupt.h>
 
index 0970b5d30391553877a031eab1f5e3ec8e790d9d..85053b2816a9dd9a40a394ca5cc7299118f13953 100644 (file)
@@ -15,7 +15,6 @@
  * we have switched the chip select.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/delay.h>
index 93978c027ca05d94870f88b3e9522b5afb630dc8..c492a35687bda0ff9edb5757b2668f187ba24f06 100644 (file)
@@ -1,7 +1,6 @@
 /*
  * Copyright (C) 1996 Paul Mackerras.
  */
-#include <linux/config.h>
 
 #define GETREG(reg)            \
     static inline int get_ ## reg (void)       \
index cfc2d6ad464ddcbdd31a59a59fb024a5a19cd83c..f7e92986952a2e669ae2fff8e5f45d1caf325041 100644 (file)
@@ -1,7 +1,6 @@
 /*
  * Copyright (C) 1996 Paul Mackerras.
  */
-#include <linux/config.h>
 #include <linux/string.h>
 #include <asm/machdep.h>
 #include <asm/io.h>
index 06fa44b5c647130e7beb65514d2573e15016cb02..37d234f93394a3a16bfed9ebeb03d6523b5868a9 100644 (file)
@@ -3,7 +3,6 @@
  *
  * Copyright (C) 1996 Paul Mackerras.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/smp.h>
index 61bc44626c043ec2bb41c0e61399b2e1127680ae..d0f82c995af680a3c678d68c60094ae91b056348 100644 (file)
@@ -10,7 +10,6 @@
  * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
@@ -766,7 +765,6 @@ unsigned long nr_iowait(void)
 #endif /* MODULE */
 EXPORT_SYMBOL_GPL(si_swapinfo);
 EXPORT_SYMBOL_GPL(nr_threads);
-EXPORT_SYMBOL_GPL(get_full_page_state);
 EXPORT_SYMBOL_GPL(nr_running);
 EXPORT_SYMBOL_GPL(nr_iowait);
 //EXPORT_SYMBOL_GPL(nr_context_switches);
index 7915a197d96d227bb2175ada9125be89399fafa5..ab3b0765a64e7f5d212d835b5e60f4e0ab0e28bb 100644 (file)
@@ -9,7 +9,6 @@
  * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
@@ -107,21 +106,21 @@ static void appldata_get_mem_data(void *data)
         * serialized through the appldata_ops_lock and can use static
         */
        static struct sysinfo val;
-       static struct page_state ps;
+       unsigned long ev[NR_VM_EVENT_ITEMS];
        struct appldata_mem_data *mem_data;
 
        mem_data = data;
        mem_data->sync_count_1++;
 
-       get_full_page_state(&ps);
-       mem_data->pgpgin     = ps.pgpgin >> 1;
-       mem_data->pgpgout    = ps.pgpgout >> 1;
-       mem_data->pswpin     = ps.pswpin;
-       mem_data->pswpout    = ps.pswpout;
-       mem_data->pgalloc    = ps.pgalloc_high + ps.pgalloc_normal +
-                              ps.pgalloc_dma;
-       mem_data->pgfault    = ps.pgfault;
-       mem_data->pgmajfault = ps.pgmajfault;
+       all_vm_events(ev);
+       mem_data->pgpgin     = ev[PGPGIN] >> 1;
+       mem_data->pgpgout    = ev[PGPGOUT] >> 1;
+       mem_data->pswpin     = ev[PSWPIN];
+       mem_data->pswpout    = ev[PSWPOUT];
+       mem_data->pgalloc    = ev[PGALLOC_HIGH] + ev[PGALLOC_NORMAL] +
+                              ev[PGALLOC_DMA];
+       mem_data->pgfault    = ev[PGFAULT];
+       mem_data->pgmajfault = ev[PGMAJFAULT];
 
        si_meminfo(&val);
        mem_data->sharedram = val.sharedram;
@@ -130,7 +129,8 @@ static void appldata_get_mem_data(void *data)
        mem_data->totalhigh = P2K(val.totalhigh);
        mem_data->freehigh  = P2K(val.freehigh);
        mem_data->bufferram = P2K(val.bufferram);
-       mem_data->cached    = P2K(atomic_read(&nr_pagecache) - val.bufferram);
+       mem_data->cached    = P2K(global_page_state(NR_FILE_PAGES)
+                               - val.bufferram);
 
        si_swapinfo(&val);
        mem_data->totalswap = P2K(val.totalswap);
index 39b7bdecbf0563f38046245af32d0258c2054c05..075e619bf37dcdbbadb5bc9048a810c82924dc2d 100644 (file)
@@ -10,7 +10,6 @@
  * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index f2b44a2f1deca958c9f1840d47407b149a730041..161acc5c8a1b875a05d2ab0d2e97fe38e1dfb1e2 100644 (file)
@@ -9,7 +9,6 @@
  * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index 3f7018e9dbe43e97c0027ea728bc0455791bd79d..ec514fe5ccd02bb3f652ef5c962e4eb5d3ba7ed6 100644 (file)
@@ -4,7 +4,6 @@
  * and format the required data.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 
 /* Use marker if you need to separate the values later */
index 12a6311e9838901ed2ca106a9e34f778bd33be27..9565a2dcfadcda474a4d5820a2a642d517c56be5 100644 (file)
@@ -135,7 +135,6 @@ static inline int dump_task_fpu(struct task_struct *tsk, elf_fpregset_t *fpregs)
 
 #include <asm/processor.h>
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/elfcore.h>
 #include <linux/binfmts.h>
 #include <linux/compat.h>
index 5e14de37c17b0c26fa2b6ef7d0127a7890c3ea2b..cabb4ff54cd7d85abeba0984167a4514b623bb16 100644 (file)
@@ -16,7 +16,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/fs.h> 
index 3898f66d0b2fb26eb905745acadc9c155a1706b4..1a18e29668ef1758739ae8c799929d8ef8c981d5 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef _ASM_S390X_S390_H
 #define _ASM_S390X_S390_H
 
-#include <linux/config.h>
 #include <linux/compat.h>
 #include <linux/socket.h>
 #include <linux/syscalls.h>
index b4c815d8ef75f0e00dc2cf94a599440709f9e584..d49b876a83bf5af6995aae9f0237185f19f42eee 100644 (file)
@@ -10,7 +10,6 @@
  *  1997-11-28  Modified for POSIX.1b signals by Richard Henderson
  */
 
-#include <linux/config.h>
 #include <linux/compat.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 06a3fbc12536d8a3dc49386e579db46b1ae1c592..7ba20922a535d848a1de8316676d57cb5a9eb469 100644 (file)
@@ -10,7 +10,6 @@
  *    Bugreports to: <Linux390@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index aa8b52c2140f1e672bed5c4be2715d10140e01f4..1a434a7004ee4f5432d37e8019c03d31e8265d26 100644 (file)
@@ -11,7 +11,6 @@
 
 #include <linux/sys.h>
 #include <linux/linkage.h>
-#include <linux/config.h>
 #include <asm/cache.h>
 #include <asm/lowcore.h>
 #include <asm/errno.h>
index f3222a1b286174b97ed2141f0007a98b8a5af780..edad607716733fcfba5c6538ae1f1a03cdd44c30 100644 (file)
@@ -11,7 +11,6 @@
 
 #include <linux/sys.h>
 #include <linux/linkage.h>
-#include <linux/config.h>
 #include <asm/cache.h>
 #include <asm/lowcore.h>
 #include <asm/errno.h>
index 538c82da49b1b2d614f8aaa1e57b2d864fac2975..adad8863ee2f80f6336add25553ac5166695f48a 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/setup.h>
 #include <asm/lowcore.h>
 #include <asm/asm-offsets.h>
index 4a0f5a1551eadcf021d6ecf317a1e61e0ef07dea..1f9399191794dbe97bccf7f849c0ff97bf2b4f78 100644 (file)
@@ -15,7 +15,6 @@
  * This file handles the architecture-dependent parts of process handling..
  */
 
-#include <linux/config.h>
 #include <linux/compiler.h>
 #include <linux/cpu.h>
 #include <linux/errno.h>
index 0886e739d12269a121b3a0cdf85f02e4b3c0c7fe..c73a45467fa45f0164a537f2dbb2282660e2570b 100644 (file)
@@ -3,7 +3,6 @@
  *
  *  S390 version
  */
-#include <linux/config.h>
 #include <linux/highuid.h>
 #include <linux/module.h>
 #include <linux/mm.h>
index 2b2551e3510b196c30fe5834b2a18a9d151e52a5..1ca34f54ea8a2419e278825072ba66596efc1618 100644 (file)
@@ -28,7 +28,6 @@
 #include <linux/tty.h>
 #include <linux/ioport.h>
 #include <linux/delay.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/initrd.h>
 #include <linux/bootmem.h>
index d48cfc726b68d9e2fbe3b7968c2283dd476e71de..a887b686f27927bb6119d5cff813388e3c74ac62 100644 (file)
@@ -11,7 +11,6 @@
  *  1997-11-28  Modified for POSIX.1b signals by Richard Henderson
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
 #include <linux/smp.h>
index 2a6c6efb68653db8880853d09648d86f21af60b9..f7fe9bc43397414f58767132a96c261405f92b16 100644 (file)
@@ -12,7 +12,6 @@
  *    Copyright (C) 1991, 1992, 1995  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index b7630436f693cda60aa7976b8c3a9b43212ab327..12240c03a6dd5122583ae1ff8d2acfcb176e15ab 100644 (file)
@@ -14,7 +14,6 @@
  * 'Traps.c' handles hardware traps and faults after we have saved some
  * state in 'asm.s'.
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 9f34bb54c05129c83327dbd04211ffc83c75b531..ff5f7bb34f75bc68f26a7f54c60167e9bcf3cf9a 100644 (file)
@@ -3,7 +3,6 @@
  */
 
 #include <asm-generic/vmlinux.lds.h>
-#include <linux/config.h>
 
 #ifndef CONFIG_64BIT
 OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf32-s390")
index 1f0439dc245a9969aad280444e8f6f09137f1922..2306cd83fca125f2f995a482f51ac54297bd6e81 100644 (file)
@@ -7,7 +7,6 @@
  *    Author(s): Jan Glauber <jan.glauber@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/time.h>
index 71f0a2fb30786674b601391b3d4ffca1d604256b..468f4ea33f99efdf1f83802ed4433146ac485b57 100644 (file)
@@ -11,7 +11,6 @@
  *    Copyright (C) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/delay.h>
 
index 648df71403353a50c35afc8fc387a1f01cc6653f..b4957c84e4d66395a7633752079742ae5db77316 100644 (file)
@@ -9,7 +9,6 @@
  *          that does not have the IEEE fpu (all processors before G5).
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 51596f429235ba1252008fd9bd0f270305d2a225..81be2fec7dc565b8f3e87518a73fa3e9eddda807 100644 (file)
@@ -8,7 +8,6 @@
  *  Collaborative memory management interface.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
 #include <linux/init.h>
index 81ade401b073bfe62627c9a946de3ac3b04e0483..833d5941746a12fa78f1a83357b1c21c4ff6f24c 100644 (file)
@@ -10,7 +10,6 @@
  *    Copyright (C) 1995  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index a055894f3bd89a59f4e843c1c113ef5ce80547aa..81dce185f8361b2d695e1f56c5101d8bde49b17e 100644 (file)
@@ -9,7 +9,6 @@
  *    Copyright (C) 1995  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 357fab1bac2ba518eebfc968260b2cd259ec8798..4b2abe5eb165e53664bb290c37b0e5aca2b2a70a 100644 (file)
@@ -13,7 +13,6 @@
  * Each bit of the register is for masking each interrupt.  
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/irq.h>
index a9fde781b21acb8f5c185a5bd1fd881b9fc90efb..6835381da5fd84bb1eccd75bc85c5efa6a16cfa7 100644 (file)
@@ -14,7 +14,6 @@
  * IO functions for a Hitachi Big Sur Evaluation Board.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <asm/machvec.h>
index 1d32425782c00cec5fb8ee72875202d2cd667268..ac946a2201c7077d2e7af1f4e9c9d47da25dc59a 100644 (file)
@@ -20,7 +20,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 0a2339c69440ed7bbca3723d4deb9bbf43cf6eee..6b08c0e1c453878d56a0d81704259dcd82ac039a 100644 (file)
@@ -11,7 +11,6 @@
  * This file contains Big Sur specific LED code.
  */
 
-#include <linux/config.h>
 #include <asm/io.h>
 #include <asm/bigsur/bigsur.h>
 
index e69be05195f5a7c765c8a9794f9e2fb663ba0025..dfeede9da50f5129d570b61ee7a1d46d04448160 100644 (file)
@@ -20,7 +20,6 @@
  * 
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index ae8a350ade53e94ca8e26b442edc47aaca06f815..90e5175df227a81654a2a8bc3ffa244f96eedc8f 100644 (file)
@@ -15,7 +15,6 @@
 #include <asm/io.h>
 #include <asm/machvec.h>
 #include <asm/mach/io.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/sched.h>
index 29b537cd65464c48c19a371f993c278b7fef09bf..eff4ed93599fd726bf76b75fcecbe0ca5763aa22 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/irq.h>
index 701fa55d52978b25cc0f0067700e9fe49e1bdce8..96bb41c9fc55251567f3f3673972384bc7ef92be 100644 (file)
@@ -9,7 +9,6 @@
  * Bases on the IPR irq system
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 
index 76ca4ccac703c8698a3c3f5900b51b7066844a7f..aeb7b392b190bfe3c8371eace07b0a7eb7af65d3 100644 (file)
@@ -9,7 +9,6 @@
  * This file contains ST40STB1 HARP and compatible code.
  */
 
-#include <linux/config.h>
 #include <asm/io.h>
 #include <asm/harp/harp.h>
 
index 05b01b8f40aa39068cf8a9df5865d5d17be793a5..886e450ab63eef99b7cfdbaadae88115dd0bc124 100644 (file)
@@ -9,7 +9,6 @@
  * STMicroelectronics ST40STB1 HARP and compatible support.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <asm/io.h>
index 6d94a8e2e67a0563a228b1d2ba66a73c97674dd5..71f315663cc964fb3c51f4b40963ea015b522b8c 100644 (file)
@@ -9,7 +9,6 @@
  * Setup code for an HP680  (internal peripherials only)
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/io.h>
 #include <asm/hd64461.h>
index 0a31beec3465f5633f42a88bb43806d607be77ce..1fe36927f6919face11deac45acb2f7a6f8e68af 100644 (file)
@@ -6,7 +6,6 @@
  * This file contains Interface MPC-1211 specific LED code.
  */
 
-#include <linux/config.h>
 
 static void mach_led(int position, int value)
 {
index 9f7ccd33ffb603d76e8262af032ca93e87b03911..4ed1a95c6d560d81d09c8b4ff195c2fc84b86b82 100644 (file)
@@ -11,7 +11,6 @@
  *  License.  See linux/COPYING for more information.
  *
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index b72f009c52c26cee58fe5317adb246e83b1ac23d..2bfb221cc35cbfd75890d0ceaae3f9e0a3a7409d 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/hdreg.h>
index 3a1ec9403441eb41b871d8ba8a0c8d322b913016..956c23901228685c6b25191256b410b59326e64e 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/smp.h>
 #include <linux/smp_lock.h>
index b055809d2ac1a4459befa360b5d20d4e632db8f1..29e48971bba0316db1dc82c17d9e7202a72fda48 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/smp.h>
 #include <linux/smp_lock.h>
index 65f3fd0563d3c01d7639d35130f65566456e6276..4671b6b047bb26b00663b7355fd6cacb7e725bd7 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/delay.h>
 #include <asm/processor.h>
index 2c13a7de6b22ada84a822b199b84cad8af6a4b7b..5d730c70389eab6a26813486cfa0d1055adcf2b3 100644 (file)
@@ -9,7 +9,6 @@
  * Bases on the IPR irq system
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 
index 734742e92279e4c7cee51dd1ae857ba2e84b2e80..860d7f204a4e7b8377cde80a3d7b85f4901c58a7 100644 (file)
@@ -9,7 +9,6 @@
  * This file contains an Overdrive specific LED feature.
  */
 
-#include <linux/config.h>
 #include <asm/system.h>
 #include <asm/io.h>
 #include <asm/overdrive/overdrive.h>
index 94f6165d33b8f64802bbaf4a4e56b4cb3e3c8b98..a3a7744c204796a785eb59f002ccdedd3195f398 100644 (file)
@@ -9,7 +9,6 @@
  * STMicroelectronics Overdrive Support.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <asm/io.h>
index 8b6f0c2af092c504edf84b76d713f76c7032ea34..ba143fa4afaafd99f23ae0120c992778b45c00c3 100644 (file)
@@ -9,7 +9,6 @@
  * board by S. Dunn, 2003.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/machvec.h>
 #include <asm/machvec_init.h>
index 456753d2649ca82db2f90c8cbf5a6b2856f4bd6c..3a1abfa2fefb99917b4df26e990b44acab14b899 100644 (file)
@@ -11,7 +11,6 @@
  * expectation of later SuperIO and PCMCIA access.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <asm/io.h>
index 52a98b524e1fe6263522db00488974dd079046a2..705b7ddcb0d28a4f17dd9197fbd9124238063d2d 100644 (file)
@@ -10,7 +10,6 @@
  * Lineo uSolutions, Inc. 2003.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <asm/io.h>
index 18a13c8da8a4fc039d485be8ba6f0e928d2eb8f6..b6608fff9f384e87f51d1b8f3d36cd6101f2f5cb 100644 (file)
@@ -10,7 +10,6 @@
  * Lineo uSolutions, Inc. 2003.
  */
 
-#include <linux/config.h>
 #include <asm/io.h>
 #include <asm/hs7751rvoip/hs7751rvoip.h>
 
index 8bbed60220ca41ba8f579db0848e4990e4e23cbb..caf967f77c6154fdec086e482e8cf94b7195d53f 100644 (file)
@@ -9,7 +9,6 @@
  * Machine vector for the Renesas Technology sales HS7751RVoIP
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/machvec.h>
index 7a442d1eca46861e891a0e832942756b4760c06e..7e5786b581109d38a7e7dfa9c92adb6b8742f123 100644 (file)
@@ -11,7 +11,6 @@
  * PCI initialization for the Renesas SH7751R HS7751RVoIP board
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/init.h>
index f1a78b6c714c6e863531842e8b09530a5b244f07..29fb5ff70fb54fc9f7b19f2ac3612820c7deb925 100644 (file)
@@ -10,7 +10,6 @@
  * Lineo uSolutions, Inc. 2003.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 
index e16915d9cda440a3b6e754c6f90e0075eb608cf1..154535440bbf7a626c76272e6b9c9ed36545c45b 100644 (file)
@@ -9,7 +9,6 @@
  * Atom Create Engineering Co., Ltd. 2002.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <asm/io.h>
index 9993259a894f568291dc2b142adfe931745b148d..4d16de71fac10df3484af2c33cf330f4448c0fa0 100644 (file)
@@ -9,7 +9,6 @@
  * This file contains Renesas Technology Sales RTS7751R2D specific LED code.
  */
 
-#include <linux/config.h>
 #include <asm/io.h>
 #include <asm/rts7751r2d/rts7751r2d.h>
 
index 610740512d56aeb9c967ba24dea4273ae807288c..5ed9e97ea19775c16afc15d591f2832778859815 100644 (file)
@@ -9,7 +9,6 @@
  * Machine vector for the Renesas Technology sales RTS7751R2D
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/types.h>
 
index 845979181059e708cf68d9d902e9b626a1bc1a27..8372d967f60120f249e71c0135578ca36459da04 100644 (file)
@@ -9,7 +9,6 @@
  * Jonathan Short.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 
index 3c89def46480332a3d9990450cea1c09488738f2..f449a94ddffde4822cc037ba5677c78627b106d0 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <asm/mach/se7300.h>
 #include <asm/io.h>
index 96c8c23d6c93390b56177507eb7b2422265fc474..216a78d1a108c26c3ff4ab1cc0b74e7cfd958a00 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <asm/irq.h>
index 02c7f846c84c089c2767b7426bedba38461f7e72..ad51f0a9c1e31999041ac59b5e408679bee4dcba 100644 (file)
@@ -11,7 +11,6 @@
  * This file contains Solution Engine specific LED code.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <asm/mach/se7300.h>
 
index 08536bc224dc14651f4c3c2e9a23f9dfdd7cc906..ebcd98d4c0818601535bfb52e051004d7579a9e7 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/machvec.h>
 #include <asm/machvec_init.h>
index 73648cbe3678a147ed2cb66cb5ecf53ca2a719ab..755df5ac4a4e81c1d6c12341a60b79ec51a58ead 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <asm/mach/se73180.h>
 #include <asm/io.h>
index 402735c7c89831cec484953cac01a8d3d5f8bb12..4344d0ef24aa05ea8845632e8996bb3d15f570c7 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <asm/irq.h>
index 1e8f1cf3e10f59a87e6c9cbaa24167df9144ce99..610439fde6ee5f3fc6ef7ece6e3be5455a41301f 100644 (file)
@@ -11,7 +11,6 @@
  * This file contains Solution Engine specific LED code.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <asm/mach/se73180.h>
 
index 07fa90c38a06d04910a2244568ee2a965aac1681..cdb7b5f8d942f7cf1520aa16c7661d95b6a4b142 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/machvec.h>
 #include <asm/machvec_init.h>
index 210897b315f4fa8fe6bbccca72a265e3d14151d6..3e558716ce100fac939c084ecb8285cf382094a4 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <asm/irq.h>
index 5c64e8ab2cfb9b56b981d28285559eb24e62869c..3cddbda025fc28d1cd8b7ee431a49042b30199fd 100644 (file)
@@ -9,7 +9,6 @@
  * This file contains Solution Engine specific LED code.
  */
 
-#include <linux/config.h>
 #include <asm/se/se.h>
 
 static void mach_led(int position, int value)
index f9b4c56cc47ea994377cf514479d887777cc090f..6ec07bd3dcf1f436a7808e59d776345f2f6c5aa4 100644 (file)
@@ -9,7 +9,6 @@
  * Machine vector for the Hitachi SolutionEngine
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/machvec.h>
index 2bed46fb607ddff63a1e9a5c250682ea915e54d0..7d1a071727cc57da4ed3bf18c7fc52f4e99c1217 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 
index ad71f3e66c112d89f1c7e5c2b1144661b5ddb166..bf6c023615df87306125654263eca40d0421ff7e 100644 (file)
@@ -9,7 +9,6 @@
  * Ian da Silva and Jeremy Siegel, 2001.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <asm/irq.h>
index 0c788230cf8f3c21ca9036bfae1bb0cef5d8c626..a878726d3c7c8d5019be1d96bbc94cb0d496a20c 100644 (file)
@@ -9,7 +9,6 @@
  * This file contains Solution Engine specific LED code.
  */
 
-#include <linux/config.h>
 #include <asm/se7751/se7751.h>
 
 static void mach_led(int position, int value)
index 16d386b7e3bf9891e14f5f8d5ba927171d906e78..62d8d3e62590567b527fe9f0110123fc95b86b37 100644 (file)
@@ -9,7 +9,6 @@
  * Machine vector for the Hitachi 7751 SolutionEngine
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/machvec.h>
index 1f273efd2cf519bdf809f70c876a9d3c9a9999df..3ee03014dea32d9466ad0caf57e19d782524523f 100644 (file)
@@ -11,7 +11,6 @@
  * PCI initialization for the Hitachi SH7751 Solution Engine board (MS7751SE01)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/init.h>
index 9d111bb884f9566b7ae904e969661f46da76ffdf..48dc5aee67d4d6c6cd4edc3225cd3749cfe29af3 100644 (file)
@@ -9,7 +9,6 @@
  * Ian da Silva and Jeremy Siegel, 2001.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 
index c851b0bec80f1244e4a415b58dede3b18334e73c..d38562ad6be818c876a1dcf40e91c0c1da1a690f 100644 (file)
@@ -6,7 +6,6 @@
  * This file contains Interface CTP/PCI-SH03 specific LED code.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 
 /* Cycle the LED's in the clasic Knightrider/Sun pattern */
index d2a08ca5eb85a0066b454ebf3951971c7769f766..60290f8f289c49fda70b3f6ee6912b6f6b63ea8a 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/hdreg.h>
index a290b1d09fb29dec319eeaa577d6582f131a91b5..2fe6a11765e9c4eb8a3d188c5b75935de69a27d7 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 
index 08fc98342a0b35550e9ff13b933f6ce7f32514a9..046b896d04f9e8c29023188b2b7863591e05a867 100644 (file)
@@ -14,7 +14,6 @@
  */
 /****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/interrupt.h>
index 1ed7f880b8c722142deb87cbdbb7be501c0caf94..4836b9422e2795c1fd4196661db3f24d6237426c 100644 (file)
@@ -11,7 +11,6 @@
  * License.  See linux/COPYING for more information.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/pci.h>
 #include <linux/wait.h>
index cb5999425d163641619ce4b403d10675c40e1b9a..236398fbc0834c00f94021bc7738f8dbacd27b30 100644 (file)
@@ -9,7 +9,6 @@
  * License.  See linux/COPYING for more information.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 
index 52a98e69d3f0a18664649b8b1d392365db19d6a3..a38f5351bd1670a4192e85f27f704357c0da64b2 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/io.h>
 
 #define LED_REGISTER 0xa6104d20
index 892b14d31405f10809f0d8d734b1c09e8923bea6..61b402a3f5d734ac689ea9ac7f68f7bfb2fafc2e 100644 (file)
@@ -11,7 +11,6 @@
  * License.  See linux/COPYING for more information.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
 #include <linux/ioport.h>
index 02e84f03f45c09bae860c94ff73b96485be5dc97..c5e4ed10876befa7665a83e0ba5f84bc24b792fa 100644 (file)
@@ -12,7 +12,6 @@
  * method to start debugging a new board during bring-up until proper board
  * setup code is written.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/machvec.h>
 #include <asm/irq.h>
index 88db04d325fb288c9da6ab012908a363a7dfe616..4c26a192277d5b4135a68fc542a4c1499b9669a7 100644 (file)
@@ -7,7 +7,6 @@
 
 .text
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 
        .global startup
index 211e9110074f9cc2d4e15753c52a05d10f3860d6..f2fed5ce5cc315b0dac14a1ffa6f568a77d6b950 100644 (file)
@@ -11,7 +11,6 @@
  * Modified to use standard LinuxSH BIOS by Greg Banks 7Jul2000
  */
 
-#include <linux/config.h>
 #include <asm/uaccess.h>
 #ifdef CONFIG_SH_STANDARD_BIOS
 #include <asm/sh_bios.h>
index 4c062d6b7a9737ffa35be5740976a42a4e777690..ac3062671db7ae122001c862e6d5b94f7469a666 100644 (file)
@@ -4,7 +4,6 @@
  *     Typical I/O routines for HD64461 system.
  */
 
-#include <linux/config.h>
 #include <asm/io.h>
 #include <asm/hd64461/hd64461.h>
 
index 724db04cb3929acf6c53ae8ff343a5964045c10c..9b361a91a1a6b0157ef1d12da2760a6a84cf6142 100644 (file)
@@ -4,7 +4,6 @@
  *     Hitachi HD64461 companion chip support
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 84cb142def0b150f7a463c9dc8f3ac79224b45d1..58704d066ae2d0931049b749aadfe49aed6a748f 100644 (file)
@@ -9,7 +9,6 @@
  * Typical I/O routines for HD64465 system.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <asm/io.h>
index cf9142c620b7fbc7b30916dab36e02482fc2b10a..b2b0aa48a3a7fa34fab4aa3c1191a4b194921991 100644 (file)
@@ -9,7 +9,6 @@
  * Copyright (C) 2000 YAEGASHI Takeshi
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 892214bade194edf67e0387b435ef04b3c792e50..6a74464dab2deaa787c32c1b0208e51862c79ac2 100644 (file)
@@ -21,7 +21,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index cca26c4c9d1b9e42f7052559df07bb1fb5fb9f81..fecd8f8d0466697b57c1e24f8418c0bb74dc9ffe 100644 (file)
@@ -12,7 +12,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/interrupt.h>
index e12418bb1fa5ee3f753ee284a3a8cd6410ca4039..6acf02b9375b8622f18e80ea0c53ed613dec4e43 100644 (file)
@@ -15,7 +15,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
index cf30e2fa51be0af89c87c56113a4dd90d205a262..63b1c6f4b8d255e71fd787b3cc0a1759bb3f6c98 100644 (file)
@@ -15,7 +15,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
index 9b43da67804b1da041abc2ad06fa0dc830b886e4..ae82c6ca05e593932f10d2b5a2ec7dd9a1c81c0c 100644 (file)
@@ -11,7 +11,6 @@
  * PCI initialization for the Hitachi Big Sur Evaluation Board
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/init.h>
index 69af80b93e3f1ca09ba157d112b124951c074fbd..23d52791917e8abc7cc83106eab9ee394806dc22 100644 (file)
@@ -15,7 +15,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
index beafa11f4d0c6a92fbced647be625096f0bddf03..83171d10141ac5223d1f991ef2fc3c5091695415 100644 (file)
@@ -11,7 +11,6 @@
  * PCI initialization for the Renesas SH7751R RTS7751R2D board
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/init.h>
index df2199732348e976988638c601e5ad26c6c6e317..e58d556e5f94b0cde1523815f6dacbdff9fdf7d6 100644 (file)
@@ -4,7 +4,6 @@
  * PCI initialization for the Interface CTP/PCI-SH03 board
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/init.h>
index 6fdb9765c99a5faca41c9694dc2b98026d9a0b60..3cbd14dd28fe709a71e0fc7d5655d72cde034147 100644 (file)
@@ -13,7 +13,6 @@
  * PCI initialization for the SnapGear boards
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/init.h>
index 30b14ac7ae5a99a9cfeea525a20f2951f1ce16d1..682f3dae305db3a0aa15c1a1b7804ae67e7c7152 100644 (file)
@@ -15,7 +15,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index cb67521311566d867c0a74745da8542078f9e086..21f3017e5c281844a695748e63f6339968bbf77d 100644 (file)
@@ -7,7 +7,6 @@
  * Support functions for the ST40 PCI hardware.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/smp.h>
 #include <linux/smp_lock.h>
index 7a3b18faa277696ba5a4e3ae7bac22246317ccb0..f1f9ab87f0b0fb3025bd7fe71690a7f0a809c0dd 100644 (file)
@@ -9,7 +9,6 @@
  *  Enable the CF configuration.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/io.h>
index 0373b65c77f9c452b9f9d60cb5ad9bf0cf2862be..0f545941fb4fdbcd2444f1a085c36da650108db1 100644 (file)
@@ -15,7 +15,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/module.h>
index 714963a25bbaaa7767ff86ad66adc6791724dcd4..80cd8108d36aca86a86e45da2decc7418b620135 100644 (file)
@@ -10,7 +10,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/module.h>
index 966c0858b71494b21f0bc4ddddc44f8d46037d70..cc04e9e239ffb13e7c0b4cea5b362d71a5541829 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 #include <linux/linkage.h>
-#include <linux/config.h>
 
        .align 2
        .data
index 8221e9d1551574c14a5552036e1a25830ec5356a..26a27df0650509c127f3339cd90a821365ca2b62 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 #include <linux/linkage.h>
-#include <linux/config.h>
 
        .align 2
        .data
index 83a4f91bce5aefab58cfdbd06e6c27f438ac2161..781dbb11c03894b56e04668a0311a63c99fbb47b 100644 (file)
@@ -19,7 +19,6 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/list.h>
 #include <linux/proc_fs.h>
index a440d36ee6187e3557edc577eea2f0c6bc59f60a..7dfd2ba75f7fb9d96fa1dcdfff8c2ce9475ff7ae 100644 (file)
@@ -13,7 +13,6 @@
 
 #include <linux/sys.h>
 #include <linux/linkage.h>
-#include <linux/config.h>
 #include <asm/asm-offsets.h>
 #include <asm/thread_info.h>
 #include <asm/cpu/mmu_context.h>
index 3887b4f6feb26778cb7bc9fc1962993835356ea5..f7eebbde329184808d7a4dfe955fb6756128f582 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index b0695cffec6ebf96d98c9f77d5d22bb8f49a1938..8221b37c97733872529afec598aea9046940df1d 100644 (file)
@@ -8,7 +8,6 @@
  * Version 2.  See the file COPYING for more details.
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 
 #define PAGE_SIZE      4096 /* must be same value as in <asm/page.h> */
index d5d032533a8b3b1445f70ab6430b5e4deb6e7fa5..245ed8f945e8e705b72b1db956f9a5e40ada2e36 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/smp.h>
 #include <linux/user.h>
index 62c7d1c0ad7bd2a0f1070c731e5f63a4156e8384..6c0fb7c4af1190f40f1fcca3f93b2e15a82fedc9 100644 (file)
@@ -10,7 +10,6 @@
  * Free Software Foundation; either version 2 of the License, or (at your
  * option) any later version.
  */
-#include <linux/config.h>
 #include <linux/cache.h>
 #include <linux/cpumask.h>
 #include <linux/delay.h>
index 314a275c04e0729fc1261441fdcded41962de0c2..a1589f85499dc58323f5785d7848178f18c3b3ea 100644 (file)
@@ -10,7 +10,6 @@
  *    Copyright (C) 1991, 1992, 1995  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index 7eb06719d844deed72de1c33f3b459cda1286181..d9db1180f770faa264b561a3f20c14e32d1b671b 100644 (file)
@@ -12,7 +12,6 @@
  * 'Traps.c' handles hardware traps and faults after we have saved some
  * state in 'entry.S'.
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 51bdc1cf7838326278a97feac819cb17a3dc396b..95fdd9135fcfa54f2f1cb8034ace006a78009036 100644 (file)
@@ -2,7 +2,6 @@
  * ld script to make SuperH Linux kernel
  * Written by Niibe Yutaka
  */
-#include <linux/config.h>
 #include <asm-generic/vmlinux.lds.h>
 
 #ifdef CONFIG_CPU_LITTLE_ENDIAN
index 55f227441f9ed9febb46a8204e6ce986af508966..db6b736537adf9ff7e46f7aa7d69bd8260a83a19 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 #include <linux/linkage.h>
-#include <linux/config.h>
 
 /*
  * void *memcpy(void *dst, const void *src, size_t n);
index ab833adf28c309f367e245119123ebeceb2f1dc1..524cea5b47f9ca7c93685a1d7bfa2746d49efc07 100644 (file)
@@ -10,7 +10,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mman.h>
 #include <linux/mm.h>
index ae58a61f0e660263014356c524baae0769dd98d3..08acead7b2a1b51070b1f2bf93259bfbd4b55523 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 2001, 2002  Niibe Yutaka
  *
  */
-#include <linux/config.h>
 #include <linux/linkage.h>
 
 /*
index 505ede7c21bf416f7c4e3cb335ac4f156840ddc1..c1cf4463d09db8f1237a03fb5d614a08ae603621 100644 (file)
@@ -4,7 +4,6 @@
  *   linux/arch/i386/mm/extable.c
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 
index a3568fd51508e4435dfb217f4c6d42089dc7ea0c..2a85bc15a41238ce2d84e5bf891b63b589bd67ae 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 2002, 2003 David S. Miller (davem@redhat.com)
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/fs.h>
 #include <linux/mm.h>
index 77b4a838fe10f494e9c0896c06479f9abb699721..8ea27ca4b700c1c080cfa3de90d9617f7a0b34a8 100644 (file)
@@ -9,7 +9,6 @@
  *   Copyright (C) 1995  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index e5907c7330e5c44a85946e4a642cb67f2ddfebd3..c776b60fc25018ebfb0cf75e9976c603b65fdecd 100644 (file)
@@ -6,7 +6,6 @@
  *
  * Released under the terms of the GNU GPL v2.0.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mman.h>
 #include <linux/mm.h>
index 89dbf45df3c862908c9aa9c16d68236585d0e310..ee7a1b6acb83dbfdaea6a31028de1753c989cca9 100644 (file)
@@ -9,7 +9,6 @@
  * Adapted for SHmedia from sh by Stuart Menefy, May 2002
  */
 
-#include <linux/config.h>
 #include <asm/uaccess.h>
 
 /* cache.c */
index 15a737d9bba8327a76a0779222b6e9e8960b290a..59c2ef4aeda5b96b96f159e2106dd767634f2956 100644 (file)
@@ -4,7 +4,6 @@
  * Modified by Stuart Menefy from arch/sh/vmlinux.lds.S written by Niibe Yutaka
  */
 
-#include <linux/config.h>
 
 #ifdef CONFIG_LITTLE_ENDIAN
 /* OUTPUT_FORMAT("elf32-sh64l-linux", "elf32-sh64l-linux", "elf32-sh64l-linux") */
index 56d6f9f715243c3a3bb0c66374cd5b38666dbf00..9079d1e94f2b53353fdf57566f47ec16865f79b1 100644 (file)
@@ -9,7 +9,6 @@
  * Machine-independent functions for handling 8-digit alphanumeric display
  * (e.g. Agilent HDSP-253x)
  */
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/sched.h>
 
index 2e2cfe20b4261bf4cbaa2c32f1982e5a5c24b930..40d45346248d6cb651e81928935f5353b907df6b 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sys.h>
 
index cc0b628a9ea7a170e961c9a6bf960d5cd423bff7..f3740ddbc47190fc99ec05c7cfda8a75c25cebca 100644 (file)
@@ -20,7 +20,6 @@
  *    Add early SCIF console DTLB mapping.
  */
 
-#include <linux/config.h>
 
 #include <asm/page.h>
 #include <asm/mmu_context.h>
index 675776a5477e04d5e72dfcda1c02f42d61878d00..e7e07f8749c9907567ff8a83053b45f2577eea61 100644 (file)
@@ -15,7 +15,6 @@
  * Naturally it's not a 1:1 relation, but there are similarities.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/kernel_stat.h>
 #include <linux/signal.h>
index fa730f5fe2e6e6729ab1b9a2b19ae4c7556ecfc9..42c07d2e71d932cce95538fb1edae1cd30e8b035 100644 (file)
@@ -15,7 +15,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/kernel.h>
index cf993c4a9fdc0f3241af701481e4a2fc031c9bec..e35d3f667fb4e62192676e8cdd3bb0c3685034d7 100644 (file)
@@ -8,7 +8,6 @@
  *
  * Flash the LEDs
  */
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/sched.h>
 
index 6197879e8578e30e7968945e448fec81faf2f66e..3c04951ff736ba052989fbd8a57bf1525d8dc954 100644 (file)
@@ -9,7 +9,6 @@
  * Support functions for the SH5 PCI hardware.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/rwsem.h>
 #include <linux/smp.h>
index 1da9c61d6823558b6d63c0cf82340102dc540a23..dba8e14013b6b9c2bc3166a4fcef97511cb78804 100644 (file)
@@ -35,7 +35,6 @@
 #define __KERNEL_SYSCALLS__
 #include <stdarg.h>
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/rwsem.h>
 #include <linux/mm.h>
index cd22e94713165ce9e9335936a78852d68d522658..4e95e18b46d90308fa01093bb27f5aa2c80c9f15 100644 (file)
@@ -17,7 +17,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/rwsem.h>
 #include <linux/sched.h>
index da98d8dbcf95324284de3d601e2364cc1923c896..0359fa647bbcdc988fb793e0638108a4e7f2b00e 100644 (file)
@@ -39,7 +39,6 @@
 #include <linux/tty.h>
 #include <linux/ioport.h>
 #include <linux/delay.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/seq_file.h>
 #include <linux/blkdev.h>
index 6f3a1c946339442301f66de7e5ce78dc19ed5f69..6efdfa2c3994b5f8d7228eb9c4298b7f2a145eab 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/rwsem.h>
 #include <linux/module.h>
 #include <linux/smp.h>
index 6b8f4d22abc69a2b2d49118281cb7f04cdb63e85..ba9eb992f4a5b56cfc7f48338e90df79be1ebdb0 100644 (file)
@@ -15,7 +15,6 @@
  *      Copyright (C) 1991, 1992, 1995  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/rwsem.h>
 #include <linux/sched.h>
index 7d9f7a6339a0716a50f5450151b1576f0121664f..a8fcc3a71585da3dbe4dd2ebc7b111c86f69d742 100644 (file)
@@ -22,7 +22,6 @@
  *    Remove support for ancient toolchains.
  */
 
-#include <linux/config.h>
 #include <asm/page.h>
 #include <asm/cache.h>
 #include <asm/processor.h>
index a82d8f1a7a64562df53bf5512352ac44daf62cf6..53c1cabb3428c1f2487fed18eaafaccbb9a903d1 100644 (file)
@@ -7,7 +7,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
index 58087331b8a6acd3da88e41f8cb7912635258d64..1326f45f31ebf6ce3300c1c438f5ff85b6112f95 100644 (file)
@@ -8,7 +8,6 @@
 -- Copyright 2004 Richard Curnow (evt_debug etc)
 --
 --------------------------------------------------------------------------*/
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 277e11b10c2b89dfe0107f7381d04bb68faed8d7..587baa3dffb90c848911e8271161895fe99331e0 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/delay.h>
index 83c5f0c04958c06e84f7fee02452e6c354249552..5cd3d5e9c762196123b0729ae53fab8194974655 100644 (file)
@@ -9,7 +9,6 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  */
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <asm/io.h>
 
index c785d0aa194dbc731f5189541cc156d4cb071106..fba436a92bfa2e7c5e047cd32164f03142743e8a 100644 (file)
@@ -6,7 +6,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <asm/string.h>
 
index dad2f254efeec811ca13da849c65bd4a5e2df964..327653914007b808e1f753b12aa0598a2441aba0 100644 (file)
@@ -10,7 +10,6 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <asm/param.h>
 
index d6a538c707094c37a137b76048d56c49be305399..2d06e9a551378f60bd5027c51223e228b9597c59 100644 (file)
@@ -9,7 +9,6 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  */
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <asm/io.h>
 #include <asm/cayman.h>
index 05eb7cdc26f0557921231486893d869338974eef..cac94219dd5f70bc63fd639c2cab3ae8272520dd 100644 (file)
@@ -12,7 +12,6 @@
  * Copyright (C) 2002 Stuart Menefy
  */
 
-#include <linux/config.h>
 #include <asm/irq.h>
 #include <asm/page.h>
 #include <asm/io.h>
index c793245629ad722b30323dab8ec8f84a5eec0231..d84895dda3cdddb445bb50e806045c38414c7a3a 100644 (file)
@@ -21,7 +21,6 @@
 
 #include <linux/stddef.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
 #include <linux/delay.h>
index 3938a65c4b2532aa46e82b1a35924e4020845406..fcd90afac2975373e98006729766b93eb3c0a6e0 100644 (file)
@@ -20,7 +20,6 @@
 
 #include <linux/stddef.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
 #include <linux/delay.h>
index a9ba03fc5beddde6fa49b68c8ae83301b4d38def..eb98a1640cc1f0669518045519e02c994fd78e94 100644 (file)
@@ -23,7 +23,6 @@
 
 #include <linux/stddef.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
 #include <linux/delay.h>
index a68639cb4e5a105964dbf70c7d95b64fbaa3afee..f09400c1ad1b4e8b19af701915955162097ccbd3 100644 (file)
@@ -17,7 +17,6 @@
 
 #include <linux/stddef.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/bootmem.h>
 #include <linux/delay.h>
index c0c1b21350d86d4001c4fed500e40a91363e9c02..421487cfff4cb77a30ca570b142f281ac6e51218 100644 (file)
@@ -13,7 +13,6 @@
 
 /****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mman.h>
 #include <linux/mm.h>
index 9da50e28b3fa65971a3398f80fabb0ce8621334a..a2e6e05637729298d7ed2b04d16d6cca135a38b8 100644 (file)
@@ -10,7 +10,6 @@
  *
  * Cloned from the 2.5 SH version..
  */
-#include <linux/config.h>
 #include <linux/rwsem.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
index 3d89f2a6c785cf70582cac9d231fb4e729e8eb01..187cf01750b80fe43ce2f8f32375b360a16a819f 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 2002, 2003 David S. Miller (davem@redhat.com)
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/fs.h>
 #include <linux/mm.h>
index 1f55231f07de966b4f88cee63f12e46b5502ca5a..29d7cfd1c970b162adf4a13738c444e7048bd305 100644 (file)
@@ -10,7 +10,6 @@
  * On sparc, thread_info data is static and TI_XXX offsets are computed by hand.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 // #include <linux/mm.h>
 
index d3b3648362c09c33aee079aa799f5f78921793d1..118f3eca373ea4bb70505a6a29cdb32c39375f26 100644 (file)
@@ -5,7 +5,6 @@
 
 #include <linux/stddef.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/spinlock.h>
 #include <asm/oplib.h>
 #include <asm/io.h>
index d7bfc61d28799ed5ae82cee567e71cfee5a9fda7..259a559d4cea120fb2beb13ad808ef1f152056f8 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/smp.h>
index fcb0c049c3feb7e4d4c4be6ae0701d6c16ac760f..adba9dfee35e0954326829c3a9c7f7a3318a2268 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/threads.h>
 #include <linux/string.h>
index a7a4892956c894f76d136f42bb6709693493dc4a..81c0cbd96ff01f271f888892aa79543ffa417661 100644 (file)
@@ -7,7 +7,6 @@
  * Fixes for different platforms by Pete Zaitcev.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/init.h>
index 887f6a160c589a31c066055965c970922372d62b..a4edff4c3be3a9a661a5e80d9d50ee477db8bd23 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 1997 Anton Blanchard (anton@progsoc.uts.edu.au)
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 
 #include <asm/head.h>
index 42d3de59d19bfe931566d43dac181c71abb68632..9a219e8b5ddb3edb8f6726764b7cff7cf43a8f86 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 #include <linux/version.h>
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/head.h>
index 2e1b0f6e99d478f2f20628a9eabdeabc7f5a8b20..3a5bad525394a6ea67df5e59de37f9c2b4976a2c 100644 (file)
@@ -5,7 +5,6 @@
  * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/init.h>
index 79d177149fdb351825c750559a05a0f4b92b4094..8654b446ac9ede55439c4639158d296213ae3c2e 100644 (file)
@@ -26,6 +26,7 @@
  */
 
 #include <linux/config.h>
+#include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
@@ -40,6 +41,7 @@
 #include <asm/vaddrs.h>
 #include <asm/oplib.h>
 #include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/sbus.h>
 #include <asm/page.h>
 #include <asm/pgalloc.h>
@@ -143,6 +145,21 @@ void __iomem *sbus_ioremap(struct resource *phyres, unsigned long offset,
            phyres->start + offset, size, name);
 }
 
+void __iomem *of_ioremap(struct resource *res, unsigned long offset,
+                        unsigned long size, char *name)
+{
+       return _sparc_alloc_io(res->flags & 0xF,
+                              res->start + offset,
+                              size, name);
+}
+EXPORT_SYMBOL(of_ioremap);
+
+void of_iounmap(void __iomem *base, unsigned long size)
+{
+       iounmap(base);
+}
+EXPORT_SYMBOL(of_iounmap);
+
 /*
  */
 void sbus_iounmap(volatile void __iomem *addr, unsigned long size)
index aac8af5aae51ddcea1a954ee7876b104c2d40576..b81af076ef4828fc59e4b630369cafa867baee07 100644 (file)
@@ -11,7 +11,6 @@
  *  Copyright (C) 1998-2000 Anton Blanchard (anton@samba.org)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/ptrace.h>
index 80a809478781845ecba6962b7f7b1ce534b8d0c2..bc956c5303764ccc1d4bdd87d271d4044aedff77 100644 (file)
@@ -129,6 +129,26 @@ static int of_device_resume(struct device * dev)
        return error;
 }
 
+static int node_match(struct device *dev, void *data)
+{
+       struct of_device *op = to_of_device(dev);
+       struct device_node *dp = data;
+
+       return (op->node == dp);
+}
+
+struct of_device *of_find_device_by_node(struct device_node *dp)
+{
+       struct device *dev = bus_find_device(&of_bus_type, NULL,
+                                            dp, node_match);
+
+       if (dev)
+               return to_of_device(dev);
+
+       return NULL;
+}
+EXPORT_SYMBOL(of_find_device_by_node);
+
 #ifdef CONFIG_PCI
 struct bus_type ebus_bus_type = {
        .name   = "ebus",
@@ -153,10 +173,459 @@ struct bus_type sbus_bus_type = {
 EXPORT_SYMBOL(sbus_bus_type);
 #endif
 
+struct bus_type of_bus_type = {
+       .name   = "of",
+       .match  = of_platform_bus_match,
+       .probe  = of_device_probe,
+       .remove = of_device_remove,
+       .suspend        = of_device_suspend,
+       .resume = of_device_resume,
+};
+EXPORT_SYMBOL(of_bus_type);
+
+static inline u64 of_read_addr(u32 *cell, int size)
+{
+       u64 r = 0;
+       while (size--)
+               r = (r << 32) | *(cell++);
+       return r;
+}
+
+static void __init get_cells(struct device_node *dp,
+                            int *addrc, int *sizec)
+{
+       if (addrc)
+               *addrc = of_n_addr_cells(dp);
+       if (sizec)
+               *sizec = of_n_size_cells(dp);
+}
+
+/* Max address size we deal with */
+#define OF_MAX_ADDR_CELLS      4
+
+struct of_bus {
+       const char      *name;
+       const char      *addr_prop_name;
+       int             (*match)(struct device_node *parent);
+       void            (*count_cells)(struct device_node *child,
+                                      int *addrc, int *sizec);
+       u64             (*map)(u32 *addr, u32 *range, int na, int ns, int pna);
+       int             (*translate)(u32 *addr, u64 offset, int na);
+       unsigned int    (*get_flags)(u32 *addr);
+};
+
+/*
+ * Default translator (generic bus)
+ */
+
+static void of_bus_default_count_cells(struct device_node *dev,
+                                      int *addrc, int *sizec)
+{
+       get_cells(dev, addrc, sizec);
+}
+
+static u64 of_bus_default_map(u32 *addr, u32 *range, int na, int ns, int pna)
+{
+       u64 cp, s, da;
+
+       cp = of_read_addr(range, na);
+       s  = of_read_addr(range + na + pna, ns);
+       da = of_read_addr(addr, na);
+
+       if (da < cp || da >= (cp + s))
+               return OF_BAD_ADDR;
+       return da - cp;
+}
+
+static int of_bus_default_translate(u32 *addr, u64 offset, int na)
+{
+       u64 a = of_read_addr(addr, na);
+       memset(addr, 0, na * 4);
+       a += offset;
+       if (na > 1)
+               addr[na - 2] = a >> 32;
+       addr[na - 1] = a & 0xffffffffu;
+
+       return 0;
+}
+
+static unsigned int of_bus_default_get_flags(u32 *addr)
+{
+       return IORESOURCE_MEM;
+}
+
+
+/*
+ * PCI bus specific translator
+ */
+
+static int of_bus_pci_match(struct device_node *np)
+{
+       return !strcmp(np->type, "pci") || !strcmp(np->type, "pciex");
+}
+
+static void of_bus_pci_count_cells(struct device_node *np,
+                                  int *addrc, int *sizec)
+{
+       if (addrc)
+               *addrc = 3;
+       if (sizec)
+               *sizec = 2;
+}
+
+static u64 of_bus_pci_map(u32 *addr, u32 *range, int na, int ns, int pna)
+{
+       u64 cp, s, da;
+
+       /* Check address type match */
+       if ((addr[0] ^ range[0]) & 0x03000000)
+               return OF_BAD_ADDR;
+
+       /* Read address values, skipping high cell */
+       cp = of_read_addr(range + 1, na - 1);
+       s  = of_read_addr(range + na + pna, ns);
+       da = of_read_addr(addr + 1, na - 1);
+
+       if (da < cp || da >= (cp + s))
+               return OF_BAD_ADDR;
+       return da - cp;
+}
+
+static int of_bus_pci_translate(u32 *addr, u64 offset, int na)
+{
+       return of_bus_default_translate(addr + 1, offset, na - 1);
+}
+
+static unsigned int of_bus_pci_get_flags(u32 *addr)
+{
+       unsigned int flags = 0;
+       u32 w = addr[0];
+
+       switch((w >> 24) & 0x03) {
+       case 0x01:
+               flags |= IORESOURCE_IO;
+       case 0x02: /* 32 bits */
+       case 0x03: /* 64 bits */
+               flags |= IORESOURCE_MEM;
+       }
+       if (w & 0x40000000)
+               flags |= IORESOURCE_PREFETCH;
+       return flags;
+}
+
+/*
+ * SBUS bus specific translator
+ */
+
+static int of_bus_sbus_match(struct device_node *np)
+{
+       return !strcmp(np->name, "sbus") ||
+               !strcmp(np->name, "sbi");
+}
+
+static void of_bus_sbus_count_cells(struct device_node *child,
+                                  int *addrc, int *sizec)
+{
+       if (addrc)
+               *addrc = 2;
+       if (sizec)
+               *sizec = 1;
+}
+
+static u64 of_bus_sbus_map(u32 *addr, u32 *range, int na, int ns, int pna)
+{
+       return of_bus_default_map(addr, range, na, ns, pna);
+}
+
+static int of_bus_sbus_translate(u32 *addr, u64 offset, int na)
+{
+       return of_bus_default_translate(addr, offset, na);
+}
+
+static unsigned int of_bus_sbus_get_flags(u32 *addr)
+{
+       return IORESOURCE_MEM;
+}
+
+
+/*
+ * Array of bus specific translators
+ */
+
+static struct of_bus of_busses[] = {
+       /* PCI */
+       {
+               .name = "pci",
+               .addr_prop_name = "assigned-addresses",
+               .match = of_bus_pci_match,
+               .count_cells = of_bus_pci_count_cells,
+               .map = of_bus_pci_map,
+               .translate = of_bus_pci_translate,
+               .get_flags = of_bus_pci_get_flags,
+       },
+       /* SBUS */
+       {
+               .name = "sbus",
+               .addr_prop_name = "reg",
+               .match = of_bus_sbus_match,
+               .count_cells = of_bus_sbus_count_cells,
+               .map = of_bus_sbus_map,
+               .translate = of_bus_sbus_translate,
+               .get_flags = of_bus_sbus_get_flags,
+       },
+       /* Default */
+       {
+               .name = "default",
+               .addr_prop_name = "reg",
+               .match = NULL,
+               .count_cells = of_bus_default_count_cells,
+               .map = of_bus_default_map,
+               .translate = of_bus_default_translate,
+               .get_flags = of_bus_default_get_flags,
+       },
+};
+
+static struct of_bus *of_match_bus(struct device_node *np)
+{
+       int i;
+
+       for (i = 0; i < ARRAY_SIZE(of_busses); i ++)
+               if (!of_busses[i].match || of_busses[i].match(np))
+                       return &of_busses[i];
+       BUG();
+       return NULL;
+}
+
+static int __init build_one_resource(struct device_node *parent,
+                                    struct of_bus *bus,
+                                    struct of_bus *pbus,
+                                    u32 *addr,
+                                    int na, int ns, int pna)
+{
+       u32 *ranges;
+       unsigned int rlen;
+       int rone;
+       u64 offset = OF_BAD_ADDR;
+
+       ranges = of_get_property(parent, "ranges", &rlen);
+       if (ranges == NULL || rlen == 0) {
+               offset = of_read_addr(addr, na);
+               memset(addr, 0, pna * 4);
+               goto finish;
+       }
+
+       /* Now walk through the ranges */
+       rlen /= 4;
+       rone = na + pna + ns;
+       for (; rlen >= rone; rlen -= rone, ranges += rone) {
+               offset = bus->map(addr, ranges, na, ns, pna);
+               if (offset != OF_BAD_ADDR)
+                       break;
+       }
+       if (offset == OF_BAD_ADDR)
+               return 1;
+
+       memcpy(addr, ranges + na, 4 * pna);
+
+finish:
+       /* Translate it into parent bus space */
+       return pbus->translate(addr, offset, pna);
+}
+
+static void __init build_device_resources(struct of_device *op,
+                                         struct device *parent)
+{
+       struct of_device *p_op;
+       struct of_bus *bus;
+       int na, ns;
+       int index, num_reg;
+       void *preg;
+
+       if (!parent)
+               return;
+
+       p_op = to_of_device(parent);
+       bus = of_match_bus(p_op->node);
+       bus->count_cells(op->node, &na, &ns);
+
+       preg = of_get_property(op->node, bus->addr_prop_name, &num_reg);
+       if (!preg || num_reg == 0)
+               return;
+
+       /* Convert to num-cells.  */
+       num_reg /= 4;
+
+       /* Conver to num-entries.  */
+       num_reg /= na + ns;
+
+       for (index = 0; index < num_reg; index++) {
+               struct resource *r = &op->resource[index];
+               u32 addr[OF_MAX_ADDR_CELLS];
+               u32 *reg = (preg + (index * ((na + ns) * 4)));
+               struct device_node *dp = op->node;
+               struct device_node *pp = p_op->node;
+               struct of_bus *pbus;
+               u64 size, result = OF_BAD_ADDR;
+               unsigned long flags;
+               int dna, dns;
+               int pna, pns;
+
+               size = of_read_addr(reg + na, ns);
+               flags = bus->get_flags(reg);
+
+               memcpy(addr, reg, na * 4);
+
+               /* If the immediate parent has no ranges property to apply,
+                * just use a 1<->1 mapping.
+                */
+               if (of_find_property(pp, "ranges", NULL) == NULL) {
+                       result = of_read_addr(addr, na);
+                       goto build_res;
+               }
+
+               dna = na;
+               dns = ns;
+
+               while (1) {
+                       dp = pp;
+                       pp = dp->parent;
+                       if (!pp) {
+                               result = of_read_addr(addr, dna);
+                               break;
+                       }
+
+                       pbus = of_match_bus(pp);
+                       pbus->count_cells(dp, &pna, &pns);
+
+                       if (build_one_resource(dp, bus, pbus, addr, dna, dns, pna))
+                               break;
+
+                       dna = pna;
+                       dns = pns;
+                       bus = pbus;
+               }
+
+       build_res:
+               memset(r, 0, sizeof(*r));
+               if (result != OF_BAD_ADDR) {
+                       r->start = result & 0xffffffff;
+                       r->end = result + size - 1;
+                       r->flags = flags | ((result >> 32ULL) & 0xffUL);
+               } else {
+                       r->start = ~0UL;
+                       r->end = ~0UL;
+               }
+               r->name = op->node->name;
+       }
+}
+
+static struct of_device * __init scan_one_device(struct device_node *dp,
+                                                struct device *parent)
+{
+       struct of_device *op = kzalloc(sizeof(*op), GFP_KERNEL);
+       struct linux_prom_irqs *intr;
+       int len, i;
+
+       if (!op)
+               return NULL;
+
+       op->node = dp;
+
+       op->clock_freq = of_getintprop_default(dp, "clock-frequency",
+                                              (25*1000*1000));
+       op->portid = of_getintprop_default(dp, "upa-portid", -1);
+       if (op->portid == -1)
+               op->portid = of_getintprop_default(dp, "portid", -1);
+
+       intr = of_get_property(dp, "intr", &len);
+       if (intr) {
+               op->num_irqs = len / sizeof(struct linux_prom_irqs);
+               for (i = 0; i < op->num_irqs; i++)
+                       op->irqs[i] = intr[i].pri;
+       } else {
+               unsigned int *irq = of_get_property(dp, "interrupts", &len);
+
+               if (irq) {
+                       op->num_irqs = len / sizeof(unsigned int);
+                       for (i = 0; i < op->num_irqs; i++)
+                               op->irqs[i] = irq[i];
+               } else {
+                       op->num_irqs = 0;
+               }
+       }
+       if (sparc_cpu_model == sun4d) {
+               static int pil_to_sbus[] = {
+                       0, 0, 1, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 0,
+               };
+               struct device_node *busp = dp->parent;
+               struct linux_prom_registers *regs;
+               int board = of_getintprop_default(busp, "board#", 0);
+               int slot;
+
+               regs = of_get_property(dp, "reg", NULL);
+               slot = regs->which_io;
+
+               for (i = 0; i < op->num_irqs; i++) {
+                       int this_irq = op->irqs[i];
+                       int sbusl = pil_to_sbus[this_irq];
+
+                       if (sbusl)
+                               this_irq = (((board + 1) << 5) +
+                                           (sbusl << 2) +
+                                           slot);
+
+                       op->irqs[i] = this_irq;
+               }
+       }
+
+       build_device_resources(op, parent);
+
+       op->dev.parent = parent;
+       op->dev.bus = &of_bus_type;
+       if (!parent)
+               strcpy(op->dev.bus_id, "root");
+       else
+               strcpy(op->dev.bus_id, dp->path_component_name);
+
+       if (of_device_register(op)) {
+               printk("%s: Could not register of device.\n",
+                      dp->full_name);
+               kfree(op);
+               op = NULL;
+       }
+
+       return op;
+}
+
+static void __init scan_tree(struct device_node *dp, struct device *parent)
+{
+       while (dp) {
+               struct of_device *op = scan_one_device(dp, parent);
+
+               if (op)
+                       scan_tree(dp->child, &op->dev);
+
+               dp = dp->sibling;
+       }
+}
+
+static void __init scan_of_devices(void)
+{
+       struct device_node *root = of_find_node_by_path("/");
+       struct of_device *parent;
+
+       parent = scan_one_device(root, NULL);
+       if (!parent)
+               return;
+
+       scan_tree(root->child, &parent->dev);
+}
+
 static int __init of_bus_driver_init(void)
 {
-       int err = 0;
+       int err;
 
+       err = bus_register(&of_bus_type);
 #ifdef CONFIG_PCI
        if (!err)
                err = bus_register(&ebus_bus_type);
@@ -165,7 +634,11 @@ static int __init of_bus_driver_init(void)
        if (!err)
                err = bus_register(&sbus_bus_type);
 #endif
-       return 0;
+
+       if (!err)
+               scan_of_devices();
+
+       return err;
 }
 
 postcore_initcall(of_bus_driver_init);
index 5df3ebdc0ab180b3cbffdfa5a3d9cdbebf33439b..22422ff1060299ba7bd1e839d0d880a2f7dccbb8 100644 (file)
@@ -10,7 +10,6 @@
  * CP-1200 by Eric Brower.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/init.h>
index 118cac84a0f5445ab9a57a831321706946e004c4..89a28cc018c9b0340fc8ec6efda5acf08f1efff4 100644 (file)
@@ -22,7 +22,6 @@
 #include <linux/slab.h>
 #include <linux/user.h>
 #include <linux/a.out.h>
-#include <linux/config.h>
 #include <linux/smp.h>
 #include <linux/smp_lock.h>
 #include <linux/reboot.h>
index 946ce6d15819ae12448e2d4bc2bf86df0d2f7dc3..4b06dcb00ebde6212caafa0ff47989f86ce57f7e 100644 (file)
@@ -190,6 +190,36 @@ int of_getintprop_default(struct device_node *np, const char *name, int def)
 }
 EXPORT_SYMBOL(of_getintprop_default);
 
+int of_n_addr_cells(struct device_node *np)
+{
+       int* ip;
+       do {
+               if (np->parent)
+                       np = np->parent;
+               ip = of_get_property(np, "#address-cells", NULL);
+               if (ip != NULL)
+                       return *ip;
+       } while (np->parent);
+       /* No #address-cells property for the root node, default to 2 */
+       return 2;
+}
+EXPORT_SYMBOL(of_n_addr_cells);
+
+int of_n_size_cells(struct device_node *np)
+{
+       int* ip;
+       do {
+               if (np->parent)
+                       np = np->parent;
+               ip = of_get_property(np, "#size-cells", NULL);
+               if (ip != NULL)
+                       return *ip;
+       } while (np->parent);
+       /* No #size-cells property for the root node, default to 1 */
+       return 1;
+}
+EXPORT_SYMBOL(of_n_size_cells);
+
 int of_set_property(struct device_node *dp, const char *name, void *val, int len)
 {
        struct property **prevp;
index 2e5d08ce217b28104dc9e8ce9d49bec867ed5d9d..8606ef4e52e9185d8e943cfb3fd6975011e0fa6b 100644 (file)
@@ -19,7 +19,6 @@
 #include <linux/a.out.h>
 #include <linux/tty.h>
 #include <linux/delay.h>
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/seq_file.h>
 #include <linux/syscalls.h>
index 0748d8147bbf670f2ff1bb7f027eb9034091f5f7..c9301b9143cab90d2bd577393b539694be09e4e1 100644 (file)
@@ -7,7 +7,6 @@
  *  Copyright (C) 1997 Eddie C. Dost   (ecd@skynet.be)
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/signal.h>
index fd7deabf998265b49bc662f4545411977445025e..5fb987fc3d63ac4e4aad336ac562ae78fd9e7b32 100644 (file)
@@ -9,7 +9,6 @@
 #define EXPORT_SYMTAB_STROPS
 #define PROMLIB_INTERNAL
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/smp.h>
index 0f2d8d9cbdbaf3d8998b92aeb771ae218fef6d66..50e988b9c8c3fae65d61abbe80fac21a8edb4c34 100644 (file)
@@ -9,7 +9,6 @@
  *  Copyright (C) 1996 Dave Redman (djhr@tadpole.co.uk)
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/linkage.h>
 #include <linux/kernel_stat.h>
index 9c30e35c88f7669bd93a86942243ece4784cd831..cbf8ee81cf5b3bef136ff38138317a7224bc7468 100644 (file)
@@ -6,7 +6,6 @@
  *  Heavily based on arch/sparc/kernel/irq.c.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/linkage.h>
 #include <linux/kernel_stat.h>
index a296c13ac18f689fee6e65faa6ad97c2b289c5dd..38ac672b1149b345607c910c30e01f3ba796b460 100644 (file)
@@ -9,7 +9,6 @@
  *  Copyright (C) 1996 Dave Redman (djhr@tadpole.co.uk)
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/linkage.h>
 #include <linux/kernel_stat.h>
index fb7578554c78346a2d49703a9577743f90d878cb..c09afd96dd9c8f95d6fc8771a904e061ee716da2 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 288de276d9ffd49c7e54bb511c7106a3414fc4c8..aa0fb2efb6154241032343e30a748cea59dc5739 100644 (file)
@@ -196,7 +196,7 @@ asmlinkage int sunos_brk(unsigned long brk)
         * simple, it hopefully works in most obvious cases.. Easy to
         * fool it, but this should catch most mistakes.
         */
-       freepages = get_page_cache_size();
+       freepages = global_page_state(NR_FILE_PAGES);
        freepages >>= 1;
        freepages += nr_free_pages();
        freepages += nr_swap_pages;
index 2856551bddf1b7451aab44512f84cd4aae0f7eab..10df38eeae085096535a5e31ed9cbbda9dfa35be 100644 (file)
@@ -9,7 +9,6 @@
  * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
  */
 
-#include <linux/config.h>
 
        .data
        .align 4
index 7dadcdb4ca42540b6dfef30afef9d3957bdec44d..04eb1eab6e3e17f2777045c86a31650900cb999e 100644 (file)
@@ -15,7 +15,6 @@
  * 1997-09-10  Updated NTP code according to technical memorandum Jan '96
  *             "A Kernel Model for Precision Timekeeping" by Dave Mills
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/sched.h>
@@ -42,6 +41,7 @@
 #include <asm/sun4paddr.h>
 #include <asm/page.h>
 #include <asm/pcic.h>
+#include <asm/of_device.h>
 
 extern unsigned long wall_jiffies;
 
@@ -273,83 +273,31 @@ static __inline__ void sun4_clock_probe(void)
 #endif
 }
 
-/* Probe for the mostek real time clock chip. */
-static __inline__ void clock_probe(void)
+static int __devinit clock_probe(struct of_device *op, const struct of_device_id *match)
 {
-       struct linux_prom_registers clk_reg[2];
-       char model[128];
-       register int node, cpuunit, bootbus;
-       struct resource r;
-
-       cpuunit = bootbus = 0;
-       memset(&r, 0, sizeof(r));
-
-       /* Determine the correct starting PROM node for the probe. */
-       node = prom_getchild(prom_root_node);
-       switch (sparc_cpu_model) {
-       case sun4c:
-               break;
-       case sun4m:
-               node = prom_getchild(prom_searchsiblings(node, "obio"));
-               break;
-       case sun4d:
-               node = prom_getchild(bootbus = prom_searchsiblings(prom_getchild(cpuunit = prom_searchsiblings(node, "cpu-unit")), "bootbus"));
-               break;
-       default:
-               prom_printf("CLOCK: Unsupported architecture!\n");
-               prom_halt();
-       }
+       struct device_node *dp = op->node;
+       char *model = of_get_property(dp, "model", NULL);
 
-       /* Find the PROM node describing the real time clock. */
-       sp_clock_typ = MSTK_INVALID;
-       node = prom_searchsiblings(node,"eeprom");
-       if (!node) {
-               prom_printf("CLOCK: No clock found!\n");
-               prom_halt();
-       }
+       if (!model)
+               return -ENODEV;
 
-       /* Get the model name and setup everything up. */
-       model[0] = '\0';
-       prom_getstring(node, "model", model, sizeof(model));
-       if (strcmp(model, "mk48t02") == 0) {
+       if (!strcmp(model, "mk48t02")) {
                sp_clock_typ = MSTK48T02;
-               if (prom_getproperty(node, "reg", (char *) clk_reg, sizeof(clk_reg)) == -1) {
-                       prom_printf("clock_probe: FAILED!\n");
-                       prom_halt();
-               }
-               if (sparc_cpu_model == sun4d)
-                       prom_apply_generic_ranges (bootbus, cpuunit, clk_reg, 1);
-               else
-                       prom_apply_obio_ranges(clk_reg, 1);
+
                /* Map the clock register io area read-only */
-               r.flags = clk_reg[0].which_io;
-               r.start = clk_reg[0].phys_addr;
-               mstk48t02_regs = sbus_ioremap(&r, 0,
-                   sizeof(struct mostek48t02), "mk48t02");
+               mstk48t02_regs = of_ioremap(&op->resource[0], 0,
+                                           sizeof(struct mostek48t02),
+                                           "mk48t02");
                mstk48t08_regs = NULL;  /* To catch weirdness */
-       } else if (strcmp(model, "mk48t08") == 0) {
+       } else if (!strcmp(model, "mk48t08")) {
                sp_clock_typ = MSTK48T08;
-               if(prom_getproperty(node, "reg", (char *) clk_reg,
-                                   sizeof(clk_reg)) == -1) {
-                       prom_printf("clock_probe: FAILED!\n");
-                       prom_halt();
-               }
-               if (sparc_cpu_model == sun4d)
-                       prom_apply_generic_ranges (bootbus, cpuunit, clk_reg, 1);
-               else
-                       prom_apply_obio_ranges(clk_reg, 1);
-               /* Map the clock register io area read-only */
-               /* XXX r/o attribute is somewhere in r.flags */
-               r.flags = clk_reg[0].which_io;
-               r.start = clk_reg[0].phys_addr;
-               mstk48t08_regs = sbus_ioremap(&r, 0,
-                   sizeof(struct mostek48t08), "mk48t08");
+               mstk48t08_regs = of_ioremap(&op->resource[0], 0,
+                                           sizeof(struct mostek48t08),
+                                           "mk48t08");
 
                mstk48t02_regs = &mstk48t08_regs->regs;
-       } else {
-               prom_printf("CLOCK: Unknown model name '%s'\n",model);
-               prom_halt();
-       }
+       } else
+               return -ENODEV;
 
        /* Report a low battery voltage condition. */
        if (has_low_battery())
@@ -358,6 +306,28 @@ static __inline__ void clock_probe(void)
        /* Kick start the clock if it is completely stopped. */
        if (mostek_read(mstk48t02_regs + MOSTEK_SEC) & MSTK_STOP)
                kick_start_clock();
+
+       return 0;
+}
+
+static struct of_device_id clock_match[] = {
+       {
+               .name = "eeprom",
+       },
+       {},
+};
+
+static struct of_platform_driver clock_driver = {
+       .name           = "clock",
+       .match_table    = clock_match,
+       .probe          = clock_probe,
+};
+
+
+/* Probe for the mostek real time clock chip. */
+static void clock_init(void)
+{
+       of_register_driver(&clock_driver, &of_bus_type);
 }
 
 void __init sbus_time_init(void)
@@ -376,7 +346,7 @@ void __init sbus_time_init(void)
        if (ARCH_SUN4)
                sun4_clock_probe();
        else
-               clock_probe();
+               clock_init();
 
        sparc_init_timers(timer_interrupt);
        
index 41d45c298fb2426d64a5b293857a4706d880a461..6a70d215fd0432c4e6783505a44370c75bc48e2d 100644 (file)
@@ -9,7 +9,6 @@
  * I hate traps on the sparc, grrr...
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>  /* for jiffies */
 #include <linux/kernel.h>
 #include <linux/kallsyms.h>
index f48ad0c4dadbf368af78ee1fa9e8b4a162535102..178cbb8ae1b9ea9ff1da7598a3dbff4b28efdb54 100644 (file)
@@ -3,7 +3,6 @@
  * Copyright (C) 1996 David S. Miller (davem@caipfs.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <asm/ptrace.h>
 #include <asm/psr.h>
 
index 3e9399769075f5dd3373f3de02be415fb890b226..cb7fb66a40c82e80aeaff6cedb19d39f5013ab2a 100644 (file)
@@ -3,7 +3,6 @@
  * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <asm/ptrace.h>
 #include <asm/psr.h>
 
index e7578dc600b8c27ffc285bd87c92c81702dab068..20657744c86444904958afde1576161636bfb067 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1999 Jakub Jelinek (jakub@redhat.com)
  */
 
-#include <linux/config.h>
 #include <asm/ptrace.h>
 #include <asm/psr.h>
 
index f147a44c97808b294ea1b77c7fd6a5c4379b44c6..ec4231c2855a57de8edcfa197f86262754ee968b 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <asm/btfixup.h>
index c9845c71f42666c98f91eb630083ff3d01b19b55..16cc28935e398ede97a7e86fff652656bd042d21 100644 (file)
@@ -2,7 +2,6 @@
  * linux/arch/sparc/mm/extable.c
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 
index a231cca37216a84344e9d90bf67f372a53aa6443..d29cc24c5bbab5a7f6a89d61540b7295079e0cc9 100644 (file)
@@ -10,7 +10,6 @@
 #include <asm/asi.h>
 #include <asm/page.h>
 #include <asm/pgtsrmmu.h>
-#include <linux/config.h>
 #include <linux/init.h>
 
        .text
index cfa7d3456634d34b1bda95a706c8c9c60d9bb3b1..c85ddf31274790e6392e9d18ed6ef6c157ab71ef 100644 (file)
@@ -7,7 +7,6 @@
  *  Copyright (C) 2000 Anton Blanchard (anton@samba.org)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
index eefffa1dc5de137c4fe6da103c419633ca4b0252..42c1c700c0a70b3c7ca86a13c90b22bf0e84fb5f 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1997,1998 Jakub Jelinek    (jj@sunsite.mff.cuni.cz)
  */
  
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index 7215849db392e507552ed2c4a499e7c78ef8809b..be042efd1ba4311b6060a92f565f492e6fe04c6d 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 1997,1998 Jakub Jelinek    (jj@sunsite.mff.cuni.cz)
  */
  
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 58c65cc8d0d34545b0c587a19ffcff9ed04ba80d..16e13f663ab08165c4bb27f1aaa71aae21fa9f2c 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 1999,2000 Anton Blanchard (anton@samba.org)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/slab.h>
index 49f28c1bdc6d52318d7c4fc0c77c5aa450907907..7fdddf3c7e16308654e761408bd4d4bf3862aa35 100644 (file)
@@ -10,7 +10,6 @@
 
 #define NR_TASK_BUCKETS 512
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/init.h>
index cd90f3fdc4e7a3e1f1bcd7b5bf5b027862ca5d7a..9f4cd396a0faade08dd2f9a7197d11617fcd3fb6 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1999 David S. Miller (davem@redhat.com)
  */
 
-#include <linux/config.h>
 #include <asm/psr.h>
 #include <asm/asi.h>
 #include <asm/page.h>
index 697af617594ae24851a7a98336afb3240589f938..4988e6a310bbffe0833fd3825246b1e73e8e9695 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <asm/ptrace.h>
 #include <asm/asm-offsets.h>
 #include <asm/psr.h>
index 3cbd6de18dde0bfc3891f4c8303edae287700922..754c622548a5922ff81ffd932fcfe7c7ed43afed 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1999  Pavel Semerad  (semerad@ss1000.ms.mff.cuni.cz)
  */
 
-#include <linux/config.h>
 #include <asm/ptrace.h>
 #include <asm/psr.h>
 #include <asm/asm-offsets.h>
index b83409c81916126480999b8352641755df940080..50abfb1b880eba9b29d891a018625f070faa055a 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 
index c20e5309f8aa6dd1726f1f6835cb461e7d968be6..b0c0f9c4fc14bc36f4bd67090d2a576a2f5f5bd4 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1997 Michael A. Griffith (grif@acm.org)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 
index c840c206234225baf802f2e4e2a9e2aaeebb5f3f..1942c7c05cb18d350005ea19bcf043136a9f5755 100644 (file)
@@ -5,7 +5,6 @@
  * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index c2c69c167d182456ec4ae1d93c6c3a6fed0b35c0..718350aba1ecae75a009f789f0a08b8c5e54869d 100644 (file)
 #include <linux/init.h>
 #include <linux/ioport.h>
 
-#include <asm/oplib.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/io.h>
-#include <asm/sbus.h>
-#include <asm/ebus.h>
 #include <asm/auxio.h>
 
 void __iomem *auxio_register = NULL;
@@ -111,12 +110,6 @@ void auxio_set_lte(int on)
        }
 }
 
-static void __devinit auxio_report_dev(struct device_node *dp)
-{
-       printk(KERN_INFO "AUXIO: Found device at %s\n",
-              dp->full_name);
-}
-
 static struct of_device_id auxio_match[] = {
        {
                .name = "auxio",
@@ -126,67 +119,48 @@ static struct of_device_id auxio_match[] = {
 
 MODULE_DEVICE_TABLE(of, auxio_match);
 
-#ifdef CONFIG_SBUS
-static int __devinit auxio_sbus_probe(struct of_device *dev, const struct of_device_id *match)
+static int __devinit auxio_probe(struct of_device *dev, const struct of_device_id *match)
 {
-       struct sbus_dev *sdev = to_sbus_device(&dev->dev);
-
-       auxio_devtype  = AUXIO_TYPE_SBUS;
-       auxio_register = sbus_ioremap(&sdev->resource[0], 0,
-                                     sdev->reg_addrs[0].reg_size,
-                                     "auxiliaryIO");
-       if (!auxio_register)
+       struct device_node *dp = dev->node;
+       unsigned long size;
+
+       if (!strcmp(dp->parent->name, "ebus")) {
+               auxio_devtype = AUXIO_TYPE_EBUS;
+               size = sizeof(u32);
+       } else if (!strcmp(dp->parent->name, "sbus")) {
+               auxio_devtype = AUXIO_TYPE_SBUS;
+               size = 1;
+       } else {
+               printk("auxio: Unknown parent bus type [%s]\n",
+                      dp->parent->name);
                return -ENODEV;
-
-       auxio_report_dev(dev->node);
-       return 0;
-}
-
-static struct of_platform_driver auxio_sbus_driver = {
-       .name           = "auxio",
-       .match_table    = auxio_match,
-       .probe          = auxio_sbus_probe,
-};
-#endif
-
-#ifdef CONFIG_PCI
-static int __devinit auxio_ebus_probe(struct of_device *dev, const struct of_device_id *match)
-{
-       struct linux_ebus_device *edev = to_ebus_device(&dev->dev);
-
-       auxio_devtype  = AUXIO_TYPE_EBUS;
-       auxio_register = ioremap(edev->resource[0].start, sizeof(u32));
+       }
+       auxio_register = of_ioremap(&dev->resource[0], 0, size, "auxio");
        if (!auxio_register)
                return -ENODEV;
 
-       auxio_report_dev(dev->node);
+       printk(KERN_INFO "AUXIO: Found device at %s\n",
+              dp->full_name);
 
-       auxio_set_led(AUXIO_LED_ON);
+       if (auxio_devtype == AUXIO_TYPE_EBUS)
+               auxio_set_led(AUXIO_LED_ON);
 
        return 0;
 }
 
-static struct of_platform_driver auxio_ebus_driver = {
+static struct of_platform_driver auxio_driver = {
        .name           = "auxio",
        .match_table    = auxio_match,
-       .probe          = auxio_ebus_probe,
+       .probe          = auxio_probe,
 };
-#endif
 
-static int __init auxio_probe(void)
+static int __init auxio_init(void)
 {
-#ifdef CONFIG_SBUS
-       of_register_driver(&auxio_sbus_driver, &sbus_bus_type);
-#endif
-#ifdef CONFIG_PCI
-       of_register_driver(&auxio_ebus_driver, &ebus_bus_type);
-#endif
-
-       return 0;
+       return of_register_driver(&auxio_driver, &of_bus_type);
 }
 
 /* Must be after subsys_initcall() so that busses are probed.  Must
  * be before device_initcall() because things like the floppy driver
  * need to use the AUXIO register.
  */
-fs_initcall(auxio_probe);
+fs_initcall(auxio_init);
index 8a2abcce2737f3aa9a142091329d6fdfc7845faf..a98f3ae175a343e48c88977e83fc2c3f96e04865 100644 (file)
@@ -84,7 +84,6 @@ typedef struct {
 
 #include <asm/processor.h>
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/elfcore.h>
 #include <linux/compat.h>
 
index 11cc0caef592aeccccf0b5fde33decd2a12c5ba8..7eb81d3954d9a96f4cccb078efcd23f38174aacf 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/sched.h>
index 389301c95cb28408269de423d066249acaa7b38d..f8ef2f2b9b375a62375b0237a366a3193c4d2ba2 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/threads.h>
 #include <linux/init.h>
@@ -21,8 +20,6 @@
 #include <asm/spitfire.h>
 #include <asm/timer.h>
 #include <asm/cpudata.h>
-#include <asm/vdev.h>
-#include <asm/irq.h>
 
 /* Used to synchronize acceses to NatSemi SUPER I/O chip configure
  * operations in asm/ns87303.h
@@ -32,100 +29,6 @@ DEFINE_SPINLOCK(ns87303_lock);
 extern void cpu_probe(void);
 extern void central_probe(void);
 
-u32 sun4v_vdev_devhandle;
-struct device_node *sun4v_vdev_root;
-
-struct vdev_intmap {
-       unsigned int phys;
-       unsigned int irq;
-       unsigned int cnode;
-       unsigned int cinterrupt;
-};
-
-struct vdev_intmask {
-       unsigned int phys;
-       unsigned int interrupt;
-       unsigned int __unused;
-};
-
-static struct vdev_intmap *vdev_intmap;
-static int vdev_num_intmap;
-static struct vdev_intmask *vdev_intmask;
-
-static void __init sun4v_virtual_device_probe(void)
-{
-       struct linux_prom64_registers *regs;
-       struct property *prop;
-       struct device_node *dp;
-       int sz;
-
-       if (tlb_type != hypervisor)
-               return;
-
-       dp = of_find_node_by_name(NULL, "virtual-devices");
-       if (!dp) {
-               prom_printf("SUN4V: Fatal error, no virtual-devices node.\n");
-               prom_halt();
-       }
-
-       sun4v_vdev_root = dp;
-
-       prop = of_find_property(dp, "reg", NULL);
-       regs = prop->value;
-       sun4v_vdev_devhandle = (regs[0].phys_addr >> 32UL) & 0x0fffffff;
-
-       prop = of_find_property(dp, "interrupt-map", &sz);
-       vdev_intmap = prop->value;
-       vdev_num_intmap = sz / sizeof(struct vdev_intmap);
-
-       prop = of_find_property(dp, "interrupt-map-mask", NULL);
-       vdev_intmask = prop->value;
-
-       printk("%s: Virtual Device Bus devhandle[%x]\n",
-              dp->full_name, sun4v_vdev_devhandle);
-}
-
-unsigned int sun4v_vdev_device_interrupt(struct device_node *dev_node)
-{
-       struct property *prop;
-       unsigned int irq, reg;
-       int i;
-
-       prop = of_find_property(dev_node, "interrupts", NULL);
-       if (!prop) {
-               printk("VDEV: Cannot get \"interrupts\" "
-                      "property for OBP node %s\n",
-                      dev_node->full_name);
-               return 0;
-       }
-       irq = *(unsigned int *) prop->value;
-
-       prop = of_find_property(dev_node, "reg", NULL);
-       if (!prop) {
-               printk("VDEV: Cannot get \"reg\" "
-                      "property for OBP node %s\n",
-                      dev_node->full_name);
-               return 0;
-       }
-       reg = *(unsigned int *) prop->value;
-
-       for (i = 0; i < vdev_num_intmap; i++) {
-               if (vdev_intmap[i].phys == (reg & vdev_intmask->phys) &&
-                   vdev_intmap[i].irq == (irq & vdev_intmask->interrupt)) {
-                       irq = vdev_intmap[i].cinterrupt;
-                       break;
-               }
-       }
-
-       if (i == vdev_num_intmap) {
-               printk("VDEV: No matching interrupt map entry "
-                      "for OBP node %s\n", dev_node->full_name);
-               return 0;
-       }
-
-       return sun4v_build_irq(sun4v_vdev_devhandle, irq);
-}
-
 static const char *cpu_mid_prop(void)
 {
        if (tlb_type == spitfire)
@@ -290,7 +193,6 @@ void __init device_scan(void)
        }
 #endif
 
-       sun4v_virtual_device_probe();
        central_probe();
 
        cpu_probe();
index 98e0a8cbeecdcf1e1beb40c66e95b657b863bca2..a1023bb1a217fac630e8f779e9efa35f63c2b600 100644 (file)
@@ -5,7 +5,6 @@
  * Copyright (C) 1999  David S. Miller (davem@redhat.com)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
@@ -20,6 +19,8 @@
 #include <asm/pbm.h>
 #include <asm/ebus.h>
 #include <asm/oplib.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/bpp.h>
 #include <asm/irq.h>
 
@@ -279,45 +280,12 @@ static inline void *ebus_alloc(size_t size)
        return mem;
 }
 
-int __init ebus_intmap_match(struct linux_ebus *ebus,
-                            struct linux_prom_registers *reg,
-                            int *interrupt)
-{
-       struct linux_prom_ebus_intmap *imap;
-       struct linux_prom_ebus_intmask *imask;
-       unsigned int hi, lo, irq;
-       int i, len, n_imap;
-
-       imap = of_get_property(ebus->prom_node, "interrupt-map", &len);
-       if (!imap)
-               return 0;
-       n_imap = len / sizeof(imap[0]);
-
-       imask = of_get_property(ebus->prom_node, "interrupt-map-mask", NULL);
-       if (!imask)
-               return 0;
-
-       hi = reg->which_io & imask->phys_hi;
-       lo = reg->phys_addr & imask->phys_lo;
-       irq = *interrupt & imask->interrupt;
-       for (i = 0; i < n_imap; i++) {
-               if ((imap[i].phys_hi == hi) &&
-                   (imap[i].phys_lo == lo) &&
-                   (imap[i].interrupt == irq)) {
-                       *interrupt = imap[i].cinterrupt;
-                       return 0;
-               }
-       }
-       return -1;
-}
-
-void __init fill_ebus_child(struct device_node *dp,
-                           struct linux_prom_registers *preg,
-                           struct linux_ebus_child *dev,
-                           int non_standard_regs)
+static void __init fill_ebus_child(struct device_node *dp,
+                                  struct linux_ebus_child *dev,
+                                  int non_standard_regs)
 {
+       struct of_device *op;
        int *regs;
-       int *irqs;
        int i, len;
 
        dev->prom_node = dp;
@@ -354,12 +322,16 @@ void __init fill_ebus_child(struct device_node *dp,
                }
        }
 
-       for (i = 0; i < PROMINTR_MAX; i++)
-               dev->irqs[i] = PCI_IRQ_NONE;
-
-       irqs = of_get_property(dp, "interrupts", &len);
-       if (!irqs) {
+       op = of_find_device_by_node(dp);
+       if (!op) {
                dev->num_irqs = 0;
+       } else {
+               dev->num_irqs = op->num_irqs;
+               for (i = 0; i < dev->num_irqs; i++)
+                       dev->irqs[i] = op->irqs[i];
+       }
+
+       if (!dev->num_irqs) {
                /*
                 * Oh, well, some PROMs don't export interrupts
                 * property to children of EBus devices...
@@ -375,23 +347,6 @@ void __init fill_ebus_child(struct device_node *dp,
                                dev->irqs[0] = dev->parent->irqs[1];
                        }
                }
-       } else {
-               dev->num_irqs = len / sizeof(irqs[0]);
-               for (i = 0; i < dev->num_irqs; i++) {
-                       struct pci_pbm_info *pbm = dev->bus->parent;
-                       struct pci_controller_info *p = pbm->parent;
-
-                       if (ebus_intmap_match(dev->bus, preg, &irqs[i]) != -1) {
-                               dev->irqs[i] = p->irq_build(pbm,
-                                                           dev->bus->self,
-                                                           irqs[i]);
-                       } else {
-                               /* If we get a bogus interrupt property, just
-                                * record the raw value instead of punting.
-                                */
-                               dev->irqs[i] = irqs[i];
-                       }
-               }
        }
 }
 
@@ -403,72 +358,32 @@ static int __init child_regs_nonstandard(struct linux_ebus_device *dev)
        return 0;
 }
 
-void __init fill_ebus_device(struct device_node *dp, struct linux_ebus_device *dev)
+static void __init fill_ebus_device(struct device_node *dp, struct linux_ebus_device *dev)
 {
-       struct linux_prom_registers *regs;
        struct linux_ebus_child *child;
-       int *irqs;
-       int i, n, len;
+       struct of_device *op;
+       int i, len;
 
        dev->prom_node = dp;
 
        printk(" [%s", dp->name);
 
-       regs = of_get_property(dp, "reg", &len);
-       if (!regs) {
+       op = of_find_device_by_node(dp);
+       if (!op) {
                dev->num_addrs = 0;
-               goto probe_interrupts;
-       }
-
-       if (len % sizeof(struct linux_prom_registers)) {
-               prom_printf("UGH: proplen for %s was %d, need multiple of %d\n",
-                           dev->prom_node->name, len,
-                           (int)sizeof(struct linux_prom_registers));
-               prom_halt();
-       }
-       dev->num_addrs = len / sizeof(struct linux_prom_registers);
-
-       for (i = 0; i < dev->num_addrs; i++) {
-               /* XXX Learn how to interpret ebus ranges... -DaveM */
-               if (regs[i].which_io >= 0x10)
-                       n = (regs[i].which_io - 0x10) >> 2;
-               else
-                       n = regs[i].which_io;
-
-               dev->resource[i].start  = dev->bus->self->resource[n].start;
-               dev->resource[i].start += (unsigned long)regs[i].phys_addr;
-               dev->resource[i].end    =
-                       (dev->resource[i].start + (unsigned long)regs[i].reg_size - 1UL);
-               dev->resource[i].flags  = IORESOURCE_MEM;
-               dev->resource[i].name   = dev->prom_node->name;
-               request_resource(&dev->bus->self->resource[n],
-                                &dev->resource[i]);
-       }
-
-probe_interrupts:
-       for (i = 0; i < PROMINTR_MAX; i++)
-               dev->irqs[i] = PCI_IRQ_NONE;
-
-       irqs = of_get_property(dp, "interrupts", &len);
-       if (!irqs) {
                dev->num_irqs = 0;
        } else {
-               dev->num_irqs = len / sizeof(irqs[0]);
-               for (i = 0; i < dev->num_irqs; i++) {
-                       struct pci_pbm_info *pbm = dev->bus->parent;
-                       struct pci_controller_info *p = pbm->parent;
-
-                       if (ebus_intmap_match(dev->bus, &regs[0], &irqs[i]) != -1) {
-                               dev->irqs[i] = p->irq_build(pbm,
-                                                           dev->bus->self,
-                                                           irqs[i]);
-                       } else {
-                               /* If we get a bogus interrupt property, just
-                                * record the raw value instead of punting.
-                                */
-                               dev->irqs[i] = irqs[i];
-                       }
-               }
+               (void) of_get_property(dp, "reg", &len);
+               dev->num_addrs = len / sizeof(struct linux_prom_registers);
+
+               for (i = 0; i < dev->num_addrs; i++)
+                       memcpy(&dev->resource[i],
+                              &op->resource[i],
+                              sizeof(struct resource));
+
+               dev->num_irqs = op->num_irqs;
+               for (i = 0; i < dev->num_irqs; i++)
+                       dev->irqs[i] = op->irqs[i];
        }
 
        dev->ofdev.node = dp;
@@ -490,7 +405,7 @@ probe_interrupts:
                child->next = NULL;
                child->parent = dev;
                child->bus = dev->bus;
-               fill_ebus_child(dp, regs, child,
+               fill_ebus_child(dp, child,
                                child_regs_nonstandard(dev));
 
                while ((dp = dp->sibling) != NULL) {
@@ -500,7 +415,7 @@ probe_interrupts:
                        child->next = NULL;
                        child->parent = dev;
                        child->bus = dev->bus;
-                       fill_ebus_child(dp, regs, child,
+                       fill_ebus_child(dp, child,
                                        child_regs_nonstandard(dev));
                }
        }
index be85ce2a4ad9ebadaf2102bdf961f3a6ba9357f1..0aaa35fc5a9c762f343dc35b4be35f92237d0956 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 1996,98,99 Jakub Jelinek  (jj@sunsite.mff.cuni.cz)
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 
 #include <asm/head.h>
index 149383835c25381ff082fa47e98fb5d013d23964..4b2bf9eb447a1f5eaa7c93b27627c0c217a9937b 100644 (file)
@@ -5,7 +5,6 @@
  * Copyright (C) 1997, 1998, 1999 Jakub Jelinek (jj@ultra.linux.cz)
  */
 
-#include <linux/config.h>
 
 #include <asm/asi.h>
 #include <asm/pstate.h>
index 31c5892f5acc49669c4326bf5162a42ebceb36ea..75684b56767e099a48556ed95645a1cf35df7942 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 1997 Miguel de Icaza (miguel@nuclecu.unam.mx)
  */
 
-#include <linux/config.h>
 #include <linux/version.h>
 #include <linux/errno.h>
 #include <linux/threads.h>
index ab9e640df22820a5ffd9084b73258ea09042c41e..4e64724cb9ae119f2c583bd716d07eee0c5f19ce 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1998  Jakub Jelinek    (jj@ultra.linux.cz)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/ptrace.h>
@@ -414,6 +413,10 @@ void irq_install_pre_handler(int virt_irq,
        data->pre_handler_arg1 = arg1;
        data->pre_handler_arg2 = arg2;
 
+       if (desc->chip == &sun4u_irq_ack ||
+           desc->chip == &sun4v_irq_ack)
+               return;
+
        desc->chip = (desc->chip == &sun4u_irq ?
                      &sun4u_irq_ack : &sun4v_irq_ack);
 }
index 6f16dee280a89ef2c457b5e2714d962cf10bb8ca..0f3aec72ef5fc3161530997853502f4d985e5052 100644 (file)
@@ -3,6 +3,8 @@
 #include <linux/pci.h>
 #include <linux/slab.h>
 #include <asm/oplib.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/isa.h>
 
 struct sparc_isa_bridge *isa_chain;
@@ -46,107 +48,16 @@ isa_dev_get_resource(struct sparc_isa_device *isa_dev)
        return pregs;
 }
 
-/* I can't believe they didn't put a real INO in the isa device
- * interrupts property.  The whole point of the OBP properties
- * is to shield the kernel from IRQ routing details.
- *
- * The P1275 standard for ISA devices seems to also have been
- * totally ignored.
- *
- * On later systems, an interrupt-map and interrupt-map-mask scheme
- * akin to EBUS is used.
- */
-static struct {
-       int     obp_irq;
-       int     pci_ino;
-} grover_irq_table[] = {
-       { 1, 0x00 },    /* dma, unknown ino at this point */
-       { 2, 0x27 },    /* floppy */
-       { 3, 0x22 },    /* parallel */
-       { 4, 0x2b },    /* serial */
-       { 5, 0x25 },    /* acpi power management */
-
-       { 0, 0x00 }     /* end of table */
-};
-
-static int __init isa_dev_get_irq_using_imap(struct sparc_isa_device *isa_dev,
-                                            struct sparc_isa_bridge *isa_br,
-                                            int *interrupt,
-                                            struct linux_prom_registers *reg)
-{
-       struct linux_prom_ebus_intmap *imap;
-       struct linux_prom_ebus_intmap *imask;
-       unsigned int hi, lo, irq;
-       int i, len, n_imap;
-
-       imap = of_get_property(isa_br->prom_node, "interrupt-map", &len);
-       if (!imap)
-               return 0;
-       n_imap = len / sizeof(imap[0]);
-
-       imask = of_get_property(isa_br->prom_node, "interrupt-map-mask", NULL);
-       if (!imask)
-               return 0;
-
-       hi = reg->which_io & imask->phys_hi;
-       lo = reg->phys_addr & imask->phys_lo;
-       irq = *interrupt & imask->interrupt;
-       for (i = 0; i < n_imap; i++) {
-               if ((imap[i].phys_hi == hi) &&
-                   (imap[i].phys_lo == lo) &&
-                   (imap[i].interrupt == irq)) {
-                       *interrupt = imap[i].cinterrupt;
-                       return 0;
-               }
-       }
-       return -1;
-}
-
 static void __init isa_dev_get_irq(struct sparc_isa_device *isa_dev,
                                   struct linux_prom_registers *pregs)
 {
-       int irq_prop;
+       struct of_device *op = of_find_device_by_node(isa_dev->prom_node);
 
-       irq_prop = of_getintprop_default(isa_dev->prom_node,
-                                        "interrupts", -1);
-       if (irq_prop <= 0) {
-               goto no_irq;
+       if (!op || !op->num_irqs) {
+               isa_dev->irq = PCI_IRQ_NONE;
        } else {
-               struct pci_controller_info *pcic;
-               struct pci_pbm_info *pbm;
-               int i;
-
-               if (of_find_property(isa_dev->bus->prom_node,
-                                    "interrupt-map", NULL)) {
-                       if (!isa_dev_get_irq_using_imap(isa_dev,
-                                                       isa_dev->bus,
-                                                       &irq_prop,
-                                                       pregs))
-                               goto route_irq;
-               }
-
-               for (i = 0; grover_irq_table[i].obp_irq != 0; i++) {
-                       if (grover_irq_table[i].obp_irq == irq_prop) {
-                               int ino = grover_irq_table[i].pci_ino;
-
-                               if (ino == 0)
-                                       goto no_irq;
-                               irq_prop = ino;
-                               goto route_irq;
-                       }
-               }
-               goto no_irq;
-
-route_irq:
-               pbm = isa_dev->bus->parent;
-               pcic = pbm->parent;
-               isa_dev->irq = pcic->irq_build(pbm, NULL, irq_prop);
-               return;
+               isa_dev->irq = op->irqs[0];
        }
-
-no_irq:
-       isa_dev->irq = PCI_IRQ_NONE;
 }
 
 static void __init isa_fill_children(struct sparc_isa_device *parent_isa_dev)
index 2e1c824c1cc9512356460ea3a09f2fd74c11dfe2..8e75ed762fd80a8555d831c6b324b78282553b6c 100644 (file)
@@ -3,7 +3,6 @@
  * Copyright (C) 2004 David S. Miller <davem@davemloft.net>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/kprobes.h>
 #include <linux/module.h>
index 31da1e564c95e2ecdbabf13a55a5fda55391d9a4..e492db845ea34c07ee49e1d4dea1011e5fd95886 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1996,98,99 Jakub Jelinek  (jj@sunsite.mff.cuni.cz)
  */
 
-#include <linux/config.h>
 #include <asm/head.h>
 #include <asm/asi.h>
 #include <asm/page.h>
index 768475bbce82f24c8a6e5a87a2ce7c7ec467694b..169b017eec0b6c393f17096206db914dbff21ac2 100644 (file)
@@ -129,6 +129,43 @@ static int of_device_resume(struct device * dev)
        return error;
 }
 
+void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name)
+{
+       unsigned long ret = res->start + offset;
+
+       if (!request_region(ret, size, name))
+               ret = 0;
+
+       return (void __iomem *) ret;
+}
+EXPORT_SYMBOL(of_ioremap);
+
+void of_iounmap(void __iomem *base, unsigned long size)
+{
+       release_region((unsigned long) base, size);
+}
+EXPORT_SYMBOL(of_iounmap);
+
+static int node_match(struct device *dev, void *data)
+{
+       struct of_device *op = to_of_device(dev);
+       struct device_node *dp = data;
+
+       return (op->node == dp);
+}
+
+struct of_device *of_find_device_by_node(struct device_node *dp)
+{
+       struct device *dev = bus_find_device(&of_bus_type, NULL,
+                                            dp, node_match);
+
+       if (dev)
+               return to_of_device(dev);
+
+       return NULL;
+}
+EXPORT_SYMBOL(of_find_device_by_node);
+
 #ifdef CONFIG_PCI
 struct bus_type isa_bus_type = {
        .name   = "isa",
@@ -163,10 +200,657 @@ struct bus_type sbus_bus_type = {
 EXPORT_SYMBOL(sbus_bus_type);
 #endif
 
+struct bus_type of_bus_type = {
+       .name   = "of",
+       .match  = of_platform_bus_match,
+       .probe  = of_device_probe,
+       .remove = of_device_remove,
+       .suspend        = of_device_suspend,
+       .resume = of_device_resume,
+};
+EXPORT_SYMBOL(of_bus_type);
+
+static inline u64 of_read_addr(u32 *cell, int size)
+{
+       u64 r = 0;
+       while (size--)
+               r = (r << 32) | *(cell++);
+       return r;
+}
+
+static void __init get_cells(struct device_node *dp,
+                            int *addrc, int *sizec)
+{
+       if (addrc)
+               *addrc = of_n_addr_cells(dp);
+       if (sizec)
+               *sizec = of_n_size_cells(dp);
+}
+
+/* Max address size we deal with */
+#define OF_MAX_ADDR_CELLS      4
+
+struct of_bus {
+       const char      *name;
+       const char      *addr_prop_name;
+       int             (*match)(struct device_node *parent);
+       void            (*count_cells)(struct device_node *child,
+                                      int *addrc, int *sizec);
+       u64             (*map)(u32 *addr, u32 *range, int na, int ns, int pna);
+       int             (*translate)(u32 *addr, u64 offset, int na);
+       unsigned int    (*get_flags)(u32 *addr);
+};
+
+/*
+ * Default translator (generic bus)
+ */
+
+static void of_bus_default_count_cells(struct device_node *dev,
+                                      int *addrc, int *sizec)
+{
+       get_cells(dev, addrc, sizec);
+}
+
+static u64 of_bus_default_map(u32 *addr, u32 *range, int na, int ns, int pna)
+{
+       u64 cp, s, da;
+
+       cp = of_read_addr(range, na);
+       s  = of_read_addr(range + na + pna, ns);
+       da = of_read_addr(addr, na);
+
+       if (da < cp || da >= (cp + s))
+               return OF_BAD_ADDR;
+       return da - cp;
+}
+
+static int of_bus_default_translate(u32 *addr, u64 offset, int na)
+{
+       u64 a = of_read_addr(addr, na);
+       memset(addr, 0, na * 4);
+       a += offset;
+       if (na > 1)
+               addr[na - 2] = a >> 32;
+       addr[na - 1] = a & 0xffffffffu;
+
+       return 0;
+}
+
+static unsigned int of_bus_default_get_flags(u32 *addr)
+{
+       return IORESOURCE_MEM;
+}
+
+/*
+ * PCI bus specific translator
+ */
+
+static int of_bus_pci_match(struct device_node *np)
+{
+       return !strcmp(np->type, "pci") || !strcmp(np->type, "pciex");
+}
+
+static void of_bus_pci_count_cells(struct device_node *np,
+                                  int *addrc, int *sizec)
+{
+       if (addrc)
+               *addrc = 3;
+       if (sizec)
+               *sizec = 2;
+}
+
+static u64 of_bus_pci_map(u32 *addr, u32 *range, int na, int ns, int pna)
+{
+       u64 cp, s, da;
+
+       /* Check address type match */
+       if ((addr[0] ^ range[0]) & 0x03000000)
+               return OF_BAD_ADDR;
+
+       /* Read address values, skipping high cell */
+       cp = of_read_addr(range + 1, na - 1);
+       s  = of_read_addr(range + na + pna, ns);
+       da = of_read_addr(addr + 1, na - 1);
+
+       if (da < cp || da >= (cp + s))
+               return OF_BAD_ADDR;
+       return da - cp;
+}
+
+static int of_bus_pci_translate(u32 *addr, u64 offset, int na)
+{
+       return of_bus_default_translate(addr + 1, offset, na - 1);
+}
+
+static unsigned int of_bus_pci_get_flags(u32 *addr)
+{
+       unsigned int flags = 0;
+       u32 w = addr[0];
+
+       switch((w >> 24) & 0x03) {
+       case 0x01:
+               flags |= IORESOURCE_IO;
+       case 0x02: /* 32 bits */
+       case 0x03: /* 64 bits */
+               flags |= IORESOURCE_MEM;
+       }
+       if (w & 0x40000000)
+               flags |= IORESOURCE_PREFETCH;
+       return flags;
+}
+
+/*
+ * ISA bus specific translator
+ */
+
+static int of_bus_isa_match(struct device_node *np)
+{
+       return !strcmp(np->name, "isa");
+}
+
+static void of_bus_isa_count_cells(struct device_node *child,
+                                  int *addrc, int *sizec)
+{
+       if (addrc)
+               *addrc = 2;
+       if (sizec)
+               *sizec = 1;
+}
+
+static u64 of_bus_isa_map(u32 *addr, u32 *range, int na, int ns, int pna)
+{
+       u64 cp, s, da;
+
+       /* Check address type match */
+       if ((addr[0] ^ range[0]) & 0x00000001)
+               return OF_BAD_ADDR;
+
+       /* Read address values, skipping high cell */
+       cp = of_read_addr(range + 1, na - 1);
+       s  = of_read_addr(range + na + pna, ns);
+       da = of_read_addr(addr + 1, na - 1);
+
+       if (da < cp || da >= (cp + s))
+               return OF_BAD_ADDR;
+       return da - cp;
+}
+
+static int of_bus_isa_translate(u32 *addr, u64 offset, int na)
+{
+       return of_bus_default_translate(addr + 1, offset, na - 1);
+}
+
+static unsigned int of_bus_isa_get_flags(u32 *addr)
+{
+       unsigned int flags = 0;
+       u32 w = addr[0];
+
+       if (w & 1)
+               flags |= IORESOURCE_IO;
+       else
+               flags |= IORESOURCE_MEM;
+       return flags;
+}
+
+/*
+ * SBUS bus specific translator
+ */
+
+static int of_bus_sbus_match(struct device_node *np)
+{
+       return !strcmp(np->name, "sbus") ||
+               !strcmp(np->name, "sbi");
+}
+
+static void of_bus_sbus_count_cells(struct device_node *child,
+                                  int *addrc, int *sizec)
+{
+       if (addrc)
+               *addrc = 2;
+       if (sizec)
+               *sizec = 1;
+}
+
+static u64 of_bus_sbus_map(u32 *addr, u32 *range, int na, int ns, int pna)
+{
+       return of_bus_default_map(addr, range, na, ns, pna);
+}
+
+static int of_bus_sbus_translate(u32 *addr, u64 offset, int na)
+{
+       return of_bus_default_translate(addr, offset, na);
+}
+
+static unsigned int of_bus_sbus_get_flags(u32 *addr)
+{
+       return IORESOURCE_MEM;
+}
+
+
+/*
+ * Array of bus specific translators
+ */
+
+static struct of_bus of_busses[] = {
+       /* PCI */
+       {
+               .name = "pci",
+               .addr_prop_name = "assigned-addresses",
+               .match = of_bus_pci_match,
+               .count_cells = of_bus_pci_count_cells,
+               .map = of_bus_pci_map,
+               .translate = of_bus_pci_translate,
+               .get_flags = of_bus_pci_get_flags,
+       },
+       /* ISA */
+       {
+               .name = "isa",
+               .addr_prop_name = "reg",
+               .match = of_bus_isa_match,
+               .count_cells = of_bus_isa_count_cells,
+               .map = of_bus_isa_map,
+               .translate = of_bus_isa_translate,
+               .get_flags = of_bus_isa_get_flags,
+       },
+       /* SBUS */
+       {
+               .name = "sbus",
+               .addr_prop_name = "reg",
+               .match = of_bus_sbus_match,
+               .count_cells = of_bus_sbus_count_cells,
+               .map = of_bus_sbus_map,
+               .translate = of_bus_sbus_translate,
+               .get_flags = of_bus_sbus_get_flags,
+       },
+       /* Default */
+       {
+               .name = "default",
+               .addr_prop_name = "reg",
+               .match = NULL,
+               .count_cells = of_bus_default_count_cells,
+               .map = of_bus_default_map,
+               .translate = of_bus_default_translate,
+               .get_flags = of_bus_default_get_flags,
+       },
+};
+
+static struct of_bus *of_match_bus(struct device_node *np)
+{
+       int i;
+
+       for (i = 0; i < ARRAY_SIZE(of_busses); i ++)
+               if (!of_busses[i].match || of_busses[i].match(np))
+                       return &of_busses[i];
+       BUG();
+       return NULL;
+}
+
+static int __init build_one_resource(struct device_node *parent,
+                                    struct of_bus *bus,
+                                    struct of_bus *pbus,
+                                    u32 *addr,
+                                    int na, int ns, int pna)
+{
+       u32 *ranges;
+       unsigned int rlen;
+       int rone;
+       u64 offset = OF_BAD_ADDR;
+
+       ranges = of_get_property(parent, "ranges", &rlen);
+       if (ranges == NULL || rlen == 0) {
+               offset = of_read_addr(addr, na);
+               memset(addr, 0, pna * 4);
+               goto finish;
+       }
+
+       /* Now walk through the ranges */
+       rlen /= 4;
+       rone = na + pna + ns;
+       for (; rlen >= rone; rlen -= rone, ranges += rone) {
+               offset = bus->map(addr, ranges, na, ns, pna);
+               if (offset != OF_BAD_ADDR)
+                       break;
+       }
+       if (offset == OF_BAD_ADDR)
+               return 1;
+
+       memcpy(addr, ranges + na, 4 * pna);
+
+finish:
+       /* Translate it into parent bus space */
+       return pbus->translate(addr, offset, pna);
+}
+
+static void __init build_device_resources(struct of_device *op,
+                                         struct device *parent)
+{
+       struct of_device *p_op;
+       struct of_bus *bus;
+       int na, ns;
+       int index, num_reg;
+       void *preg;
+
+       if (!parent)
+               return;
+
+       p_op = to_of_device(parent);
+       bus = of_match_bus(p_op->node);
+       bus->count_cells(op->node, &na, &ns);
+
+       preg = of_get_property(op->node, bus->addr_prop_name, &num_reg);
+       if (!preg || num_reg == 0)
+               return;
+
+       /* Convert to num-cells.  */
+       num_reg /= 4;
+
+       /* Conver to num-entries.  */
+       num_reg /= na + ns;
+
+       for (index = 0; index < num_reg; index++) {
+               struct resource *r = &op->resource[index];
+               u32 addr[OF_MAX_ADDR_CELLS];
+               u32 *reg = (preg + (index * ((na + ns) * 4)));
+               struct device_node *dp = op->node;
+               struct device_node *pp = p_op->node;
+               struct of_bus *pbus;
+               u64 size, result = OF_BAD_ADDR;
+               unsigned long flags;
+               int dna, dns;
+               int pna, pns;
+
+               size = of_read_addr(reg + na, ns);
+               flags = bus->get_flags(reg);
+
+               memcpy(addr, reg, na * 4);
+
+               /* If the immediate parent has no ranges property to apply,
+                * just use a 1<->1 mapping.  Unless it is the 'dma' child
+                * of an isa bus, which must be passed up towards the root.
+                *
+                * Also, don't try to translate PMU bus device registers.
+                */
+               if ((of_find_property(pp, "ranges", NULL) == NULL &&
+                    strcmp(pp->name, "dma") != 0) ||
+                   !strcmp(pp->name, "pmu")) {
+                       result = of_read_addr(addr, na);
+                       goto build_res;
+               }
+
+               dna = na;
+               dns = ns;
+
+               while (1) {
+                       dp = pp;
+                       pp = dp->parent;
+                       if (!pp) {
+                               result = of_read_addr(addr, dna);
+                               break;
+                       }
+
+                       pbus = of_match_bus(pp);
+                       pbus->count_cells(dp, &pna, &pns);
+
+                       if (build_one_resource(dp, bus, pbus, addr, dna, dns, pna))
+                               break;
+
+                       dna = pna;
+                       dns = pns;
+                       bus = pbus;
+               }
+
+       build_res:
+               memset(r, 0, sizeof(*r));
+               if (result != OF_BAD_ADDR) {
+                       if (tlb_type == hypervisor)
+                               result &= 0x0fffffffffffffffUL;
+
+                       r->start = result;
+                       r->end = result + size - 1;
+                       r->flags = flags;
+               } else {
+                       r->start = ~0UL;
+                       r->end = ~0UL;
+               }
+               r->name = op->node->name;
+       }
+}
+
+static struct device_node * __init
+apply_interrupt_map(struct device_node *dp, struct device_node *pp,
+                   u32 *imap, int imlen, u32 *imask,
+                   unsigned int *irq_p)
+{
+       struct device_node *cp;
+       unsigned int irq = *irq_p;
+       struct of_bus *bus;
+       phandle handle;
+       u32 *reg;
+       int na, num_reg, i;
+
+       bus = of_match_bus(pp);
+       bus->count_cells(dp, &na, NULL);
+
+       reg = of_get_property(dp, "reg", &num_reg);
+       if (!reg || !num_reg)
+               return NULL;
+
+       imlen /= ((na + 3) * 4);
+       handle = 0;
+       for (i = 0; i < imlen; i++) {
+               int j;
+
+               for (j = 0; j < na; j++) {
+                       if ((reg[j] & imask[j]) != imap[j])
+                               goto next;
+               }
+               if (imap[na] == irq) {
+                       handle = imap[na + 1];
+                       irq = imap[na + 2];
+                       break;
+               }
+
+       next:
+               imap += (na + 3);
+       }
+       if (i == imlen)
+               return NULL;
+
+       *irq_p = irq;
+       cp = of_find_node_by_phandle(handle);
+
+       return cp;
+}
+
+static unsigned int __init pci_irq_swizzle(struct device_node *dp,
+                                          struct device_node *pp,
+                                          unsigned int irq)
+{
+       struct linux_prom_pci_registers *regs;
+       unsigned int devfn, slot, ret;
+
+       if (irq < 1 || irq > 4)
+               return irq;
+
+       regs = of_get_property(dp, "reg", NULL);
+       if (!regs)
+               return irq;
+
+       devfn = (regs->phys_hi >> 8) & 0xff;
+       slot = (devfn >> 3) & 0x1f;
+
+       ret = ((irq - 1 + (slot & 3)) & 3) + 1;
+
+       return ret;
+}
+
+static unsigned int __init build_one_device_irq(struct of_device *op,
+                                               struct device *parent,
+                                               unsigned int irq)
+{
+       struct device_node *dp = op->node;
+       struct device_node *pp, *ip;
+       unsigned int orig_irq = irq;
+
+       if (irq == 0xffffffff)
+               return irq;
+
+       if (dp->irq_trans) {
+               irq = dp->irq_trans->irq_build(dp, irq,
+                                              dp->irq_trans->data);
+#if 1
+               printk("%s: direct translate %x --> %x\n",
+                      dp->full_name, orig_irq, irq);
+#endif
+               return irq;
+       }
+
+       /* Something more complicated.  Walk up to the root, applying
+        * interrupt-map or bus specific translations, until we hit
+        * an IRQ translator.
+        *
+        * If we hit a bus type or situation we cannot handle, we
+        * stop and assume that the original IRQ number was in a
+        * format which has special meaning to it's immediate parent.
+        */
+       pp = dp->parent;
+       ip = NULL;
+       while (pp) {
+               void *imap, *imsk;
+               int imlen;
+
+               imap = of_get_property(pp, "interrupt-map", &imlen);
+               imsk = of_get_property(pp, "interrupt-map-mask", NULL);
+               if (imap && imsk) {
+                       struct device_node *iret;
+                       int this_orig_irq = irq;
+
+                       iret = apply_interrupt_map(dp, pp,
+                                                  imap, imlen, imsk,
+                                                  &irq);
+#if 1
+                       printk("%s: Apply [%s:%x] imap --> [%s:%x]\n",
+                              op->node->full_name,
+                              pp->full_name, this_orig_irq,
+                              (iret ? iret->full_name : "NULL"), irq);
+#endif
+                       if (!iret)
+                               break;
+
+                       if (iret->irq_trans) {
+                               ip = iret;
+                               break;
+                       }
+               } else {
+                       if (!strcmp(pp->type, "pci") ||
+                           !strcmp(pp->type, "pciex")) {
+                               unsigned int this_orig_irq = irq;
+
+                               irq = pci_irq_swizzle(dp, pp, irq);
+#if 1
+                               printk("%s: PCI swizzle [%s] %x --> %x\n",
+                                      op->node->full_name,
+                                      pp->full_name, this_orig_irq, irq);
+#endif
+                       }
+
+                       if (pp->irq_trans) {
+                               ip = pp;
+                               break;
+                       }
+               }
+               dp = pp;
+               pp = pp->parent;
+       }
+       if (!ip)
+               return orig_irq;
+
+       irq = ip->irq_trans->irq_build(op->node, irq,
+                                      ip->irq_trans->data);
+#if 1
+       printk("%s: Apply IRQ trans [%s] %x --> %x\n",
+              op->node->full_name, ip->full_name, orig_irq, irq);
+#endif
+
+       return irq;
+}
+
+static struct of_device * __init scan_one_device(struct device_node *dp,
+                                                struct device *parent)
+{
+       struct of_device *op = kzalloc(sizeof(*op), GFP_KERNEL);
+       unsigned int *irq;
+       int len, i;
+
+       if (!op)
+               return NULL;
+
+       op->node = dp;
+
+       op->clock_freq = of_getintprop_default(dp, "clock-frequency",
+                                              (25*1000*1000));
+       op->portid = of_getintprop_default(dp, "upa-portid", -1);
+       if (op->portid == -1)
+               op->portid = of_getintprop_default(dp, "portid", -1);
+
+       irq = of_get_property(dp, "interrupts", &len);
+       if (irq) {
+               memcpy(op->irqs, irq, len);
+               op->num_irqs = len / 4;
+       } else {
+               op->num_irqs = 0;
+       }
+
+       build_device_resources(op, parent);
+       for (i = 0; i < op->num_irqs; i++)
+               op->irqs[i] = build_one_device_irq(op, parent, op->irqs[i]);
+
+       op->dev.parent = parent;
+       op->dev.bus = &of_bus_type;
+       if (!parent)
+               strcpy(op->dev.bus_id, "root");
+       else
+               strcpy(op->dev.bus_id, dp->path_component_name);
+
+       if (of_device_register(op)) {
+               printk("%s: Could not register of device.\n",
+                      dp->full_name);
+               kfree(op);
+               op = NULL;
+       }
+
+       return op;
+}
+
+static void __init scan_tree(struct device_node *dp, struct device *parent)
+{
+       while (dp) {
+               struct of_device *op = scan_one_device(dp, parent);
+
+               if (op)
+                       scan_tree(dp->child, &op->dev);
+
+               dp = dp->sibling;
+       }
+}
+
+static void __init scan_of_devices(void)
+{
+       struct device_node *root = of_find_node_by_path("/");
+       struct of_device *parent;
+
+       parent = scan_one_device(root, NULL);
+       if (!parent)
+               return;
+
+       scan_tree(root->child, &parent->dev);
+}
+
 static int __init of_bus_driver_init(void)
 {
-       int err = 0;
+       int err;
 
+       err = bus_register(&of_bus_type);
 #ifdef CONFIG_PCI
        if (!err)
                err = bus_register(&isa_bus_type);
@@ -177,7 +861,11 @@ static int __init of_bus_driver_init(void)
        if (!err)
                err = bus_register(&sbus_bus_type);
 #endif
-       return 0;
+
+       if (!err)
+               scan_of_devices();
+
+       return err;
 }
 
 postcore_initcall(of_bus_driver_init);
index 20ca9ec8fd3bbef18c844490c4f8f553c9a23116..e02f01b644af738ae1d19a7c1680fcbef1747964 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1999 Jakub Jelinek   (jj@ultra.linux.cz)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
@@ -307,7 +306,6 @@ static void __init pci_scan_each_controller_bus(void)
                p->scan_bus(p);
 }
 
-extern void clock_probe(void);
 extern void power_init(void);
 
 static int __init pcibios_init(void)
@@ -320,7 +318,6 @@ static int __init pcibios_init(void)
 
        isa_init();
        ebus_init();
-       clock_probe();
        power_init();
 
        return 0;
@@ -406,14 +403,8 @@ void pcibios_bus_to_resource(struct pci_dev *pdev, struct resource *res,
 }
 EXPORT_SYMBOL(pcibios_bus_to_resource);
 
-extern int pci_irq_verbose;
-
 char * __init pcibios_setup(char *str)
 {
-       if (!strcmp(str, "irq_verbose")) {
-               pci_irq_verbose = 1;
-               return NULL;
-       }
        return str;
 }
 
index b06a2955bf5f720b30a1af3db2206de8f9f4d215..7a59cc72c844c438188f5fef41bb4adcc08ea523 100644 (file)
 
 #include <asm/pbm.h>
 #include <asm/prom.h>
+#include <asm/of_device.h>
 
 #include "pci_impl.h"
 
-/* Pass "pci=irq_verbose" on the kernel command line to enable this.  */
-int pci_irq_verbose;
-
 /* Fix self device of BUS and hook it into BUS->self.
  * The pci_scan_bus does not do this for the host bridge.
  */
@@ -169,6 +167,7 @@ static void __init pdev_cookie_fillin(struct pci_pbm_info *pbm,
        }
        pcp->pbm = pbm;
        pcp->prom_node = dp;
+       pcp->op = of_find_device_by_node(dp);
        memcpy(pcp->prom_regs, pregs,
               nregs * sizeof(struct linux_prom_pci_registers));
        pcp->num_prom_regs = nregs;
@@ -549,296 +548,18 @@ void __init pci_assign_unassigned(struct pci_pbm_info *pbm,
                pci_assign_unassigned(pbm, bus);
 }
 
-static inline unsigned int pci_slot_swivel(struct pci_pbm_info *pbm,
-                                          struct pci_dev *toplevel_pdev,
-                                          struct pci_dev *pdev,
-                                          unsigned int interrupt)
-{
-       unsigned int ret;
-
-       if (unlikely(interrupt < 1 || interrupt > 4)) {
-               printk("%s: Device %s interrupt value of %u is strange.\n",
-                      pbm->name, pci_name(pdev), interrupt);
-               return interrupt;
-       }
-
-       ret = ((interrupt - 1 + (PCI_SLOT(pdev->devfn) & 3)) & 3) + 1;
-
-       if (pci_irq_verbose)
-               printk("%s: %s IRQ Swivel %s [%x:%x] -> [%x]\n",
-                      pbm->name, pci_name(toplevel_pdev), pci_name(pdev),
-                      interrupt, PCI_SLOT(pdev->devfn), ret);
-
-       return ret;
-}
-
-static inline unsigned int pci_apply_intmap(struct pci_pbm_info *pbm,
-                                           struct pci_dev *toplevel_pdev,
-                                           struct pci_dev *pbus,
-                                           struct pci_dev *pdev,
-                                           unsigned int interrupt,
-                                           struct device_node **cnode)
-{
-       struct linux_prom_pci_intmap *imap;
-       struct linux_prom_pci_intmask *imask;
-       struct pcidev_cookie *pbus_pcp = pbus->sysdata;
-       struct pcidev_cookie *pdev_pcp = pdev->sysdata;
-       struct linux_prom_pci_registers *pregs = pdev_pcp->prom_regs;
-       struct property *prop;
-       int plen, num_imap, i;
-       unsigned int hi, mid, lo, irq, orig_interrupt;
-
-       *cnode = pbus_pcp->prom_node;
-
-       prop = of_find_property(pbus_pcp->prom_node, "interrupt-map", &plen);
-       if (!prop ||
-           (plen % sizeof(struct linux_prom_pci_intmap)) != 0) {
-               printk("%s: Device %s interrupt-map has bad len %d\n",
-                      pbm->name, pci_name(pbus), plen);
-               goto no_intmap;
-       }
-       imap = prop->value;
-       num_imap = plen / sizeof(struct linux_prom_pci_intmap);
-
-       prop = of_find_property(pbus_pcp->prom_node, "interrupt-map-mask", &plen);
-       if (!prop ||
-           (plen % sizeof(struct linux_prom_pci_intmask)) != 0) {
-               printk("%s: Device %s interrupt-map-mask has bad len %d\n",
-                      pbm->name, pci_name(pbus), plen);
-               goto no_intmap;
-       }
-       imask = prop->value;
-
-       orig_interrupt = interrupt;
-
-       hi   = pregs->phys_hi & imask->phys_hi;
-       mid  = pregs->phys_mid & imask->phys_mid;
-       lo   = pregs->phys_lo & imask->phys_lo;
-       irq  = interrupt & imask->interrupt;
-
-       for (i = 0; i < num_imap; i++) {
-               if (imap[i].phys_hi  == hi   &&
-                   imap[i].phys_mid == mid  &&
-                   imap[i].phys_lo  == lo   &&
-                   imap[i].interrupt == irq) {
-                       *cnode = of_find_node_by_phandle(imap[i].cnode);
-                       interrupt = imap[i].cinterrupt;
-               }
-       }
-
-       if (pci_irq_verbose)
-               printk("%s: %s MAP BUS %s DEV %s [%x] -> [%x]\n",
-                      pbm->name, pci_name(toplevel_pdev),
-                      pci_name(pbus), pci_name(pdev),
-                      orig_interrupt, interrupt);
-
-no_intmap:
-       return interrupt;
-}
-
-/* For each PCI bus on the way to the root:
- * 1) If it has an interrupt-map property, apply it.
- * 2) Else, swivel the interrupt number based upon the PCI device number.
- *
- * Return the "IRQ controller" node.  If this is the PBM's device node,
- * all interrupt translations are complete, else we should use that node's
- * "reg" property to apply the PBM's "interrupt-{map,mask}" to the interrupt.
- */
-static struct device_node * __init
-pci_intmap_match_to_root(struct pci_pbm_info *pbm,
-                        struct pci_dev *pdev,
-                        unsigned int *interrupt)
-{
-       struct pci_dev *toplevel_pdev = pdev;
-       struct pcidev_cookie *toplevel_pcp = toplevel_pdev->sysdata;
-       struct device_node *cnode = toplevel_pcp->prom_node;
-
-       while (pdev->bus->number != pbm->pci_first_busno) {
-               struct pci_dev *pbus = pdev->bus->self;
-               struct pcidev_cookie *pcp = pbus->sysdata;
-               struct property *prop;
-
-               prop = of_find_property(pcp->prom_node, "interrupt-map", NULL);
-               if (!prop) {
-                       *interrupt = pci_slot_swivel(pbm, toplevel_pdev,
-                                                    pdev, *interrupt);
-                       cnode = pcp->prom_node;
-               } else {
-                       *interrupt = pci_apply_intmap(pbm, toplevel_pdev,
-                                                     pbus, pdev,
-                                                     *interrupt, &cnode);
-
-                       while (pcp->prom_node != cnode &&
-                              pbus->bus->number != pbm->pci_first_busno) {
-                               pbus = pbus->bus->self;
-                               pcp = pbus->sysdata;
-                       }
-               }
-               pdev = pbus;
-
-               if (cnode == pbm->prom_node)
-                       break;
-       }
-
-       return cnode;
-}
-
-static int __init pci_intmap_match(struct pci_dev *pdev, unsigned int *interrupt)
-{
-       struct pcidev_cookie *dev_pcp = pdev->sysdata;
-       struct pci_pbm_info *pbm = dev_pcp->pbm;
-       struct linux_prom_pci_registers *reg;
-       struct device_node *cnode;
-       struct property *prop;
-       unsigned int hi, mid, lo, irq;
-       int i, plen;
-
-       cnode = pci_intmap_match_to_root(pbm, pdev, interrupt);
-       if (cnode == pbm->prom_node)
-               goto success;
-
-       prop = of_find_property(cnode, "reg", &plen);
-       if (!prop ||
-           (plen % sizeof(struct linux_prom_pci_registers)) != 0) {
-               printk("%s: OBP node %s reg property has bad len %d\n",
-                      pbm->name, cnode->full_name, plen);
-               goto fail;
-       }
-       reg = prop->value;
-
-       hi   = reg[0].phys_hi & pbm->pbm_intmask->phys_hi;
-       mid  = reg[0].phys_mid & pbm->pbm_intmask->phys_mid;
-       lo   = reg[0].phys_lo & pbm->pbm_intmask->phys_lo;
-       irq  = *interrupt & pbm->pbm_intmask->interrupt;
-
-       for (i = 0; i < pbm->num_pbm_intmap; i++) {
-               struct linux_prom_pci_intmap *intmap;
-
-               intmap = &pbm->pbm_intmap[i];
-
-               if (intmap->phys_hi  == hi  &&
-                   intmap->phys_mid == mid &&
-                   intmap->phys_lo  == lo  &&
-                   intmap->interrupt == irq) {
-                       *interrupt = intmap->cinterrupt;
-                       goto success;
-               }
-       }
-
-fail:
-       return 0;
-
-success:
-       if (pci_irq_verbose)
-               printk("%s: Routing bus[%2x] slot[%2x] to INO[%02x]\n",
-                      pbm->name,
-                      pdev->bus->number, PCI_SLOT(pdev->devfn),
-                      *interrupt);
-       return 1;
-}
-
 static void __init pdev_fixup_irq(struct pci_dev *pdev)
 {
        struct pcidev_cookie *pcp = pdev->sysdata;
-       struct pci_pbm_info *pbm = pcp->pbm;
-       struct pci_controller_info *p = pbm->parent;
-       unsigned int portid = pbm->portid;
-       unsigned int prom_irq;
-       struct device_node *dp = pcp->prom_node;
-       struct property *prop;
-
-       /* If this is an empty EBUS device, sometimes OBP fails to
-        * give it a valid fully specified interrupts property.
-        * The EBUS hooked up to SunHME on PCI I/O boards of
-        * Ex000 systems is one such case.
-        *
-        * The interrupt is not important so just ignore it.
-        */
-       if (pdev->vendor == PCI_VENDOR_ID_SUN &&
-           pdev->device == PCI_DEVICE_ID_SUN_EBUS &&
-           !dp->child) {
-               pdev->irq = 0;
-               return;
-       }
+       struct of_device *op = pcp->op;
 
-       prop = of_find_property(dp, "interrupts", NULL);
-       if (!prop) {
-               pdev->irq = 0;
+       if (op->irqs[0] == 0xffffffff) {
+               pdev->irq = PCI_IRQ_NONE;
                return;
        }
-       prom_irq = *(unsigned int *) prop->value;
-
-       if (tlb_type != hypervisor) {
-               /* Fully specified already? */
-               if (((prom_irq & PCI_IRQ_IGN) >> 6) == portid) {
-                       pdev->irq = p->irq_build(pbm, pdev, prom_irq);
-                       goto have_irq;
-               }
-
-               /* An onboard device? (bit 5 set) */
-               if ((prom_irq & PCI_IRQ_INO) & 0x20) {
-                       pdev->irq = p->irq_build(pbm, pdev, (portid << 6 | prom_irq));
-                       goto have_irq;
-               }
-       }
-
-       /* Can we find a matching entry in the interrupt-map? */
-       if (pci_intmap_match(pdev, &prom_irq)) {
-               pdev->irq = p->irq_build(pbm, pdev, (portid << 6) | prom_irq);
-               goto have_irq;
-       }
-
-       /* Ok, we have to do it the hard way. */
-       {
-               unsigned int bus, slot, line;
-
-               bus = (pbm == &pbm->parent->pbm_B) ? (1 << 4) : 0;
-
-               /* If we have a legal interrupt property, use it as
-                * the IRQ line.
-                */
-               if (prom_irq > 0 && prom_irq < 5) {
-                       line = ((prom_irq - 1) & 3);
-               } else {
-                       u8 pci_irq_line;
 
-                       /* Else just directly consult PCI config space. */
-                       pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pci_irq_line);
-                       line = ((pci_irq_line - 1) & 3);
-               }
-
-               /* Now figure out the slot.
-                *
-                * Basically, device number zero on the top-level bus is
-                * always the PCI host controller.  Slot 0 is then device 1.
-                * PBM A supports two external slots (0 and 1), and PBM B
-                * supports 4 external slots (0, 1, 2, and 3).  On-board PCI
-                * devices are wired to device numbers outside of these
-                * ranges. -DaveM
-                */
-               if (pdev->bus->number == pbm->pci_first_busno) {
-                       slot = PCI_SLOT(pdev->devfn) - pbm->pci_first_slot;
-               } else {
-                       struct pci_dev *bus_dev;
-
-                       /* Underneath a bridge, use slot number of parent
-                        * bridge which is closest to the PBM.
-                        */
-                       bus_dev = pdev->bus->self;
-                       while (bus_dev->bus &&
-                              bus_dev->bus->number != pbm->pci_first_busno)
-                               bus_dev = bus_dev->bus->self;
-
-                       slot = PCI_SLOT(bus_dev->devfn) - pbm->pci_first_slot;
-               }
-               slot = slot << 2;
-
-               pdev->irq = p->irq_build(pbm, pdev,
-                                        ((portid << 6) & PCI_IRQ_IGN) |
-                                        (bus | slot | line));
-       }
+       pdev->irq = op->irqs[0];
 
-have_irq:
        pci_write_config_byte(pdev, PCI_INTERRUPT_LINE,
                              pdev->irq & PCI_IRQ_INO);
 }
index 5b2261ebda6f98bd787ee3e143b55a2861677056..bf7b32b3670564f1834c08ec5918454969471c5c 100644 (file)
@@ -18,6 +18,7 @@
 #include <asm/irq.h>
 #include <asm/starfire.h>
 #include <asm/prom.h>
+#include <asm/of_device.h>
 
 #include "pci_impl.h"
 #include "iommu_common.h"
@@ -208,110 +209,6 @@ static struct pci_ops psycho_ops = {
        .write =        psycho_write_pci_cfg,
 };
 
-/* PSYCHO interrupt mapping support. */
-#define PSYCHO_IMAP_A_SLOT0    0x0c00UL
-#define PSYCHO_IMAP_B_SLOT0    0x0c20UL
-static unsigned long psycho_pcislot_imap_offset(unsigned long ino)
-{
-       unsigned int bus =  (ino & 0x10) >> 4;
-       unsigned int slot = (ino & 0x0c) >> 2;
-
-       if (bus == 0)
-               return PSYCHO_IMAP_A_SLOT0 + (slot * 8);
-       else
-               return PSYCHO_IMAP_B_SLOT0 + (slot * 8);
-}
-
-#define PSYCHO_IMAP_SCSI       0x1000UL
-#define PSYCHO_IMAP_ETH                0x1008UL
-#define PSYCHO_IMAP_BPP                0x1010UL
-#define PSYCHO_IMAP_AU_REC     0x1018UL
-#define PSYCHO_IMAP_AU_PLAY    0x1020UL
-#define PSYCHO_IMAP_PFAIL      0x1028UL
-#define PSYCHO_IMAP_KMS                0x1030UL
-#define PSYCHO_IMAP_FLPY       0x1038UL
-#define PSYCHO_IMAP_SHW                0x1040UL
-#define PSYCHO_IMAP_KBD                0x1048UL
-#define PSYCHO_IMAP_MS         0x1050UL
-#define PSYCHO_IMAP_SER                0x1058UL
-#define PSYCHO_IMAP_TIM0       0x1060UL
-#define PSYCHO_IMAP_TIM1       0x1068UL
-#define PSYCHO_IMAP_UE         0x1070UL
-#define PSYCHO_IMAP_CE         0x1078UL
-#define PSYCHO_IMAP_A_ERR      0x1080UL
-#define PSYCHO_IMAP_B_ERR      0x1088UL
-#define PSYCHO_IMAP_PMGMT      0x1090UL
-#define PSYCHO_IMAP_GFX                0x1098UL
-#define PSYCHO_IMAP_EUPA       0x10a0UL
-
-static unsigned long __onboard_imap_off[] = {
-/*0x20*/       PSYCHO_IMAP_SCSI,
-/*0x21*/       PSYCHO_IMAP_ETH,
-/*0x22*/       PSYCHO_IMAP_BPP,
-/*0x23*/       PSYCHO_IMAP_AU_REC,
-/*0x24*/       PSYCHO_IMAP_AU_PLAY,
-/*0x25*/       PSYCHO_IMAP_PFAIL,
-/*0x26*/       PSYCHO_IMAP_KMS,
-/*0x27*/       PSYCHO_IMAP_FLPY,
-/*0x28*/       PSYCHO_IMAP_SHW,
-/*0x29*/       PSYCHO_IMAP_KBD,
-/*0x2a*/       PSYCHO_IMAP_MS,
-/*0x2b*/       PSYCHO_IMAP_SER,
-/*0x2c*/       PSYCHO_IMAP_TIM0,
-/*0x2d*/       PSYCHO_IMAP_TIM1,
-/*0x2e*/       PSYCHO_IMAP_UE,
-/*0x2f*/       PSYCHO_IMAP_CE,
-/*0x30*/       PSYCHO_IMAP_A_ERR,
-/*0x31*/       PSYCHO_IMAP_B_ERR,
-/*0x32*/       PSYCHO_IMAP_PMGMT
-};
-#define PSYCHO_ONBOARD_IRQ_BASE                0x20
-#define PSYCHO_ONBOARD_IRQ_LAST                0x32
-#define psycho_onboard_imap_offset(__ino) \
-       __onboard_imap_off[(__ino) - PSYCHO_ONBOARD_IRQ_BASE]
-
-#define PSYCHO_ICLR_A_SLOT0    0x1400UL
-#define PSYCHO_ICLR_SCSI       0x1800UL
-
-#define psycho_iclr_offset(ino)                                              \
-       ((ino & 0x20) ? (PSYCHO_ICLR_SCSI + (((ino) & 0x1f) << 3)) :  \
-                       (PSYCHO_ICLR_A_SLOT0 + (((ino) & 0x1f)<<3)))
-
-static unsigned int psycho_irq_build(struct pci_pbm_info *pbm,
-                                    struct pci_dev *pdev,
-                                    unsigned int ino)
-{
-       unsigned long imap, iclr;
-       unsigned long imap_off, iclr_off;
-       int inofixup = 0;
-
-       ino &= PCI_IRQ_INO;
-       if (ino < PSYCHO_ONBOARD_IRQ_BASE) {
-               /* PCI slot */
-               imap_off = psycho_pcislot_imap_offset(ino);
-       } else {
-               /* Onboard device */
-               if (ino > PSYCHO_ONBOARD_IRQ_LAST) {
-                       prom_printf("psycho_irq_build: Wacky INO [%x]\n", ino);
-                       prom_halt();
-               }
-               imap_off = psycho_onboard_imap_offset(ino);
-       }
-
-       /* Now build the IRQ bucket. */
-       imap = pbm->controller_regs + imap_off;
-       imap += 4;
-
-       iclr_off = psycho_iclr_offset(ino);
-       iclr = pbm->controller_regs + iclr_off;
-       iclr += 4;
-
-       if ((ino & 0x20) == 0)
-               inofixup = ino & 0x03;
-
-       return build_irq(inofixup, iclr, imap);
-}
-
 /* PSYCHO error handling support. */
 enum psycho_error_type {
        UE_ERR, CE_ERR, PCI_ERR
@@ -944,51 +841,34 @@ static irqreturn_t psycho_pcierr_intr(int irq, void *dev_id, struct pt_regs *reg
 #define  PSYCHO_ECCCTRL_EE      0x8000000000000000UL /* Enable ECC Checking */
 #define  PSYCHO_ECCCTRL_UE      0x4000000000000000UL /* Enable UE Interrupts */
 #define  PSYCHO_ECCCTRL_CE      0x2000000000000000UL /* Enable CE INterrupts */
-#define PSYCHO_UE_INO          0x2e
-#define PSYCHO_CE_INO          0x2f
-#define PSYCHO_PCIERR_A_INO    0x30
-#define PSYCHO_PCIERR_B_INO    0x31
 static void psycho_register_error_handlers(struct pci_controller_info *p)
 {
        struct pci_pbm_info *pbm = &p->pbm_A; /* arbitrary */
+       struct of_device *op = of_find_device_by_node(pbm->prom_node);
        unsigned long base = p->pbm_A.controller_regs;
-       unsigned int irq, portid = pbm->portid;
        u64 tmp;
 
-       /* Build IRQs and register handlers. */
-       irq = psycho_irq_build(pbm, NULL, (portid << 6) | PSYCHO_UE_INO);
-       if (request_irq(irq, psycho_ue_intr,
-                       SA_SHIRQ, "PSYCHO UE", p) < 0) {
-               prom_printf("PSYCHO%d: Cannot register UE interrupt.\n",
-                           p->index);
-               prom_halt();
-       }
+       if (!op)
+               return;
 
-       irq = psycho_irq_build(pbm, NULL, (portid << 6) | PSYCHO_CE_INO);
-       if (request_irq(irq, psycho_ce_intr,
-                       SA_SHIRQ, "PSYCHO CE", p) < 0) {
-               prom_printf("PSYCHO%d: Cannot register CE interrupt.\n",
-                           p->index);
-               prom_halt();
-       }
+       /* Psycho interrupt property order is:
+        * 0: PCIERR PBM B INO
+        * 1: UE ERR
+        * 2: CE ERR
+        * 3: POWER FAIL
+        * 4: SPARE HARDWARE
+        * 5: PCIERR PBM A INO
+        */
 
-       pbm = &p->pbm_A;
-       irq = psycho_irq_build(pbm, NULL, (portid << 6) | PSYCHO_PCIERR_A_INO);
-       if (request_irq(irq, psycho_pcierr_intr,
-                       SA_SHIRQ, "PSYCHO PCIERR", &p->pbm_A) < 0) {
-               prom_printf("PSYCHO%d(PBMA): Cannot register PciERR interrupt.\n",
-                           p->index);
-               prom_halt();
-       }
+       if (op->num_irqs < 6)
+               return;
 
-       pbm = &p->pbm_B;
-       irq = psycho_irq_build(pbm, NULL, (portid << 6) | PSYCHO_PCIERR_B_INO);
-       if (request_irq(irq, psycho_pcierr_intr,
-                       SA_SHIRQ, "PSYCHO PCIERR", &p->pbm_B) < 0) {
-               prom_printf("PSYCHO%d(PBMB): Cannot register PciERR interrupt.\n",
-                           p->index);
-               prom_halt();
-       }
+       request_irq(op->irqs[1], psycho_ue_intr, SA_SHIRQ, "PSYCHO UE", p);
+       request_irq(op->irqs[2], psycho_ce_intr, SA_SHIRQ, "PSYCHO CE", p);
+       request_irq(op->irqs[5], psycho_pcierr_intr, SA_SHIRQ,
+                   "PSYCHO PCIERR-A", &p->pbm_A);
+       request_irq(op->irqs[0], psycho_pcierr_intr, SA_SHIRQ,
+                   "PSYCHO PCIERR-B", &p->pbm_B);
 
        /* Enable UE and CE interrupts for controller. */
        psycho_write(base + PSYCHO_ECC_CTRL,
@@ -1171,9 +1051,7 @@ static void psycho_iommu_init(struct pci_controller_info *p)
 
        /* If necessary, hook us up for starfire IRQ translations. */
        if (this_is_starfire)
-               p->starfire_cookie = starfire_hookup(p->pbm_A.portid);
-       else
-               p->starfire_cookie = NULL;
+               starfire_hookup(p->pbm_A.portid);
 }
 
 #define PSYCHO_IRQ_RETRY       0x1a00UL
@@ -1408,7 +1286,6 @@ void psycho_init(struct device_node *dp, char *model_name)
        p->index = pci_num_controllers++;
        p->pbms_same_domain = 0;
        p->scan_bus = psycho_scan_bus;
-       p->irq_build = psycho_irq_build;
        p->base_address_update = psycho_base_address_update;
        p->resource_adjust = psycho_resource_adjust;
        p->pci_ops = &psycho_ops;
index 26f194ce4400082774ae5bcb5a96e6be062ef1e8..5e087b0fb4c90b9db6d9b3d5fdfed67122cd8eda 100644 (file)
@@ -485,114 +485,6 @@ static struct pci_ops sabre_ops = {
        .write =        sabre_write_pci_cfg,
 };
 
-static unsigned long sabre_pcislot_imap_offset(unsigned long ino)
-{
-       unsigned int bus =  (ino & 0x10) >> 4;
-       unsigned int slot = (ino & 0x0c) >> 2;
-
-       if (bus == 0)
-               return SABRE_IMAP_A_SLOT0 + (slot * 8);
-       else
-               return SABRE_IMAP_B_SLOT0 + (slot * 8);
-}
-
-static unsigned long __onboard_imap_off[] = {
-/*0x20*/       SABRE_IMAP_SCSI,
-/*0x21*/       SABRE_IMAP_ETH,
-/*0x22*/       SABRE_IMAP_BPP,
-/*0x23*/       SABRE_IMAP_AU_REC,
-/*0x24*/       SABRE_IMAP_AU_PLAY,
-/*0x25*/       SABRE_IMAP_PFAIL,
-/*0x26*/       SABRE_IMAP_KMS,
-/*0x27*/       SABRE_IMAP_FLPY,
-/*0x28*/       SABRE_IMAP_SHW,
-/*0x29*/       SABRE_IMAP_KBD,
-/*0x2a*/       SABRE_IMAP_MS,
-/*0x2b*/       SABRE_IMAP_SER,
-/*0x2c*/       0 /* reserved */,
-/*0x2d*/       0 /* reserved */,
-/*0x2e*/       SABRE_IMAP_UE,
-/*0x2f*/       SABRE_IMAP_CE,
-/*0x30*/       SABRE_IMAP_PCIERR,
-};
-#define SABRE_ONBOARD_IRQ_BASE         0x20
-#define SABRE_ONBOARD_IRQ_LAST         0x30
-#define sabre_onboard_imap_offset(__ino) \
-       __onboard_imap_off[(__ino) - SABRE_ONBOARD_IRQ_BASE]
-
-#define sabre_iclr_offset(ino)                                       \
-       ((ino & 0x20) ? (SABRE_ICLR_SCSI + (((ino) & 0x1f) << 3)) :  \
-                       (SABRE_ICLR_A_SLOT0 + (((ino) & 0x1f)<<3)))
-
-/* When a device lives behind a bridge deeper in the PCI bus topology
- * than APB, a special sequence must run to make sure all pending DMA
- * transfers at the time of IRQ delivery are visible in the coherency
- * domain by the cpu.  This sequence is to perform a read on the far
- * side of the non-APB bridge, then perform a read of Sabre's DMA
- * write-sync register.
- */
-static void sabre_wsync_handler(unsigned int ino, void *_arg1, void *_arg2)
-{
-       struct pci_dev *pdev = _arg1;
-       unsigned long sync_reg = (unsigned long) _arg2;
-       u16 _unused;
-
-       pci_read_config_word(pdev, PCI_VENDOR_ID, &_unused);
-       sabre_read(sync_reg);
-}
-
-static unsigned int sabre_irq_build(struct pci_pbm_info *pbm,
-                                   struct pci_dev *pdev,
-                                   unsigned int ino)
-{
-       unsigned long imap, iclr;
-       unsigned long imap_off, iclr_off;
-       int inofixup = 0;
-       int virt_irq;
-
-       ino &= PCI_IRQ_INO;
-       if (ino < SABRE_ONBOARD_IRQ_BASE) {
-               /* PCI slot */
-               imap_off = sabre_pcislot_imap_offset(ino);
-       } else {
-               /* onboard device */
-               if (ino > SABRE_ONBOARD_IRQ_LAST) {
-                       prom_printf("sabre_irq_build: Wacky INO [%x]\n", ino);
-                       prom_halt();
-               }
-               imap_off = sabre_onboard_imap_offset(ino);
-       }
-
-       /* Now build the IRQ bucket. */
-       imap = pbm->controller_regs + imap_off;
-       imap += 4;
-
-       iclr_off = sabre_iclr_offset(ino);
-       iclr = pbm->controller_regs + iclr_off;
-       iclr += 4;
-
-       if ((ino & 0x20) == 0)
-               inofixup = ino & 0x03;
-
-       virt_irq = build_irq(inofixup, iclr, imap);
-
-       if (pdev) {
-               struct pcidev_cookie *pcp = pdev->sysdata;
-
-               if (pdev->bus->number != pcp->pbm->pci_first_busno) {
-                       struct pci_controller_info *p = pcp->pbm->parent;
-
-                       irq_install_pre_handler(virt_irq,
-                                               sabre_wsync_handler,
-                                               pdev,
-                                               (void *)
-                                               p->pbm_A.controller_regs +
-                                               SABRE_WRSYNC);
-               }
-       }
-       return virt_irq;
-}
-
 /* SABRE error handling support. */
 static void sabre_check_iommu_error(struct pci_controller_info *p,
                                    unsigned long afsr,
@@ -929,17 +821,30 @@ static irqreturn_t sabre_pcierr_intr(int irq, void *dev_id, struct pt_regs *regs
        return IRQ_HANDLED;
 }
 
-/* XXX What about PowerFail/PowerManagement??? -DaveM */
-#define SABRE_UE_INO           0x2e
-#define SABRE_CE_INO           0x2f
-#define SABRE_PCIERR_INO       0x30
 static void sabre_register_error_handlers(struct pci_controller_info *p)
 {
        struct pci_pbm_info *pbm = &p->pbm_A; /* arbitrary */
+       struct device_node *dp = pbm->prom_node;
+       struct of_device *op;
        unsigned long base = pbm->controller_regs;
-       unsigned long irq, portid = pbm->portid;
        u64 tmp;
 
+       if (pbm->chip_type == PBM_CHIP_TYPE_SABRE)
+               dp = dp->parent;
+
+       op = of_find_device_by_node(dp);
+       if (!op)
+               return;
+
+       /* Sabre/Hummingbird IRQ property layout is:
+        * 0: PCI ERR
+        * 1: UE ERR
+        * 2: CE ERR
+        * 3: POWER FAIL
+        */
+       if (op->num_irqs < 4)
+               return;
+
        /* We clear the error bits in the appropriate AFSR before
         * registering the handler so that we don't get spurious
         * interrupts.
@@ -948,32 +853,16 @@ static void sabre_register_error_handlers(struct pci_controller_info *p)
                    (SABRE_UEAFSR_PDRD | SABRE_UEAFSR_PDWR |
                     SABRE_UEAFSR_SDRD | SABRE_UEAFSR_SDWR |
                     SABRE_UEAFSR_SDTE | SABRE_UEAFSR_PDTE));
-       irq = sabre_irq_build(pbm, NULL, (portid << 6) | SABRE_UE_INO);
-       if (request_irq(irq, sabre_ue_intr,
-                       SA_SHIRQ, "SABRE UE", p) < 0) {
-               prom_printf("SABRE%d: Cannot register UE interrupt.\n",
-                           p->index);
-               prom_halt();
-       }
+
+       request_irq(op->irqs[1], sabre_ue_intr, SA_SHIRQ, "SABRE UE", p);
 
        sabre_write(base + SABRE_CE_AFSR,
                    (SABRE_CEAFSR_PDRD | SABRE_CEAFSR_PDWR |
                     SABRE_CEAFSR_SDRD | SABRE_CEAFSR_SDWR));
-       irq = sabre_irq_build(pbm, NULL, (portid << 6) | SABRE_CE_INO);
-       if (request_irq(irq, sabre_ce_intr,
-                       SA_SHIRQ, "SABRE CE", p) < 0) {
-               prom_printf("SABRE%d: Cannot register CE interrupt.\n",
-                           p->index);
-               prom_halt();
-       }
 
-       irq = sabre_irq_build(pbm, NULL, (portid << 6) | SABRE_PCIERR_INO);
-       if (request_irq(irq, sabre_pcierr_intr,
-                       SA_SHIRQ, "SABRE PCIERR", p) < 0) {
-               prom_printf("SABRE%d: Cannot register PciERR interrupt.\n",
-                           p->index);
-               prom_halt();
-       }
+       request_irq(op->irqs[2], sabre_ce_intr, SA_SHIRQ, "SABRE CE", p);
+       request_irq(op->irqs[0], sabre_pcierr_intr, SA_SHIRQ,
+                   "SABRE PCIERR", p);
 
        tmp = sabre_read(base + SABRE_PCICTRL);
        tmp |= SABRE_PCICTRL_ERREN;
@@ -1492,7 +1381,6 @@ void sabre_init(struct device_node *dp, char *model_name)
        p->index = pci_num_controllers++;
        p->pbms_same_domain = 1;
        p->scan_bus = sabre_scan_bus;
-       p->irq_build = sabre_irq_build;
        p->base_address_update = sabre_base_address_update;
        p->resource_adjust = sabre_resource_adjust;
        p->pci_ops = &sabre_ops;
index f16449ccd7bc389d172509976e7171a3ca3c2125..5c6e2a9b91f8000e88587e5b29a6bfdbbe030ffc 100644 (file)
@@ -217,116 +217,6 @@ static struct pci_ops schizo_ops = {
        .write =        schizo_write_pci_cfg,
 };
 
-/* SCHIZO interrupt mapping support.  Unlike Psycho, for this controller the
- * imap/iclr registers are per-PBM.
- */
-#define SCHIZO_IMAP_BASE       0x1000UL
-#define SCHIZO_ICLR_BASE       0x1400UL
-
-static unsigned long schizo_imap_offset(unsigned long ino)
-{
-       return SCHIZO_IMAP_BASE + (ino * 8UL);
-}
-
-static unsigned long schizo_iclr_offset(unsigned long ino)
-{
-       return SCHIZO_ICLR_BASE + (ino * 8UL);
-}
-
-static void tomatillo_wsync_handler(unsigned int ino, void *_arg1, void *_arg2)
-{
-       unsigned long sync_reg = (unsigned long) _arg2;
-       u64 mask = 1UL << (ino & IMAP_INO);
-       u64 val;
-       int limit;
-
-       schizo_write(sync_reg, mask);
-
-       limit = 100000;
-       val = 0;
-       while (--limit) {
-               val = schizo_read(sync_reg);
-               if (!(val & mask))
-                       break;
-       }
-       if (limit <= 0) {
-               printk("tomatillo_wsync_handler: DMA won't sync [%lx:%lx]\n",
-                      val, mask);
-       }
-
-       if (_arg1) {
-               static unsigned char cacheline[64]
-                       __attribute__ ((aligned (64)));
-
-               __asm__ __volatile__("rd %%fprs, %0\n\t"
-                                    "or %0, %4, %1\n\t"
-                                    "wr %1, 0x0, %%fprs\n\t"
-                                    "stda %%f0, [%5] %6\n\t"
-                                    "wr %0, 0x0, %%fprs\n\t"
-                                    "membar #Sync"
-                                    : "=&r" (mask), "=&r" (val)
-                                    : "0" (mask), "1" (val),
-                                    "i" (FPRS_FEF), "r" (&cacheline[0]),
-                                    "i" (ASI_BLK_COMMIT_P));
-       }
-}
-
-static unsigned long schizo_ino_to_iclr(struct pci_pbm_info *pbm,
-                                       unsigned int ino)
-{
-       ino &= PCI_IRQ_INO;
-       return pbm->pbm_regs + schizo_iclr_offset(ino) + 4;
-}
-
-static unsigned long schizo_ino_to_imap(struct pci_pbm_info *pbm,
-                                       unsigned int ino)
-{
-       ino &= PCI_IRQ_INO;
-       return pbm->pbm_regs + schizo_imap_offset(ino) + 4;
-}
-
-static unsigned int schizo_irq_build(struct pci_pbm_info *pbm,
-                                    struct pci_dev *pdev,
-                                    unsigned int ino)
-{
-       unsigned long imap, iclr;
-       int ign_fixup;
-       int virt_irq;
-
-       ino &= PCI_IRQ_INO;
-
-       /* Now build the IRQ bucket. */
-       imap = schizo_ino_to_imap(pbm, ino);
-       iclr = schizo_ino_to_iclr(pbm, ino);
-
-       /* On Schizo, no inofixup occurs.  This is because each
-        * INO has it's own IMAP register.  On Psycho and Sabre
-        * there is only one IMAP register for each PCI slot even
-        * though four different INOs can be generated by each
-        * PCI slot.
-        *
-        * But, for JBUS variants (essentially, Tomatillo), we have
-        * to fixup the lowest bit of the interrupt group number.
-        */
-       ign_fixup = 0;
-       if (pbm->chip_type == PBM_CHIP_TYPE_TOMATILLO) {
-               if (pbm->portid & 1)
-                       ign_fixup = (1 << 6);
-       }
-
-       virt_irq = build_irq(ign_fixup, iclr, imap);
-
-       if (pdev && pbm->chip_type == PBM_CHIP_TYPE_TOMATILLO) {
-               irq_install_pre_handler(virt_irq,
-                                       tomatillo_wsync_handler,
-                                       ((pbm->chip_version <= 4) ?
-                                        (void *) 1 : (void *) 0),
-                                       (void *) pbm->sync_reg);
-       }
-
-       return virt_irq;
-}
-
 /* SCHIZO error handling support. */
 enum schizo_error_type {
        UE_ERR, CE_ERR, PCI_ERR, SAFARI_ERR
@@ -362,34 +252,6 @@ struct pci_pbm_info *pbm_for_ino(struct pci_controller_info *p, u32 ino)
        return &p->pbm_A;
 }
 
-static void schizo_clear_other_err_intr(struct pci_controller_info *p, int irq)
-{
-       struct pci_pbm_info *pbm;
-       unsigned long iclr;
-
-       /* Do not clear the interrupt for the other PCI bus.
-        *
-        * This "ACK both PBM IRQs" only needs to be performed
-        * for chip-wide error interrupts.
-        */
-       if ((irq & IMAP_INO) == SCHIZO_PCIERR_A_INO ||
-           (irq & IMAP_INO) == SCHIZO_PCIERR_B_INO)
-               return;
-
-       pbm = pbm_for_ino(p, irq);
-       if (pbm == &p->pbm_A)
-               pbm = &p->pbm_B;
-       else
-               pbm = &p->pbm_A;
-
-       schizo_irq_build(pbm, NULL,
-                        (pbm->portid << 6) | (irq & IMAP_INO));
-
-       iclr = schizo_ino_to_iclr(pbm,
-                                 (pbm->portid << 6) | (irq & IMAP_INO));
-       upa_writel(ICLR_IDLE, iclr);
-}
-
 #define SCHIZO_STC_ERR 0xb800UL /* --> 0xba00 */
 #define SCHIZO_STC_TAG 0xba00UL /* --> 0xba80 */
 #define SCHIZO_STC_LINE        0xbb00UL /* --> 0xbb80 */
@@ -720,8 +582,6 @@ static irqreturn_t schizo_ue_intr(int irq, void *dev_id, struct pt_regs *regs)
        /* Interrogate IOMMU for error status. */
        schizo_check_iommu_error(p, UE_ERR);
 
-       schizo_clear_other_err_intr(p, irq);
-
        return IRQ_HANDLED;
 }
 
@@ -811,8 +671,6 @@ static irqreturn_t schizo_ce_intr(int irq, void *dev_id, struct pt_regs *regs)
                printk("(none)");
        printk("]\n");
 
-       schizo_clear_other_err_intr(p, irq);
-
        return IRQ_HANDLED;
 }
 
@@ -1033,8 +891,6 @@ static irqreturn_t schizo_pcierr_intr(int irq, void *dev_id, struct pt_regs *reg
        if (error_bits & (SCHIZO_PCIAFSR_PPERR | SCHIZO_PCIAFSR_SPERR))
                pci_scan_for_parity_error(p, pbm, pbm->pci_bus);
 
-       schizo_clear_other_err_intr(p, irq);
-
        return IRQ_HANDLED;
 }
 
@@ -1090,7 +946,6 @@ static irqreturn_t schizo_safarierr_intr(int irq, void *dev_id, struct pt_regs *
                printk("PCI%d: Unexpected Safari/JBUS error interrupt, errlog[%016lx]\n",
                       p->index, errlog);
 
-               schizo_clear_other_err_intr(p, irq);
                return IRQ_HANDLED;
        }
 
@@ -1098,7 +953,6 @@ static irqreturn_t schizo_safarierr_intr(int irq, void *dev_id, struct pt_regs *
               p->index);
        schizo_check_iommu_error(p, SAFARI_ERR);
 
-       schizo_clear_other_err_intr(p, irq);
        return IRQ_HANDLED;
 }
 
@@ -1130,74 +984,47 @@ static irqreturn_t schizo_safarierr_intr(int irq, void *dev_id, struct pt_regs *
 static void tomatillo_register_error_handlers(struct pci_controller_info *p)
 {
        struct pci_pbm_info *pbm;
-       unsigned int irq;
+       struct of_device *op;
        u64 tmp, err_mask, err_no_mask;
 
-       /* Build IRQs and register handlers. */
+       /* Tomatillo IRQ property layout is:
+        * 0: PCIERR
+        * 1: UE ERR
+        * 2: CE ERR
+        * 3: SERR
+        * 4: POWER FAIL?
+        */
+
        pbm = pbm_for_ino(p, SCHIZO_UE_INO);
-       irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_UE_INO);
-       if (request_irq(irq, schizo_ue_intr,
-                       SA_SHIRQ, "TOMATILLO UE", p) < 0) {
-               prom_printf("%s: Cannot register UE interrupt.\n",
-                           pbm->name);
-               prom_halt();
-       }
-       tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_UE_INO));
-       upa_writel(tmp, (pbm->pbm_regs +
-                        schizo_imap_offset(SCHIZO_UE_INO) + 4));
+       op = of_find_device_by_node(pbm->prom_node);
+       if (op)
+               request_irq(op->irqs[1], schizo_ue_intr, SA_SHIRQ,
+                           "TOMATILLO_UE", p);
 
        pbm = pbm_for_ino(p, SCHIZO_CE_INO);
-       irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_CE_INO);
-       if (request_irq(irq, schizo_ce_intr,
-                       SA_SHIRQ, "TOMATILLO CE", p) < 0) {
-               prom_printf("%s: Cannot register CE interrupt.\n",
-                           pbm->name);
-               prom_halt();
-       }
-       tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_CE_INO));
-       upa_writel(tmp, (pbm->pbm_regs +
-                        schizo_imap_offset(SCHIZO_CE_INO) + 4));
+       op = of_find_device_by_node(pbm->prom_node);
+       if (op)
+               request_irq(op->irqs[2], schizo_ce_intr, SA_SHIRQ,
+                           "TOMATILLO CE", p);
 
        pbm = pbm_for_ino(p, SCHIZO_PCIERR_A_INO);
-       irq = schizo_irq_build(pbm, NULL, ((pbm->portid << 6) |
-                                          SCHIZO_PCIERR_A_INO));
-       if (request_irq(irq, schizo_pcierr_intr,
-                       SA_SHIRQ, "TOMATILLO PCIERR", pbm) < 0) {
-               prom_printf("%s: Cannot register PBM A PciERR interrupt.\n",
-                           pbm->name);
-               prom_halt();
-       }
-       tmp = upa_readl(schizo_ino_to_imap(pbm, ((pbm->portid << 6) |
-                                                SCHIZO_PCIERR_A_INO)));
-       upa_writel(tmp, (pbm->pbm_regs +
-                        schizo_imap_offset(SCHIZO_PCIERR_A_INO) + 4));
+       op = of_find_device_by_node(pbm->prom_node);
+       if (op)
+               request_irq(op->irqs[0], schizo_pcierr_intr, SA_SHIRQ,
+                           "TOMATILLO PCIERR-A", pbm);
+
 
        pbm = pbm_for_ino(p, SCHIZO_PCIERR_B_INO);
-       irq = schizo_irq_build(pbm, NULL, ((pbm->portid << 6) |
-                                           SCHIZO_PCIERR_B_INO));
-       if (request_irq(irq, schizo_pcierr_intr,
-                       SA_SHIRQ, "TOMATILLO PCIERR", pbm) < 0) {
-               prom_printf("%s: Cannot register PBM B PciERR interrupt.\n",
-                           pbm->name);
-               prom_halt();
-       }
-       tmp = upa_readl(schizo_ino_to_imap(pbm, ((pbm->portid << 6) |
-                                                SCHIZO_PCIERR_B_INO)));
-       upa_writel(tmp, (pbm->pbm_regs +
-                        schizo_imap_offset(SCHIZO_PCIERR_B_INO) + 4));
+       op = of_find_device_by_node(pbm->prom_node);
+       if (op)
+               request_irq(op->irqs[0], schizo_pcierr_intr, SA_SHIRQ,
+                           "TOMATILLO PCIERR-B", pbm);
 
        pbm = pbm_for_ino(p, SCHIZO_SERR_INO);
-       irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_SERR_INO);
-       if (request_irq(irq, schizo_safarierr_intr,
-                       SA_SHIRQ, "TOMATILLO SERR", p) < 0) {
-               prom_printf("%s: Cannot register SafariERR interrupt.\n",
-                           pbm->name);
-               prom_halt();
-       }
-       tmp = upa_readl(schizo_ino_to_imap(pbm, ((pbm->portid << 6) |
-                                                SCHIZO_SERR_INO)));
-       upa_writel(tmp, (pbm->pbm_regs +
-                        schizo_imap_offset(SCHIZO_SERR_INO) + 4));
+       op = of_find_device_by_node(pbm->prom_node);
+       if (op)
+               request_irq(op->irqs[3], schizo_safarierr_intr, SA_SHIRQ,
+                           "TOMATILLO SERR", p);
 
        /* Enable UE and CE interrupts for controller. */
        schizo_write(p->pbm_A.controller_regs + SCHIZO_ECC_CTRL,
@@ -1265,64 +1092,47 @@ static void tomatillo_register_error_handlers(struct pci_controller_info *p)
 static void schizo_register_error_handlers(struct pci_controller_info *p)
 {
        struct pci_pbm_info *pbm;
-       unsigned int irq;
+       struct of_device *op;
        u64 tmp, err_mask, err_no_mask;
 
-       /* Build IRQs and register handlers. */
+       /* Schizo IRQ property layout is:
+        * 0: PCIERR
+        * 1: UE ERR
+        * 2: CE ERR
+        * 3: SERR
+        * 4: POWER FAIL?
+        */
+
        pbm = pbm_for_ino(p, SCHIZO_UE_INO);
-       irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_UE_INO);
-       if (request_irq(irq, schizo_ue_intr,
-                       SA_SHIRQ, "SCHIZO UE", p) < 0) {
-               prom_printf("%s: Cannot register UE interrupt.\n",
-                           pbm->name);
-               prom_halt();
-       }
-       tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_UE_INO));
-       upa_writel(tmp, (pbm->pbm_regs + schizo_imap_offset(SCHIZO_UE_INO) + 4));
+       op = of_find_device_by_node(pbm->prom_node);
+       if (op)
+               request_irq(op->irqs[1], schizo_ue_intr, SA_SHIRQ,
+                           "SCHIZO_UE", p);
 
        pbm = pbm_for_ino(p, SCHIZO_CE_INO);
-       irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_CE_INO);
-       if (request_irq(irq, schizo_ce_intr,
-                       SA_SHIRQ, "SCHIZO CE", p) < 0) {
-               prom_printf("%s: Cannot register CE interrupt.\n",
-                           pbm->name);
-               prom_halt();
-       }
-       tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_CE_INO));
-       upa_writel(tmp, (pbm->pbm_regs + schizo_imap_offset(SCHIZO_CE_INO) + 4));
+       op = of_find_device_by_node(pbm->prom_node);
+       if (op)
+               request_irq(op->irqs[2], schizo_ce_intr, SA_SHIRQ,
+                           "SCHIZO CE", p);
 
        pbm = pbm_for_ino(p, SCHIZO_PCIERR_A_INO);
-       irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_PCIERR_A_INO);
-       if (request_irq(irq, schizo_pcierr_intr,
-                       SA_SHIRQ, "SCHIZO PCIERR", pbm) < 0) {
-               prom_printf("%s: Cannot register PBM A PciERR interrupt.\n",
-                           pbm->name);
-               prom_halt();
-       }
-       tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_PCIERR_A_INO));
-       upa_writel(tmp, (pbm->pbm_regs + schizo_imap_offset(SCHIZO_PCIERR_A_INO) + 4));
+       op = of_find_device_by_node(pbm->prom_node);
+       if (op)
+               request_irq(op->irqs[0], schizo_pcierr_intr, SA_SHIRQ,
+                           "SCHIZO PCIERR-A", pbm);
+
 
        pbm = pbm_for_ino(p, SCHIZO_PCIERR_B_INO);
-       irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_PCIERR_B_INO);
-       if (request_irq(irq, schizo_pcierr_intr,
-                       SA_SHIRQ, "SCHIZO PCIERR", &p->pbm_B) < 0) {
-               prom_printf("%s: Cannot register PBM B PciERR interrupt.\n",
-                           pbm->name);
-               prom_halt();
-       }
-       tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_PCIERR_B_INO));
-       upa_writel(tmp, (pbm->pbm_regs + schizo_imap_offset(SCHIZO_PCIERR_B_INO) + 4));
+       op = of_find_device_by_node(pbm->prom_node);
+       if (op)
+               request_irq(op->irqs[0], schizo_pcierr_intr, SA_SHIRQ,
+                           "SCHIZO PCIERR-B", pbm);
 
        pbm = pbm_for_ino(p, SCHIZO_SERR_INO);
-       irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_SERR_INO);
-       if (request_irq(irq, schizo_safarierr_intr,
-                       SA_SHIRQ, "SCHIZO SERR", p) < 0) {
-               prom_printf("%s: Cannot register SafariERR interrupt.\n",
-                           pbm->name);
-               prom_halt();
-       }
-       tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_SERR_INO));
-       upa_writel(tmp, (pbm->pbm_regs + schizo_imap_offset(SCHIZO_SERR_INO) + 4));
+       op = of_find_device_by_node(pbm->prom_node);
+       if (op)
+               request_irq(op->irqs[3], schizo_safarierr_intr, SA_SHIRQ,
+                           "SCHIZO SERR", p);
 
        /* Enable UE and CE interrupts for controller. */
        schizo_write(p->pbm_A.controller_regs + SCHIZO_ECC_CTRL,
@@ -2022,7 +1832,6 @@ static void __schizo_init(struct device_node *dp, char *model_name, int chip_typ
        p->scan_bus = (chip_type == PBM_CHIP_TYPE_TOMATILLO ?
                       tomatillo_scan_bus :
                       schizo_scan_bus);
-       p->irq_build = schizo_irq_build;
        p->base_address_update = schizo_base_address_update;
        p->resource_adjust = schizo_resource_adjust;
        p->pci_ops = &schizo_ops;
index b69e2270a721103099184cbe3b456a48702b99c2..03ad4c06758ed95fd59d996a11fcc7784bc2c54b 100644 (file)
@@ -843,15 +843,6 @@ static void pci_sun4v_scan_bus(struct pci_controller_info *p)
        /* XXX register error interrupt handlers XXX */
 }
 
-static unsigned int pci_sun4v_irq_build(struct pci_pbm_info *pbm,
-                                       struct pci_dev *pdev,
-                                       unsigned int devino)
-{
-       u32 devhandle = pbm->devhandle;
-
-       return sun4v_build_irq(devhandle, devino);
-}
-
 static void pci_sun4v_base_address_update(struct pci_dev *pdev, int resource)
 {
        struct pcidev_cookie *pcp = pdev->sysdata;
@@ -1200,7 +1191,6 @@ void sun4v_pci_init(struct device_node *dp, char *model_name)
        p->pbms_same_domain = 0;
 
        p->scan_bus = pci_sun4v_scan_bus;
-       p->irq_build = pci_sun4v_irq_build;
        p->base_address_update = pci_sun4v_base_address_update;
        p->resource_adjust = pci_sun4v_resource_adjust;
        p->pci_ops = &pci_sun4v_ops;
index 9496c77340143e3f1e650990607b684ea5b85023..e55466c77b61efaf0a8c13172e0dc100bcf3a2a1 100644 (file)
@@ -6,7 +6,6 @@
 
 #define __KERNEL_SYSCALLS__
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/pm.h>
 
 #include <asm/system.h>
-#include <asm/ebus.h>
-#include <asm/isa.h>
 #include <asm/auxio.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
+#include <asm/io.h>
 
 #include <linux/unistd.h>
 
@@ -30,6 +30,7 @@
 int scons_pwroff = 1; 
 
 #ifdef CONFIG_PCI
+#include <linux/pci.h>
 static void __iomem *power_reg;
 
 static DECLARE_WAIT_QUEUE_HEAD(powerd_wait);
@@ -115,27 +116,33 @@ static int __init has_button_interrupt(unsigned int irq, struct device_node *dp)
        return 1;
 }
 
-static void __devinit power_probe_common(struct of_device *dev, struct resource *res, unsigned int irq)
+static int __devinit power_probe(struct of_device *op, const struct of_device_id *match)
 {
-       power_reg = ioremap(res->start, 0x4);
+       struct resource *res = &op->resource[0];
+       unsigned int irq= op->irqs[0];
 
-       printk("power: Control reg at %p ... ", power_reg);
+       power_reg = of_ioremap(res, 0, 0x4, "power");
+
+       printk("%s: Control reg at %lx ... ",
+              op->node->name, res->start);
 
        poweroff_method = machine_halt;  /* able to use the standard halt */
 
-       if (has_button_interrupt(irq, dev->node)) {
+       if (has_button_interrupt(irq, op->node)) {
                if (kernel_thread(powerd, NULL, CLONE_FS) < 0) {
                        printk("Failed to start power daemon.\n");
-                       return;
+                       return 0;
                }
                printk("powerd running.\n");
 
                if (request_irq(irq,
-                               power_handler, SA_SHIRQ, "power", NULL) < 0)
+                               power_handler, 0, "power", NULL) < 0)
                        printk("power: Error, cannot register IRQ handler.\n");
        } else {
                printk("not using powerd.\n");
        }
+
+       return 0;
 }
 
 static struct of_device_id power_match[] = {
@@ -145,44 +152,15 @@ static struct of_device_id power_match[] = {
        {},
 };
 
-static int __devinit ebus_power_probe(struct of_device *dev, const struct of_device_id *match)
-{
-       struct linux_ebus_device *edev = to_ebus_device(&dev->dev);
-       struct resource *res = &edev->resource[0];
-       unsigned int irq = edev->irqs[0];
-
-       power_probe_common(dev, res,irq);
-
-       return 0;
-}
-
-static struct of_platform_driver ebus_power_driver = {
-       .name           = "power",
-       .match_table    = power_match,
-       .probe          = ebus_power_probe,
-};
-
-static int __devinit isa_power_probe(struct of_device *dev, const struct of_device_id *match)
-{
-       struct sparc_isa_device *idev = to_isa_device(&dev->dev);
-       struct resource *res = &idev->resource;
-       unsigned int irq = idev->irq;
-
-       power_probe_common(dev, res,irq);
-
-       return 0;
-}
-
-static struct of_platform_driver isa_power_driver = {
+static struct of_platform_driver power_driver = {
        .name           = "power",
        .match_table    = power_match,
-       .probe          = isa_power_probe,
+       .probe          = power_probe,
 };
 
 void __init power_init(void)
 {
-       of_register_driver(&ebus_power_driver, &ebus_bus_type);
-       of_register_driver(&isa_power_driver, &isa_bus_type);
+       of_register_driver(&power_driver, &of_bus_type);
        return;
 }
 #endif /* CONFIG_PCI */
index 1c7ca2f712d99004106ba087aa021cd202cae2f7..7d75cd4eb297bb08e016455fdfae71c89385e81e 100644 (file)
@@ -12,7 +12,6 @@
 
 #include <stdarg.h>
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/sched.h>
@@ -26,7 +25,6 @@
 #include <linux/slab.h>
 #include <linux/user.h>
 #include <linux/a.out.h>
-#include <linux/config.h>
 #include <linux/reboot.h>
 #include <linux/delay.h>
 #include <linux/compat.h>
index 8e87e7ea0325bb5861ddbf3f16c523416c70ac9c..fa484d4f241e57d6eed4fa8407327efad4ca2b99 100644 (file)
@@ -15,6 +15,7 @@
  *      2 of the License, or (at your option) any later version.
  */
 
+#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/string.h>
 #include <linux/module.h>
 
 #include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/oplib.h>
+#include <asm/irq.h>
+#include <asm/asi.h>
+#include <asm/upa.h>
 
 static struct device_node *allnodes;
 
@@ -190,6 +195,36 @@ int of_getintprop_default(struct device_node *np, const char *name, int def)
 }
 EXPORT_SYMBOL(of_getintprop_default);
 
+int of_n_addr_cells(struct device_node *np)
+{
+       int* ip;
+       do {
+               if (np->parent)
+                       np = np->parent;
+               ip = of_get_property(np, "#address-cells", NULL);
+               if (ip != NULL)
+                       return *ip;
+       } while (np->parent);
+       /* No #address-cells property for the root node, default to 2 */
+       return 2;
+}
+EXPORT_SYMBOL(of_n_addr_cells);
+
+int of_n_size_cells(struct device_node *np)
+{
+       int* ip;
+       do {
+               if (np->parent)
+                       np = np->parent;
+               ip = of_get_property(np, "#size-cells", NULL);
+               if (ip != NULL)
+                       return *ip;
+       } while (np->parent);
+       /* No #size-cells property for the root node, default to 1 */
+       return 1;
+}
+EXPORT_SYMBOL(of_n_size_cells);
+
 int of_set_property(struct device_node *dp, const char *name, void *val, int len)
 {
        struct property **prevp;
@@ -253,6 +288,777 @@ static void * __init prom_early_alloc(unsigned long size)
        return ret;
 }
 
+#ifdef CONFIG_PCI
+/* PSYCHO interrupt mapping support. */
+#define PSYCHO_IMAP_A_SLOT0    0x0c00UL
+#define PSYCHO_IMAP_B_SLOT0    0x0c20UL
+static unsigned long psycho_pcislot_imap_offset(unsigned long ino)
+{
+       unsigned int bus =  (ino & 0x10) >> 4;
+       unsigned int slot = (ino & 0x0c) >> 2;
+
+       if (bus == 0)
+               return PSYCHO_IMAP_A_SLOT0 + (slot * 8);
+       else
+               return PSYCHO_IMAP_B_SLOT0 + (slot * 8);
+}
+
+#define PSYCHO_IMAP_SCSI       0x1000UL
+#define PSYCHO_IMAP_ETH                0x1008UL
+#define PSYCHO_IMAP_BPP                0x1010UL
+#define PSYCHO_IMAP_AU_REC     0x1018UL
+#define PSYCHO_IMAP_AU_PLAY    0x1020UL
+#define PSYCHO_IMAP_PFAIL      0x1028UL
+#define PSYCHO_IMAP_KMS                0x1030UL
+#define PSYCHO_IMAP_FLPY       0x1038UL
+#define PSYCHO_IMAP_SHW                0x1040UL
+#define PSYCHO_IMAP_KBD                0x1048UL
+#define PSYCHO_IMAP_MS         0x1050UL
+#define PSYCHO_IMAP_SER                0x1058UL
+#define PSYCHO_IMAP_TIM0       0x1060UL
+#define PSYCHO_IMAP_TIM1       0x1068UL
+#define PSYCHO_IMAP_UE         0x1070UL
+#define PSYCHO_IMAP_CE         0x1078UL
+#define PSYCHO_IMAP_A_ERR      0x1080UL
+#define PSYCHO_IMAP_B_ERR      0x1088UL
+#define PSYCHO_IMAP_PMGMT      0x1090UL
+#define PSYCHO_IMAP_GFX                0x1098UL
+#define PSYCHO_IMAP_EUPA       0x10a0UL
+
+static unsigned long __psycho_onboard_imap_off[] = {
+/*0x20*/       PSYCHO_IMAP_SCSI,
+/*0x21*/       PSYCHO_IMAP_ETH,
+/*0x22*/       PSYCHO_IMAP_BPP,
+/*0x23*/       PSYCHO_IMAP_AU_REC,
+/*0x24*/       PSYCHO_IMAP_AU_PLAY,
+/*0x25*/       PSYCHO_IMAP_PFAIL,
+/*0x26*/       PSYCHO_IMAP_KMS,
+/*0x27*/       PSYCHO_IMAP_FLPY,
+/*0x28*/       PSYCHO_IMAP_SHW,
+/*0x29*/       PSYCHO_IMAP_KBD,
+/*0x2a*/       PSYCHO_IMAP_MS,
+/*0x2b*/       PSYCHO_IMAP_SER,
+/*0x2c*/       PSYCHO_IMAP_TIM0,
+/*0x2d*/       PSYCHO_IMAP_TIM1,
+/*0x2e*/       PSYCHO_IMAP_UE,
+/*0x2f*/       PSYCHO_IMAP_CE,
+/*0x30*/       PSYCHO_IMAP_A_ERR,
+/*0x31*/       PSYCHO_IMAP_B_ERR,
+/*0x32*/       PSYCHO_IMAP_PMGMT
+};
+#define PSYCHO_ONBOARD_IRQ_BASE                0x20
+#define PSYCHO_ONBOARD_IRQ_LAST                0x32
+#define psycho_onboard_imap_offset(__ino) \
+       __psycho_onboard_imap_off[(__ino) - PSYCHO_ONBOARD_IRQ_BASE]
+
+#define PSYCHO_ICLR_A_SLOT0    0x1400UL
+#define PSYCHO_ICLR_SCSI       0x1800UL
+
+#define psycho_iclr_offset(ino)                                              \
+       ((ino & 0x20) ? (PSYCHO_ICLR_SCSI + (((ino) & 0x1f) << 3)) :  \
+                       (PSYCHO_ICLR_A_SLOT0 + (((ino) & 0x1f)<<3)))
+
+static unsigned int psycho_irq_build(struct device_node *dp,
+                                    unsigned int ino,
+                                    void *_data)
+{
+       unsigned long controller_regs = (unsigned long) _data;
+       unsigned long imap, iclr;
+       unsigned long imap_off, iclr_off;
+       int inofixup = 0;
+
+       ino &= 0x3f;
+       if (ino < PSYCHO_ONBOARD_IRQ_BASE) {
+               /* PCI slot */
+               imap_off = psycho_pcislot_imap_offset(ino);
+       } else {
+               /* Onboard device */
+               if (ino > PSYCHO_ONBOARD_IRQ_LAST) {
+                       prom_printf("psycho_irq_build: Wacky INO [%x]\n", ino);
+                       prom_halt();
+               }
+               imap_off = psycho_onboard_imap_offset(ino);
+       }
+
+       /* Now build the IRQ bucket. */
+       imap = controller_regs + imap_off;
+       imap += 4;
+
+       iclr_off = psycho_iclr_offset(ino);
+       iclr = controller_regs + iclr_off;
+       iclr += 4;
+
+       if ((ino & 0x20) == 0)
+               inofixup = ino & 0x03;
+
+       return build_irq(inofixup, iclr, imap);
+}
+
+static void psycho_irq_trans_init(struct device_node *dp)
+{
+       struct linux_prom64_registers *regs;
+
+       dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller));
+       dp->irq_trans->irq_build = psycho_irq_build;
+
+       regs = of_get_property(dp, "reg", NULL);
+       dp->irq_trans->data = (void *) regs[2].phys_addr;
+}
+
+#define sabre_read(__reg) \
+({     u64 __ret; \
+       __asm__ __volatile__("ldxa [%1] %2, %0" \
+                            : "=r" (__ret) \
+                            : "r" (__reg), "i" (ASI_PHYS_BYPASS_EC_E) \
+                            : "memory"); \
+       __ret; \
+})
+
+struct sabre_irq_data {
+       unsigned long controller_regs;
+       unsigned int pci_first_busno;
+};
+#define SABRE_CONFIGSPACE      0x001000000UL
+#define SABRE_WRSYNC           0x1c20UL
+
+#define SABRE_CONFIG_BASE(CONFIG_SPACE)        \
+       (CONFIG_SPACE | (1UL << 24))
+#define SABRE_CONFIG_ENCODE(BUS, DEVFN, REG)   \
+       (((unsigned long)(BUS)   << 16) |       \
+        ((unsigned long)(DEVFN) << 8)  |       \
+        ((unsigned long)(REG)))
+
+/* When a device lives behind a bridge deeper in the PCI bus topology
+ * than APB, a special sequence must run to make sure all pending DMA
+ * transfers at the time of IRQ delivery are visible in the coherency
+ * domain by the cpu.  This sequence is to perform a read on the far
+ * side of the non-APB bridge, then perform a read of Sabre's DMA
+ * write-sync register.
+ */
+static void sabre_wsync_handler(unsigned int ino, void *_arg1, void *_arg2)
+{
+       unsigned int phys_hi = (unsigned int) (unsigned long) _arg1;
+       struct sabre_irq_data *irq_data = _arg2;
+       unsigned long controller_regs = irq_data->controller_regs;
+       unsigned long sync_reg = controller_regs + SABRE_WRSYNC;
+       unsigned long config_space = controller_regs + SABRE_CONFIGSPACE;
+       unsigned int bus, devfn;
+       u16 _unused;
+
+       config_space = SABRE_CONFIG_BASE(config_space);
+
+       bus = (phys_hi >> 16) & 0xff;
+       devfn = (phys_hi >> 8) & 0xff;
+
+       config_space |= SABRE_CONFIG_ENCODE(bus, devfn, 0x00);
+
+       __asm__ __volatile__("membar #Sync\n\t"
+                            "lduha [%1] %2, %0\n\t"
+                            "membar #Sync"
+                            : "=r" (_unused)
+                            : "r" ((u16 *) config_space),
+                              "i" (ASI_PHYS_BYPASS_EC_E_L)
+                            : "memory");
+
+       sabre_read(sync_reg);
+}
+
+#define SABRE_IMAP_A_SLOT0     0x0c00UL
+#define SABRE_IMAP_B_SLOT0     0x0c20UL
+#define SABRE_IMAP_SCSI                0x1000UL
+#define SABRE_IMAP_ETH         0x1008UL
+#define SABRE_IMAP_BPP         0x1010UL
+#define SABRE_IMAP_AU_REC      0x1018UL
+#define SABRE_IMAP_AU_PLAY     0x1020UL
+#define SABRE_IMAP_PFAIL       0x1028UL
+#define SABRE_IMAP_KMS         0x1030UL
+#define SABRE_IMAP_FLPY                0x1038UL
+#define SABRE_IMAP_SHW         0x1040UL
+#define SABRE_IMAP_KBD         0x1048UL
+#define SABRE_IMAP_MS          0x1050UL
+#define SABRE_IMAP_SER         0x1058UL
+#define SABRE_IMAP_UE          0x1070UL
+#define SABRE_IMAP_CE          0x1078UL
+#define SABRE_IMAP_PCIERR      0x1080UL
+#define SABRE_IMAP_GFX         0x1098UL
+#define SABRE_IMAP_EUPA                0x10a0UL
+#define SABRE_ICLR_A_SLOT0     0x1400UL
+#define SABRE_ICLR_B_SLOT0     0x1480UL
+#define SABRE_ICLR_SCSI                0x1800UL
+#define SABRE_ICLR_ETH         0x1808UL
+#define SABRE_ICLR_BPP         0x1810UL
+#define SABRE_ICLR_AU_REC      0x1818UL
+#define SABRE_ICLR_AU_PLAY     0x1820UL
+#define SABRE_ICLR_PFAIL       0x1828UL
+#define SABRE_ICLR_KMS         0x1830UL
+#define SABRE_ICLR_FLPY                0x1838UL
+#define SABRE_ICLR_SHW         0x1840UL
+#define SABRE_ICLR_KBD         0x1848UL
+#define SABRE_ICLR_MS          0x1850UL
+#define SABRE_ICLR_SER         0x1858UL
+#define SABRE_ICLR_UE          0x1870UL
+#define SABRE_ICLR_CE          0x1878UL
+#define SABRE_ICLR_PCIERR      0x1880UL
+
+static unsigned long sabre_pcislot_imap_offset(unsigned long ino)
+{
+       unsigned int bus =  (ino & 0x10) >> 4;
+       unsigned int slot = (ino & 0x0c) >> 2;
+
+       if (bus == 0)
+               return SABRE_IMAP_A_SLOT0 + (slot * 8);
+       else
+               return SABRE_IMAP_B_SLOT0 + (slot * 8);
+}
+
+static unsigned long __sabre_onboard_imap_off[] = {
+/*0x20*/       SABRE_IMAP_SCSI,
+/*0x21*/       SABRE_IMAP_ETH,
+/*0x22*/       SABRE_IMAP_BPP,
+/*0x23*/       SABRE_IMAP_AU_REC,
+/*0x24*/       SABRE_IMAP_AU_PLAY,
+/*0x25*/       SABRE_IMAP_PFAIL,
+/*0x26*/       SABRE_IMAP_KMS,
+/*0x27*/       SABRE_IMAP_FLPY,
+/*0x28*/       SABRE_IMAP_SHW,
+/*0x29*/       SABRE_IMAP_KBD,
+/*0x2a*/       SABRE_IMAP_MS,
+/*0x2b*/       SABRE_IMAP_SER,
+/*0x2c*/       0 /* reserved */,
+/*0x2d*/       0 /* reserved */,
+/*0x2e*/       SABRE_IMAP_UE,
+/*0x2f*/       SABRE_IMAP_CE,
+/*0x30*/       SABRE_IMAP_PCIERR,
+};
+#define SABRE_ONBOARD_IRQ_BASE         0x20
+#define SABRE_ONBOARD_IRQ_LAST         0x30
+#define sabre_onboard_imap_offset(__ino) \
+       __sabre_onboard_imap_off[(__ino) - SABRE_ONBOARD_IRQ_BASE]
+
+#define sabre_iclr_offset(ino)                                       \
+       ((ino & 0x20) ? (SABRE_ICLR_SCSI + (((ino) & 0x1f) << 3)) :  \
+                       (SABRE_ICLR_A_SLOT0 + (((ino) & 0x1f)<<3)))
+
+static unsigned int sabre_irq_build(struct device_node *dp,
+                                   unsigned int ino,
+                                   void *_data)
+{
+       struct sabre_irq_data *irq_data = _data;
+       unsigned long controller_regs = irq_data->controller_regs;
+       struct linux_prom_pci_registers *regs;
+       unsigned long imap, iclr;
+       unsigned long imap_off, iclr_off;
+       int inofixup = 0;
+       int virt_irq;
+
+       ino &= 0x3f;
+       if (ino < SABRE_ONBOARD_IRQ_BASE) {
+               /* PCI slot */
+               imap_off = sabre_pcislot_imap_offset(ino);
+       } else {
+               /* onboard device */
+               if (ino > SABRE_ONBOARD_IRQ_LAST) {
+                       prom_printf("sabre_irq_build: Wacky INO [%x]\n", ino);
+                       prom_halt();
+               }
+               imap_off = sabre_onboard_imap_offset(ino);
+       }
+
+       /* Now build the IRQ bucket. */
+       imap = controller_regs + imap_off;
+       imap += 4;
+
+       iclr_off = sabre_iclr_offset(ino);
+       iclr = controller_regs + iclr_off;
+       iclr += 4;
+
+       if ((ino & 0x20) == 0)
+               inofixup = ino & 0x03;
+
+       virt_irq = build_irq(inofixup, iclr, imap);
+
+       regs = of_get_property(dp, "reg", NULL);
+       if (regs &&
+           ((regs->phys_hi >> 16) & 0xff) != irq_data->pci_first_busno) {
+               irq_install_pre_handler(virt_irq,
+                                       sabre_wsync_handler,
+                                       (void *) (long) regs->phys_hi,
+                                       (void *)
+                                       controller_regs +
+                                       SABRE_WRSYNC);
+       }
+
+       return virt_irq;
+}
+
+static void sabre_irq_trans_init(struct device_node *dp)
+{
+       struct linux_prom64_registers *regs;
+       struct sabre_irq_data *irq_data;
+       u32 *busrange;
+
+       dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller));
+       dp->irq_trans->irq_build = sabre_irq_build;
+
+       irq_data = prom_early_alloc(sizeof(struct sabre_irq_data));
+
+       regs = of_get_property(dp, "reg", NULL);
+       irq_data->controller_regs = regs[0].phys_addr;
+
+       busrange = of_get_property(dp, "bus-range", NULL);
+       irq_data->pci_first_busno = busrange[0];
+
+       dp->irq_trans->data = irq_data;
+}
+
+/* SCHIZO interrupt mapping support.  Unlike Psycho, for this controller the
+ * imap/iclr registers are per-PBM.
+ */
+#define SCHIZO_IMAP_BASE       0x1000UL
+#define SCHIZO_ICLR_BASE       0x1400UL
+
+static unsigned long schizo_imap_offset(unsigned long ino)
+{
+       return SCHIZO_IMAP_BASE + (ino * 8UL);
+}
+
+static unsigned long schizo_iclr_offset(unsigned long ino)
+{
+       return SCHIZO_ICLR_BASE + (ino * 8UL);
+}
+
+static unsigned long schizo_ino_to_iclr(unsigned long pbm_regs,
+                                       unsigned int ino)
+{
+       return pbm_regs + schizo_iclr_offset(ino) + 4;
+}
+
+static unsigned long schizo_ino_to_imap(unsigned long pbm_regs,
+                                       unsigned int ino)
+{
+       return pbm_regs + schizo_imap_offset(ino) + 4;
+}
+
+#define schizo_read(__reg) \
+({     u64 __ret; \
+       __asm__ __volatile__("ldxa [%1] %2, %0" \
+                            : "=r" (__ret) \
+                            : "r" (__reg), "i" (ASI_PHYS_BYPASS_EC_E) \
+                            : "memory"); \
+       __ret; \
+})
+#define schizo_write(__reg, __val) \
+       __asm__ __volatile__("stxa %0, [%1] %2" \
+                            : /* no outputs */ \
+                            : "r" (__val), "r" (__reg), \
+                              "i" (ASI_PHYS_BYPASS_EC_E) \
+                            : "memory")
+
+static void tomatillo_wsync_handler(unsigned int ino, void *_arg1, void *_arg2)
+{
+       unsigned long sync_reg = (unsigned long) _arg2;
+       u64 mask = 1UL << (ino & IMAP_INO);
+       u64 val;
+       int limit;
+
+       schizo_write(sync_reg, mask);
+
+       limit = 100000;
+       val = 0;
+       while (--limit) {
+               val = schizo_read(sync_reg);
+               if (!(val & mask))
+                       break;
+       }
+       if (limit <= 0) {
+               printk("tomatillo_wsync_handler: DMA won't sync [%lx:%lx]\n",
+                      val, mask);
+       }
+
+       if (_arg1) {
+               static unsigned char cacheline[64]
+                       __attribute__ ((aligned (64)));
+
+               __asm__ __volatile__("rd %%fprs, %0\n\t"
+                                    "or %0, %4, %1\n\t"
+                                    "wr %1, 0x0, %%fprs\n\t"
+                                    "stda %%f0, [%5] %6\n\t"
+                                    "wr %0, 0x0, %%fprs\n\t"
+                                    "membar #Sync"
+                                    : "=&r" (mask), "=&r" (val)
+                                    : "0" (mask), "1" (val),
+                                    "i" (FPRS_FEF), "r" (&cacheline[0]),
+                                    "i" (ASI_BLK_COMMIT_P));
+       }
+}
+
+struct schizo_irq_data {
+       unsigned long pbm_regs;
+       unsigned long sync_reg;
+       u32 portid;
+       int chip_version;
+};
+
+static unsigned int schizo_irq_build(struct device_node *dp,
+                                    unsigned int ino,
+                                    void *_data)
+{
+       struct schizo_irq_data *irq_data = _data;
+       unsigned long pbm_regs = irq_data->pbm_regs;
+       unsigned long imap, iclr;
+       int ign_fixup;
+       int virt_irq;
+       int is_tomatillo;
+
+       ino &= 0x3f;
+
+       /* Now build the IRQ bucket. */
+       imap = schizo_ino_to_imap(pbm_regs, ino);
+       iclr = schizo_ino_to_iclr(pbm_regs, ino);
+
+       /* On Schizo, no inofixup occurs.  This is because each
+        * INO has it's own IMAP register.  On Psycho and Sabre
+        * there is only one IMAP register for each PCI slot even
+        * though four different INOs can be generated by each
+        * PCI slot.
+        *
+        * But, for JBUS variants (essentially, Tomatillo), we have
+        * to fixup the lowest bit of the interrupt group number.
+        */
+       ign_fixup = 0;
+
+       is_tomatillo = (irq_data->sync_reg != 0UL);
+
+       if (is_tomatillo) {
+               if (irq_data->portid & 1)
+                       ign_fixup = (1 << 6);
+       }
+
+       virt_irq = build_irq(ign_fixup, iclr, imap);
+
+       if (is_tomatillo) {
+               irq_install_pre_handler(virt_irq,
+                                       tomatillo_wsync_handler,
+                                       ((irq_data->chip_version <= 4) ?
+                                        (void *) 1 : (void *) 0),
+                                       (void *) irq_data->sync_reg);
+       }
+
+       return virt_irq;
+}
+
+static void schizo_irq_trans_init(struct device_node *dp)
+{
+       struct linux_prom64_registers *regs;
+       struct schizo_irq_data *irq_data;
+
+       dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller));
+       dp->irq_trans->irq_build = schizo_irq_build;
+
+       irq_data = prom_early_alloc(sizeof(struct schizo_irq_data));
+
+       regs = of_get_property(dp, "reg", NULL);
+       dp->irq_trans->data = irq_data;
+
+       irq_data->pbm_regs = regs[0].phys_addr;
+       irq_data->sync_reg = regs[3].phys_addr + 0x1a18UL;
+       irq_data->portid = of_getintprop_default(dp, "portid", 0);
+       irq_data->chip_version = of_getintprop_default(dp, "version#", 0);
+}
+
+static unsigned int pci_sun4v_irq_build(struct device_node *dp,
+                                       unsigned int devino,
+                                       void *_data)
+{
+       u32 devhandle = (u32) (unsigned long) _data;
+
+       return sun4v_build_irq(devhandle, devino);
+}
+
+static void pci_sun4v_irq_trans_init(struct device_node *dp)
+{
+       struct linux_prom64_registers *regs;
+
+       dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller));
+       dp->irq_trans->irq_build = pci_sun4v_irq_build;
+
+       regs = of_get_property(dp, "reg", NULL);
+       dp->irq_trans->data = (void *) (unsigned long)
+               ((regs->phys_addr >> 32UL) & 0x0fffffff);
+}
+#endif /* CONFIG_PCI */
+
+#ifdef CONFIG_SBUS
+/* INO number to IMAP register offset for SYSIO external IRQ's.
+ * This should conform to both Sunfire/Wildfire server and Fusion
+ * desktop designs.
+ */
+#define SYSIO_IMAP_SLOT0       0x2c04UL
+#define SYSIO_IMAP_SLOT1       0x2c0cUL
+#define SYSIO_IMAP_SLOT2       0x2c14UL
+#define SYSIO_IMAP_SLOT3       0x2c1cUL
+#define SYSIO_IMAP_SCSI                0x3004UL
+#define SYSIO_IMAP_ETH         0x300cUL
+#define SYSIO_IMAP_BPP         0x3014UL
+#define SYSIO_IMAP_AUDIO       0x301cUL
+#define SYSIO_IMAP_PFAIL       0x3024UL
+#define SYSIO_IMAP_KMS         0x302cUL
+#define SYSIO_IMAP_FLPY                0x3034UL
+#define SYSIO_IMAP_SHW         0x303cUL
+#define SYSIO_IMAP_KBD         0x3044UL
+#define SYSIO_IMAP_MS          0x304cUL
+#define SYSIO_IMAP_SER         0x3054UL
+#define SYSIO_IMAP_TIM0                0x3064UL
+#define SYSIO_IMAP_TIM1                0x306cUL
+#define SYSIO_IMAP_UE          0x3074UL
+#define SYSIO_IMAP_CE          0x307cUL
+#define SYSIO_IMAP_SBERR       0x3084UL
+#define SYSIO_IMAP_PMGMT       0x308cUL
+#define SYSIO_IMAP_GFX         0x3094UL
+#define SYSIO_IMAP_EUPA                0x309cUL
+
+#define bogon     ((unsigned long) -1)
+static unsigned long sysio_irq_offsets[] = {
+       /* SBUS Slot 0 --> 3, level 1 --> 7 */
+       SYSIO_IMAP_SLOT0, SYSIO_IMAP_SLOT0, SYSIO_IMAP_SLOT0, SYSIO_IMAP_SLOT0,
+       SYSIO_IMAP_SLOT0, SYSIO_IMAP_SLOT0, SYSIO_IMAP_SLOT0, SYSIO_IMAP_SLOT0,
+       SYSIO_IMAP_SLOT1, SYSIO_IMAP_SLOT1, SYSIO_IMAP_SLOT1, SYSIO_IMAP_SLOT1,
+       SYSIO_IMAP_SLOT1, SYSIO_IMAP_SLOT1, SYSIO_IMAP_SLOT1, SYSIO_IMAP_SLOT1,
+       SYSIO_IMAP_SLOT2, SYSIO_IMAP_SLOT2, SYSIO_IMAP_SLOT2, SYSIO_IMAP_SLOT2,
+       SYSIO_IMAP_SLOT2, SYSIO_IMAP_SLOT2, SYSIO_IMAP_SLOT2, SYSIO_IMAP_SLOT2,
+       SYSIO_IMAP_SLOT3, SYSIO_IMAP_SLOT3, SYSIO_IMAP_SLOT3, SYSIO_IMAP_SLOT3,
+       SYSIO_IMAP_SLOT3, SYSIO_IMAP_SLOT3, SYSIO_IMAP_SLOT3, SYSIO_IMAP_SLOT3,
+
+       /* Onboard devices (not relevant/used on SunFire). */
+       SYSIO_IMAP_SCSI,
+       SYSIO_IMAP_ETH,
+       SYSIO_IMAP_BPP,
+       bogon,
+       SYSIO_IMAP_AUDIO,
+       SYSIO_IMAP_PFAIL,
+       bogon,
+       bogon,
+       SYSIO_IMAP_KMS,
+       SYSIO_IMAP_FLPY,
+       SYSIO_IMAP_SHW,
+       SYSIO_IMAP_KBD,
+       SYSIO_IMAP_MS,
+       SYSIO_IMAP_SER,
+       bogon,
+       bogon,
+       SYSIO_IMAP_TIM0,
+       SYSIO_IMAP_TIM1,
+       bogon,
+       bogon,
+       SYSIO_IMAP_UE,
+       SYSIO_IMAP_CE,
+       SYSIO_IMAP_SBERR,
+       SYSIO_IMAP_PMGMT,
+};
+
+#undef bogon
+
+#define NUM_SYSIO_OFFSETS ARRAY_SIZE(sysio_irq_offsets)
+
+/* Convert Interrupt Mapping register pointer to associated
+ * Interrupt Clear register pointer, SYSIO specific version.
+ */
+#define SYSIO_ICLR_UNUSED0     0x3400UL
+#define SYSIO_ICLR_SLOT0       0x340cUL
+#define SYSIO_ICLR_SLOT1       0x344cUL
+#define SYSIO_ICLR_SLOT2       0x348cUL
+#define SYSIO_ICLR_SLOT3       0x34ccUL
+static unsigned long sysio_imap_to_iclr(unsigned long imap)
+{
+       unsigned long diff = SYSIO_ICLR_UNUSED0 - SYSIO_IMAP_SLOT0;
+       return imap + diff;
+}
+
+static unsigned int sbus_of_build_irq(struct device_node *dp,
+                                     unsigned int ino,
+                                     void *_data)
+{
+       unsigned long reg_base = (unsigned long) _data;
+       struct linux_prom_registers *regs;
+       unsigned long imap, iclr;
+       int sbus_slot = 0;
+       int sbus_level = 0;
+
+       ino &= 0x3f;
+
+       regs = of_get_property(dp, "reg", NULL);
+       if (regs)
+               sbus_slot = regs->which_io;
+
+       if (ino < 0x20)
+               ino += (sbus_slot * 8);
+
+       imap = sysio_irq_offsets[ino];
+       if (imap == ((unsigned long)-1)) {
+               prom_printf("get_irq_translations: Bad SYSIO INO[%x]\n",
+                           ino);
+               prom_halt();
+       }
+       imap += reg_base;
+
+       /* SYSIO inconsistency.  For external SLOTS, we have to select
+        * the right ICLR register based upon the lower SBUS irq level
+        * bits.
+        */
+       if (ino >= 0x20) {
+               iclr = sysio_imap_to_iclr(imap);
+       } else {
+               sbus_level = ino & 0x7;
+
+               switch(sbus_slot) {
+               case 0:
+                       iclr = reg_base + SYSIO_ICLR_SLOT0;
+                       break;
+               case 1:
+                       iclr = reg_base + SYSIO_ICLR_SLOT1;
+                       break;
+               case 2:
+                       iclr = reg_base + SYSIO_ICLR_SLOT2;
+                       break;
+               default:
+               case 3:
+                       iclr = reg_base + SYSIO_ICLR_SLOT3;
+                       break;
+               };
+
+               iclr += ((unsigned long)sbus_level - 1UL) * 8UL;
+       }
+       return build_irq(sbus_level, iclr, imap);
+}
+
+static void sbus_irq_trans_init(struct device_node *dp)
+{
+       struct linux_prom64_registers *regs;
+
+       dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller));
+       dp->irq_trans->irq_build = sbus_of_build_irq;
+
+       regs = of_get_property(dp, "reg", NULL);
+       dp->irq_trans->data = (void *) (unsigned long) regs->phys_addr;
+}
+#endif /* CONFIG_SBUS */
+
+
+static unsigned int central_build_irq(struct device_node *dp,
+                                     unsigned int ino,
+                                     void *_data)
+{
+       struct device_node *central_dp = _data;
+       struct of_device *central_op = of_find_device_by_node(central_dp);
+       struct resource *res;
+       unsigned long imap, iclr;
+       u32 tmp;
+
+       if (!strcmp(dp->name, "eeprom")) {
+               res = &central_op->resource[5];
+       } else if (!strcmp(dp->name, "zs")) {
+               res = &central_op->resource[4];
+       } else if (!strcmp(dp->name, "clock-board")) {
+               res = &central_op->resource[3];
+       } else {
+               return ino;
+       }
+
+       imap = res->start + 0x00UL;
+       iclr = res->start + 0x10UL;
+
+       /* Set the INO state to idle, and disable.  */
+       upa_writel(0, iclr);
+       upa_readl(iclr);
+
+       tmp = upa_readl(imap);
+       tmp &= ~0x80000000;
+       upa_writel(tmp, imap);
+
+       return build_irq(0, iclr, imap);
+}
+
+static void central_irq_trans_init(struct device_node *dp)
+{
+       dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller));
+       dp->irq_trans->irq_build = central_build_irq;
+
+       dp->irq_trans->data = dp;
+}
+
+struct irq_trans {
+       const char *name;
+       void (*init)(struct device_node *);
+};
+
+#ifdef CONFIG_PCI
+static struct irq_trans pci_irq_trans_table[] = {
+       { "SUNW,sabre", sabre_irq_trans_init },
+       { "pci108e,a000", sabre_irq_trans_init },
+       { "pci108e,a001", sabre_irq_trans_init },
+       { "SUNW,psycho", psycho_irq_trans_init },
+       { "pci108e,8000", psycho_irq_trans_init },
+       { "SUNW,schizo", schizo_irq_trans_init },
+       { "pci108e,8001", schizo_irq_trans_init },
+       { "SUNW,schizo+", schizo_irq_trans_init },
+       { "pci108e,8002", schizo_irq_trans_init },
+       { "SUNW,tomatillo", schizo_irq_trans_init },
+       { "pci108e,a801", schizo_irq_trans_init },
+       { "SUNW,sun4v-pci", pci_sun4v_irq_trans_init },
+};
+#endif
+
+static unsigned int sun4v_vdev_irq_build(struct device_node *dp,
+                                        unsigned int devino,
+                                        void *_data)
+{
+       u32 devhandle = (u32) (unsigned long) _data;
+
+       return sun4v_build_irq(devhandle, devino);
+}
+
+static void sun4v_vdev_irq_trans_init(struct device_node *dp)
+{
+       struct linux_prom64_registers *regs;
+
+       dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller));
+       dp->irq_trans->irq_build = sun4v_vdev_irq_build;
+
+       regs = of_get_property(dp, "reg", NULL);
+       dp->irq_trans->data = (void *) (unsigned long)
+               ((regs->phys_addr >> 32UL) & 0x0fffffff);
+}
+
+static void irq_trans_init(struct device_node *dp)
+{
+       const char *model;
+       int i;
+
+       model = of_get_property(dp, "model", NULL);
+       if (!model)
+               model = of_get_property(dp, "compatible", NULL);
+       if (!model)
+               return;
+
+#ifdef CONFIG_PCI
+       for (i = 0; i < ARRAY_SIZE(pci_irq_trans_table); i++) {
+               struct irq_trans *t = &pci_irq_trans_table[i];
+
+               if (!strcmp(model, t->name))
+                       return t->init(dp);
+       }
+#endif
+#ifdef CONFIG_SBUS
+       if (!strcmp(dp->name, "sbus") ||
+           !strcmp(dp->name, "sbi"))
+               return sbus_irq_trans_init(dp);
+#endif
+       if (!strcmp(dp->name, "central"))
+               return central_irq_trans_init(dp->child);
+       if (!strcmp(dp->name, "virtual-devices"))
+               return sun4v_vdev_irq_trans_init(dp);
+}
+
 static int is_root_node(const struct device_node *dp)
 {
        if (!dp)
@@ -676,10 +1482,10 @@ static struct device_node * __init create_node(phandle node)
        dp->type = get_one_property(node, "device_type");
        dp->node = node;
 
-       /* Build interrupts later... */
-
        dp->properties = build_prop_list(node);
 
+       irq_trans_init(dp);
+
        return dp;
 }
 
index 7130e866f935849a61cbdc2ac2f74c84f2f7bb58..3522cd66f3bb36e0e1250b4ac7cd9dadebcfb52d 100644 (file)
@@ -5,7 +5,6 @@
  * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
  */
 
-#include <linux/config.h>
 
 #include <asm/asi.h>
 #include <asm/pstate.h>
index ac05e0f692efb22c80fa8c6fcce37a4446ae0d9f..ef68aa4fec6524259a525bdca10458fc3c094a6b 100644 (file)
@@ -1221,9 +1221,7 @@ static void __init sbus_iommu_init(int __node, struct sbus_bus *sbus)
 
        /* Now some Xfire specific grot... */
        if (this_is_starfire)
-               sbus->starfire_cookie = starfire_hookup(sbus->portid);
-       else
-               sbus->starfire_cookie = NULL;
+               starfire_hookup(sbus->portid);
 
        sysio_register_error_handlers(sbus);
 }
@@ -1269,8 +1267,6 @@ int __init sbus_arch_preinit(void)
 void __init sbus_arch_postinit(void)
 {
        extern void firetruck_init(void);
-       extern void clock_probe(void);
 
        firetruck_init();
-       clock_probe();
 }
index 116d9632002defd035dfdae91f0d80767d75d3b6..a73140466e01347acd4cdd10c79a06f09840f284 100644 (file)
@@ -18,7 +18,6 @@
 #include <linux/a.out.h>
 #include <linux/tty.h>
 #include <linux/delay.h>
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/seq_file.h>
 #include <linux/syscalls.h>
index ca11a4c457d4244d0279770ffe08343693cf726d..96d56a8410ad23d9ac85389a63783e65aedbffa8 100644 (file)
@@ -8,7 +8,6 @@
  *  Copyright (C) 1997,1998 Jakub Jelinek   (jj@sunsite.mff.cuni.cz)
  */
 
-#include <linux/config.h>
 #ifdef CONFIG_SPARC32_COMPAT
 #include <linux/compat.h>      /* for compat_old_sigset_t */
 #endif
index 4ac35dd2088bcb05d93b0ea2717adf11c7456064..4173de425f098ff5cefbd25b7cec8b11bd4385d5 100644 (file)
@@ -10,7 +10,6 @@
 #define EXPORT_SYMTAB_STROPS
 #define PROMLIB_INTERNAL
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index ae859d40771ece3a4c71cd189132ad784e827dbc..b930fee7708a703f8cffbe65662bbe25ced6c8e7 100644 (file)
@@ -54,7 +54,7 @@ struct starfire_irqinfo {
 static struct starfire_irqinfo *sflist = NULL;
 
 /* Beam me up Scott(McNeil)y... */
-void *starfire_hookup(int upaid)
+void starfire_hookup(int upaid)
 {
        struct starfire_irqinfo *p;
        unsigned long treg_base, hwmid, i;
@@ -81,8 +81,6 @@ void *starfire_hookup(int upaid)
        p->upaid = upaid;
        p->next = sflist;
        sflist = p;
-
-       return (void *) p;
 }
 
 unsigned int starfire_translate(unsigned long imap,
index bdf1f4d02e3f41844ec4334383cb05f0fe62ac67..c09ab4b9431ddf4c2e1552f2e31b90b1d4302b28 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1998 Jakub Jelinek   (jj@ultra.linux.cz)
  */
 
-#include <linux/config.h>
 #include <asm/errno.h>
 
 /* NOTE: call as jump breaks return stack, we have to avoid that */
index 7a869138c37fac9cf34f07418764b5a3c21d0463..51c056df528eb2f1f7a1687bfc8a4e172fa2952a 100644 (file)
@@ -6,7 +6,6 @@
  * platform.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/sched.h>
index 31030bf00f1a7a5a42fabb8ac1ff31c5292fa1a1..c88ae23ce81230709d491888bdfb6542d7c24705 100644 (file)
@@ -8,7 +8,6 @@
  * environment.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/capability.h>
index ae5b32f817f0e33948ab8a25bb0aa687d77ab1ed..87ebdf858a3a478c1140185e784f5f03964cfe16 100644 (file)
@@ -155,7 +155,7 @@ asmlinkage int sunos_brk(u32 baddr)
         * simple, it hopefully works in most obvious cases.. Easy to
         * fool it, but this should catch most mistakes.
         */
-       freepages = get_page_cache_size();
+       freepages = global_page_state(NR_FILE_PAGES);
        freepages >>= 1;
        freepages += nr_free_pages();
        freepages += nr_swap_pages;
index 1136fc465e37555431f2ebebd927aa32f61e41e3..419a63fca1721d784642465767a1510c0559c98c 100644 (file)
@@ -10,7 +10,6 @@
  * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
  */
 
-#include <linux/config.h>
 
        .text
        .align  4
index 348b820355615b221d71c83741fe92580053ae99..8dcbfbffacc9a181321609656098e7435f7165b8 100644 (file)
@@ -9,7 +9,6 @@
  * Copyright (C) 1996 Thomas K. Dyas (tdyas@eden.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <asm/timer.h>
 #include <asm/irq.h>
 #include <asm/io.h>
-#include <asm/sbus.h>
-#include <asm/fhc.h>
-#include <asm/pbm.h>
-#include <asm/ebus.h>
-#include <asm/isa.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/starfire.h>
 #include <asm/smp.h>
 #include <asm/sections.h>
@@ -770,237 +766,106 @@ static int __init clock_model_matches(char *model)
        return 1;
 }
 
-static void __init __clock_assign_common(void __iomem *addr, char *model)
+static int __devinit clock_probe(struct of_device *op, const struct of_device_id *match)
 {
-       if (model[5] == '0' && model[6] == '2') {
-               mstk48t02_regs = addr;
-       } else if(model[5] == '0' && model[6] == '8') {
-               mstk48t08_regs = addr;
-               mstk48t02_regs = mstk48t08_regs + MOSTEK_48T08_48T02;
-       } else {
-               mstk48t59_regs = addr;
-               mstk48t02_regs = mstk48t59_regs + MOSTEK_48T59_48T02;
-       }
-}
-
-static void __init clock_assign_clk_reg(struct linux_prom_registers *clk_reg,
-                                       char *model)
-{
-       unsigned long addr;
-
-       addr = ((unsigned long) clk_reg[0].phys_addr |
-               (((unsigned long) clk_reg[0].which_io) << 32UL));
-
-       __clock_assign_common((void __iomem *) addr, model);
-}
-
-static int __init clock_probe_central(void)
-{
-       struct linux_prom_registers clk_reg[2], *pr;
-       struct device_node *dp;
-       char *model;
+       struct device_node *dp = op->node;
+       char *model = of_get_property(dp, "model", NULL);
+       unsigned long size, flags;
+       void __iomem *regs;
 
-       if (!central_bus)
-               return 0;
-
-       /* Get Central FHC's prom node.  */
-       dp = central_bus->child->prom_node;
-
-       /* Then get the first child device below it.  */
-       dp = dp->child;
-
-       while (dp) {
-               model = of_get_property(dp, "model", NULL);
-               if (!model || !clock_model_matches(model))
-                       goto next_sibling;
-
-               pr = of_get_property(dp, "reg", NULL);
-               memcpy(clk_reg, pr, sizeof(clk_reg));
-
-               apply_fhc_ranges(central_bus->child, clk_reg, 1);
-               apply_central_ranges(central_bus, clk_reg, 1);
-
-               clock_assign_clk_reg(clk_reg, model);
-               return 1;
+       if (!model || !clock_model_matches(model))
+               return -ENODEV;
 
-       next_sibling:
-               dp = dp->sibling;
-       }
+       /* On an Enterprise system there can be multiple mostek clocks.
+        * We should only match the one that is on the central FHC bus.
+        */
+       if (!strcmp(dp->parent->name, "fhc") &&
+           strcmp(dp->parent->parent->name, "central") != 0)
+               return -ENODEV;
 
-       return 0;
-}
+       size = (op->resource[0].end - op->resource[0].start) + 1;
+       regs = of_ioremap(&op->resource[0], 0, size, "clock");
+       if (!regs)
+               return -ENOMEM;
 
-#ifdef CONFIG_PCI
-static void __init clock_isa_ebus_assign_regs(struct resource *res, char *model)
-{
        if (!strcmp(model, "ds1287") ||
            !strcmp(model, "m5819") ||
            !strcmp(model, "m5819p") ||
            !strcmp(model, "m5823")) {
-               ds1287_regs = res->start;
+               ds1287_regs = (unsigned long) regs;
+       } else if (model[5] == '0' && model[6] == '2') {
+               mstk48t02_regs = regs;
+       } else if(model[5] == '0' && model[6] == '8') {
+               mstk48t08_regs = regs;
+               mstk48t02_regs = mstk48t08_regs + MOSTEK_48T08_48T02;
        } else {
-               mstk48t59_regs = (void __iomem *) res->start;
+               mstk48t59_regs = regs;
                mstk48t02_regs = mstk48t59_regs + MOSTEK_48T59_48T02;
        }
-}
-
-static int __init clock_probe_one_ebus_dev(struct linux_ebus_device *edev)
-{
-       struct device_node *dp = edev->prom_node;
-       char *model;
-
-       model = of_get_property(dp, "model", NULL);
-       if (!clock_model_matches(model))
-               return 0;
 
-       clock_isa_ebus_assign_regs(&edev->resource[0], model);
+       printk(KERN_INFO "%s: Clock regs at %p\n", dp->full_name, regs);
 
-       return 1;
-}
-
-static int __init clock_probe_ebus(void)
-{
-       struct linux_ebus *ebus;
+       local_irq_save(flags);
 
-       for_each_ebus(ebus) {
-               struct linux_ebus_device *edev;
+       if (mstk48t02_regs != NULL) {
+               /* Report a low battery voltage condition. */
+               if (has_low_battery())
+                       prom_printf("NVRAM: Low battery voltage!\n");
 
-               for_each_ebusdev(edev, ebus) {
-                       if (clock_probe_one_ebus_dev(edev))
-                               return 1;
-               }
+               /* Kick start the clock if it is completely stopped. */
+               if (mostek_read(mstk48t02_regs + MOSTEK_SEC) & MSTK_STOP)
+                       kick_start_clock();
        }
 
-       return 0;
-}
-
-static int __init clock_probe_one_isa_dev(struct sparc_isa_device *idev)
-{
-       struct device_node *dp = idev->prom_node;
-       char *model;
-
-       model = of_get_property(dp, "model", NULL);
-       if (!clock_model_matches(model))
-               return 0;
-
-       clock_isa_ebus_assign_regs(&idev->resource, model);
-
-       return 1;
-}
-
-static int __init clock_probe_isa(void)
-{
-       struct sparc_isa_bridge *isa_br;
-
-       for_each_isa(isa_br) {
-               struct sparc_isa_device *isa_dev;
-
-               for_each_isadev(isa_dev, isa_br) {
-                       if (clock_probe_one_isa_dev(isa_dev))
-                               return 1;
-               }
-       }
+       set_system_time();
+       
+       local_irq_restore(flags);
 
        return 0;
 }
-#endif /* CONFIG_PCI */
-
-#ifdef CONFIG_SBUS
-static int __init clock_probe_one_sbus_dev(struct sbus_bus *sbus, struct sbus_dev *sdev)
-{
-       struct resource *res;
-       char model[64];
-       void __iomem *addr;
-
-       prom_getstring(sdev->prom_node, "model", model, sizeof(model));
-       if (!clock_model_matches(model))
-               return 0;
-
-       res = &sdev->resource[0];
-       addr = sbus_ioremap(res, 0, 0x800UL, "eeprom");
 
-       __clock_assign_common(addr, model);
-
-       return 1;
-}
-
-static int __init clock_probe_sbus(void)
-{
-       struct sbus_bus *sbus;
-
-       for_each_sbus(sbus) {
-               struct sbus_dev *sdev;
-
-               for_each_sbusdev(sdev, sbus) {
-                       if (clock_probe_one_sbus_dev(sbus, sdev))
-                               return 1;
-               }
-       }
+static struct of_device_id clock_match[] = {
+       {
+               .name = "eeprom",
+       },
+       {
+               .name = "rtc",
+       },
+       {},
+};
 
-       return 0;
-}
-#endif
+static struct of_platform_driver clock_driver = {
+       .name           = "clock",
+       .match_table    = clock_match,
+       .probe          = clock_probe,
+};
 
-void __init clock_probe(void)
+static int __init clock_init(void)
 {
-       static int invoked;
-       unsigned long flags;
-
-       if (invoked)
-               return;
-       invoked = 1;
-
        if (this_is_starfire) {
                xtime.tv_sec = starfire_get_time();
                xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ);
                set_normalized_timespec(&wall_to_monotonic,
                                        -xtime.tv_sec, -xtime.tv_nsec);
-               return;
+               return 0;
        }
        if (tlb_type == hypervisor) {
                xtime.tv_sec = hypervisor_get_time();
                xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ);
                set_normalized_timespec(&wall_to_monotonic,
                                        -xtime.tv_sec, -xtime.tv_nsec);
-               return;
-       }
-
-       /* Check FHC Central then EBUSs then ISA bridges then SBUSs.
-        * That way we handle the presence of multiple properly.
-        *
-        * As a special case, machines with Central must provide the
-        * timer chip there.
-        */
-       if (!clock_probe_central() &&
-#ifdef CONFIG_PCI
-           !clock_probe_ebus() &&
-           !clock_probe_isa() &&
-#endif
-#ifdef CONFIG_SBUS
-           !clock_probe_sbus()
-#endif
-               ) {
-               printk(KERN_WARNING "No clock chip found.\n");
-               return;
-       }
-
-       local_irq_save(flags);
-
-       if (mstk48t02_regs != NULL) {
-               /* Report a low battery voltage condition. */
-               if (has_low_battery())
-                       prom_printf("NVRAM: Low battery voltage!\n");
-
-               /* Kick start the clock if it is completely stopped. */
-               if (mostek_read(mstk48t02_regs + MOSTEK_SEC) & MSTK_STOP)
-                       kick_start_clock();
+               return 0;
        }
 
-       set_system_time();
-       
-       local_irq_restore(flags);
+       return of_register_driver(&clock_driver, &of_bus_type);
 }
 
+/* Must be after subsys_initcall() so that busses are probed.  Must
+ * be before device_initcall() because things like the RTC driver
+ * need to see the clock registers.
+ */
+fs_initcall(clock_init);
+
 /* This is gets the master TICK_INT timer going. */
 static unsigned long sparc64_init_timers(void)
 {
index 1ff34b019f3f0bb8478150aeb60186d1e55be03a..68420e2dad0eb2c28857ce854563165fe62570fc 100644 (file)
@@ -9,7 +9,6 @@
  * I like traps on v9, :))))
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>  /* for jiffies */
 #include <linux/kernel.h>
index a0c8ba58920bdcc09ae502848bb515ed691b2191..eedf94fa5664075b3443bf8b990094294de9bee8 100644 (file)
@@ -3,7 +3,6 @@
  * Copyright (C) 2006 David S. Miller <davem@davemloft.net>
  */
 
-#include <linux/config.h>
 
 #include <asm/tsb.h>
 #include <asm/hypervisor.h>
index ee45ca2d7a04da5b8fb6a4cd21c1c0413f4e4a46..d7d2a8bdc66ef8750cce0e85f5e386a386f3d7df 100644 (file)
@@ -3,7 +3,6 @@
  * Copyright (C) 1996, 2001, 2006 David S. Miller (davem@davemloft.net)
  */
 
-#include <linux/config.h>
 
        .globl  sparc64_ttable_tl0, sparc64_ttable_tl1
        .globl  tl0_icpe, tl1_icpe
index bb2d685778555e9fb9f65a0fcbd69d23b9d18112..a9b765271b85f9da4546c846f446ab383cecd781 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/smp.h>
 #include <linux/smp_lock.h>
 #include <linux/bitops.h>
+#include <linux/kallsyms.h>
 #include <asm/fpumacro.h>
 
 /* #define DEBUG_MNA */
@@ -291,7 +292,8 @@ asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn)
        if (count < 5) {
                last_time = jiffies;
                count++;
-               printk("Kernel unaligned access at TPC[%lx]\n", regs->tpc);
+               printk("Kernel unaligned access at TPC[%lx] ", regs->tpc);
+               print_symbol("%s\n", regs->tpc);
        }
 
        if (!ok_for_kernel(insn) || dir == both) {
index faf87c31598bc30f44a42d5a76079db4322096a7..9633750167d06b3e9f4d285e105656d01a8ce32f 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1999 David S. Miller (davem@redhat.com)
  */
 
-#include <linux/config.h>
 #include <asm/asi.h>
 
        .text
index 31afbfe6c1e86864242f7e5bc75f5902a4da4387..892431a821311f639e9a18aec4a70c702bd4c726 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 2000 David S. Miller (davem@redhat.com)
  */
 
-#include <linux/config.h>
 #include <asm/asi.h>
 
        .text
index 2ef2e268bdcfdf5ee9dfadca2f677a7aa44df758..9e4534b485c7a578af04517adff245a413f7bfb9 100644 (file)
@@ -5,7 +5,6 @@
  * This can also be tweaked for kernel stack overflow detection.
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 
 #include <asm/ptrace.h>
index fbbbebbad8a49219674c119551f07a85b594bd9e..53b9b1f528e54ae75d9caeb90e3fa7bd90b67c8a 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 2002, 2003, 2006 David S. Miller (davem@davemloft.net)
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/fs.h>
index cb75a27adb517bba8b2d43289b0cb8e1a64ef81d..dcba4e6ab5702d675365c5ec56a77866ddad4dde 100644 (file)
@@ -5,7 +5,6 @@
  *  Copyright (C) 1997-1999 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
  */
  
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index f8479fad4047de364454bf26ceb85bd18c9e6f78..d70b60a3bbccb5340cf517dcf64657eba1927456 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1997, 2000 David S. Miller (davem@redhat.com)
  */
 
-#include <linux/config.h>
 #include <asm/asi.h>
 #include <asm/pgtable.h>
 #include <asm/page.h>
index 577bde8b664766703bd7fab1ff7f93a4a645d169..0b4213720d439167e3ba7f59ab5b78849df072d3 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1996,1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 719c90905a1e80030605f15481d2b5536be84966..8135ec322c9c02dc71f071ba6db6c97900d35c05 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
  */
 
-#include <linux/config.h>
 #include <linux/module.h> 
 #include <linux/types.h>
 #include <linux/smp_lock.h>
index dfd88b652fbe5ee638e81ffee241de18e4a6a90e..dffd1184c956cca4314eb4c1127f30cbaf373185 100644 (file)
@@ -6,9 +6,11 @@ START := 0x60000000
 
 #We #undef __x86_64__ for kernelspace, not for userspace where
 #it's needed for headers to work!
-CFLAGS += -U__$(SUBARCH)__ -fno-builtin
-USER_CFLAGS += -fno-builtin
+CFLAGS += -U__$(SUBARCH)__ -fno-builtin -m64
+USER_CFLAGS += -fno-builtin -m64
 CHECKFLAGS  += -m64
+AFLAGS += -m64
+LDFLAGS += -m elf_x86_64
 
 ELF_ARCH := i386:x86-64
 ELF_FORMAT := elf64-x86-64
@@ -16,3 +18,4 @@ ELF_FORMAT := elf64-x86-64
 # Not on all 64-bit distros /lib is a symlink to /lib64. PLD is an example.
 
 LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib64
+LINK-y += -m64
index d18a974735e649ed25f95159ef19ce274d59d408..64ff22aa077bdb3686fe33e655914630af45dd44 100644 (file)
@@ -35,7 +35,6 @@
  */
  
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/fs.h>
index 429ae8e6c7e514f67fac718d9912828dec7e7768..6d2cf32a9e8f880eeaf7439e874ef4640f3ec7dc 100644 (file)
@@ -8,10 +8,7 @@
 
 /*
  * Don't register by default -- as this registeres very early in the
- * boot process it becomes the default console.  And as this isn't a
- * real tty driver init isn't able to open /dev/console then.
- *
- * In most cases this isn't what you want ...
+ * boot process it becomes the default console.
  */
 static int use_stderr_console = 0;
 
@@ -43,3 +40,20 @@ static int stderr_setup(char *str)
        return 1;
 }
 __setup("stderr=", stderr_setup);
+
+/* The previous behavior of not unregistering led to /dev/console being
+ * impossible to open.  My FC5 filesystem started having init die, and the
+ * system panicing because of this.  Unregistering causes the real
+ * console to become the default console, and /dev/console can then be
+ * opened.  Making this an initcall makes this happen late enough that
+ * there is no added value in dumping everything to stderr, and the
+ * normal console is good enough to show you all available output.
+ */
+static int __init unregister_stderr(void)
+{
+       unregister_console(&stderr_console);
+
+       return 0;
+}
+
+__initcall(unregister_stderr);
index 939cc475757a583e7b38977f02c6f095de004465..91d129fb39308cc57771ca71d2465ecc1a07553d 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/sched.h>
 #include <linux/time.h>
index c5c9885a82979f70c2a66a1753ef683a0114b932..624ca238d1fd3d753f261c0bb368128570976a96 100644 (file)
@@ -152,7 +152,7 @@ void destroy_context_skas(struct mm_struct *mm)
                free_page(mmu->id.stack);
                pte_lock_deinit(virt_to_page(mmu->last_page_table));
                pte_free_kernel((pte_t *) mmu->last_page_table);
-                dec_page_state(nr_page_table_pages);
+               dec_zone_page_state(virt_to_page(mmu->last_page_table), NR_PAGETABLE);
 #ifdef CONFIG_3_LEVEL_PGTABLES
                pmd_free((pmd_t *) mmu->last_pmd);
 #endif
diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c
deleted file mode 100644 (file)
index 8fa2ae7..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-/* 
- * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
- * Licensed under the GPL
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <time.h>
-#include <sys/time.h>
-#include <signal.h>
-#include <errno.h>
-#include "user_util.h"
-#include "kern_util.h"
-#include "user.h"
-#include "process.h"
-#include "time_user.h"
-#include "kern_constants.h"
-#include "os.h"
-
-/* XXX This really needs to be declared and initialized in a kernel file since
- * it's in <linux/time.h>
- */
-extern struct timespec wall_to_monotonic;
-
-extern struct timeval xtime;
-
-struct timeval local_offset = { 0, 0 };
-
-void timer(void)
-{
-       gettimeofday(&xtime, NULL);
-       timeradd(&xtime, &local_offset, &xtime);
-}
-
-static void set_interval(int timer_type)
-{
-       int usec = 1000000/hz();
-       struct itimerval interval = ((struct itimerval) { { 0, usec },
-                                                         { 0, usec } });
-
-       if(setitimer(timer_type, &interval, NULL) == -1)
-               panic("setitimer failed - errno = %d\n", errno);
-}
-
-void enable_timer(void)
-{
-       set_interval(ITIMER_VIRTUAL);
-}
-
-void prepare_timer(void * ptr)
-{
-       int usec = 1000000/hz();
-       *(struct itimerval *)ptr = ((struct itimerval) { { 0, usec },
-                                                        { 0, usec }});
-}
-
-void disable_timer(void)
-{
-       struct itimerval disable = ((struct itimerval) { { 0, 0 }, { 0, 0 }});
-       if((setitimer(ITIMER_VIRTUAL, &disable, NULL) < 0) ||
-          (setitimer(ITIMER_REAL, &disable, NULL) < 0))
-               printk("disnable_timer - setitimer failed, errno = %d\n",
-                      errno);
-       /* If there are signals already queued, after unblocking ignore them */
-       set_handler(SIGALRM, SIG_IGN, 0, -1);
-       set_handler(SIGVTALRM, SIG_IGN, 0, -1);
-}
-
-void switch_timers(int to_real)
-{
-       struct itimerval disable = ((struct itimerval) { { 0, 0 }, { 0, 0 }});
-       struct itimerval enable = ((struct itimerval) { { 0, 1000000/hz() },
-                                                       { 0, 1000000/hz() }});
-       int old, new;
-
-       if(to_real){
-               old = ITIMER_VIRTUAL;
-               new = ITIMER_REAL;
-       }
-       else {
-               old = ITIMER_REAL;
-               new = ITIMER_VIRTUAL;
-       }
-
-       if((setitimer(old, &disable, NULL) < 0) ||
-          (setitimer(new, &enable, NULL)))
-               printk("switch_timers - setitimer failed, errno = %d\n",
-                      errno);
-}
-
-void uml_idle_timer(void)
-{
-       if(signal(SIGVTALRM, SIG_IGN) == SIG_ERR)
-               panic("Couldn't unset SIGVTALRM handler");
-       
-       set_handler(SIGALRM, (__sighandler_t) alarm_handler, 
-                   SA_RESTART, SIGUSR1, SIGIO, SIGWINCH, SIGVTALRM, -1);
-       set_interval(ITIMER_REAL);
-}
-
-extern void ktime_get_ts(struct timespec *ts);
-#define do_posix_clock_monotonic_gettime(ts) ktime_get_ts(ts)
-
-void time_init(void)
-{
-       struct timespec now;
-
-       if(signal(SIGVTALRM, boot_timer_handler) == SIG_ERR)
-               panic("Couldn't set SIGVTALRM handler");
-       set_interval(ITIMER_VIRTUAL);
-
-       do_posix_clock_monotonic_gettime(&now);
-       wall_to_monotonic.tv_sec = -now.tv_sec;
-       wall_to_monotonic.tv_nsec = -now.tv_nsec;
-}
-
-/* Defined in linux/ktimer.h, which can't be included here */
-#define clock_was_set()                do { } while (0)
-
-void do_gettimeofday(struct timeval *tv)
-{
-       unsigned long flags;
-
-       flags = time_lock();
-       gettimeofday(tv, NULL);
-       timeradd(tv, &local_offset, tv);
-       time_unlock(flags);
-       clock_was_set();
-}
-
-int do_settimeofday(struct timespec *tv)
-{
-       struct timeval now;
-       unsigned long flags;
-       struct timeval tv_in;
-
-       if ((unsigned long) tv->tv_nsec >= UM_NSEC_PER_SEC)
-               return -EINVAL;
-
-       tv_in.tv_sec = tv->tv_sec;
-       tv_in.tv_usec = tv->tv_nsec / 1000;
-
-       flags = time_lock();
-       gettimeofday(&now, NULL);
-       timersub(&tv_in, &now, &local_offset);
-       time_unlock(flags);
-
-       return(0);
-}
-
-void idle_sleep(int secs)
-{
-       struct timespec ts;
-
-       ts.tv_sec = secs;
-       ts.tv_nsec = 0;
-       nanosleep(&ts, NULL);
-}
-
-/* XXX This partly duplicates init_irq_signals */
-
-void user_time_init(void)
-{
-       set_handler(SIGVTALRM, (__sighandler_t) alarm_handler,
-                   SA_ONSTACK | SA_RESTART, SIGUSR1, SIGIO, SIGWINCH,
-                   SIGALRM, SIGUSR2, -1);
-       set_handler(SIGALRM, (__sighandler_t) alarm_handler,
-                   SA_ONSTACK | SA_RESTART, SIGUSR1, SIGIO, SIGWINCH,
-                   SIGVTALRM, SIGUSR2, -1);
-       set_interval(ITIMER_VIRTUAL);
-}
index 87cdbc560d360a3c62c4c144645e096225765d67..820fa3615a3f7640a7e603b7517f31ae92cc5084 100644 (file)
@@ -96,11 +96,15 @@ void time_init_kern(void)
 
 void do_boot_timer_handler(struct sigcontext * sc)
 {
+       unsigned long flags;
        struct pt_regs regs;
 
        CHOOSE_MODE((void) (UPT_SC(&regs.regs) = sc),
                    (void) (regs.regs.skas.is_user = 0));
+
+       write_seqlock_irqsave(&xtime_lock, flags);
        do_timer(&regs);
+       write_sequnlock_irqrestore(&xtime_lock, flags);
 }
 
 static DEFINE_SPINLOCK(timer_spinlock);
@@ -125,25 +129,17 @@ irqreturn_t um_timer(int irq, void *dev, struct pt_regs *regs)
        unsigned long long nsecs;
        unsigned long flags;
 
+       write_seqlock_irqsave(&xtime_lock, flags);
+
        do_timer(regs);
 
-       write_seqlock_irqsave(&xtime_lock, flags);
        nsecs = get_time() + local_offset;
        xtime.tv_sec = nsecs / NSEC_PER_SEC;
        xtime.tv_nsec = nsecs - xtime.tv_sec * NSEC_PER_SEC;
-       write_sequnlock_irqrestore(&xtime_lock, flags);
-
-       return(IRQ_HANDLED);
-}
 
-long um_time(int __user *tloc)
-{
-       long ret = get_time() / NSEC_PER_SEC;
-
-       if((tloc != NULL) && put_user(ret, tloc))
-               return -EFAULT;
+       write_sequnlock_irqrestore(&xtime_lock, flags);
 
-       return ret;
+       return IRQ_HANDLED;
 }
 
 void do_gettimeofday(struct timeval *tv)
@@ -174,18 +170,6 @@ static inline void set_time(unsigned long long nsecs)
        clock_was_set();
 }
 
-long um_stime(int __user *tptr)
-{
-       int value;
-
-       if (get_user(value, tptr))
-                return -EFAULT;
-
-       set_time((unsigned long long) value * NSEC_PER_SEC);
-
-       return 0;
-}
-
 int do_settimeofday(struct timespec *tv)
 {
        set_time((unsigned long long) tv->tv_sec * NSEC_PER_SEC + tv->tv_nsec);
index 1660a769674b8c24b7f1c88266565028f4b17fa5..72acdce205e0a3eff5d6ae6cdbdd73a20c22a952 100644 (file)
@@ -1,4 +1,5 @@
-#include <linux/config.h>
+/* in case the preprocessor is a 32bit one */
+#undef i386
 #ifdef CONFIG_LD_SCRIPT_STATIC
 #include "uml.lds.S"
 #else
index c6432e7292411de1ea2006aabf97a13c3a7fa4eb..560c8063c77cb80fa54b196fbd078cf8bc19895d 100644 (file)
@@ -55,7 +55,7 @@ static void __init find_tempdir(void)
  */
 static int next(int fd, char *buf, int size, char c)
 {
-       int n;
+       int n, len;
        char *ptr;
 
        while((ptr = strchr(buf, c)) == NULL){
@@ -69,7 +69,17 @@ static int next(int fd, char *buf, int size, char c)
        }
 
        ptr++;
-       memmove(buf, ptr, strlen(ptr) + 1);
+       len = strlen(ptr);
+       memmove(buf, ptr, len + 1);
+
+       /* Refill the buffer so that if there's a partial string that we care
+        * about, it will be completed, and we can recognize it.
+        */
+       n = read(fd, &buf[len], size - len - 1);
+       if(n < 0)
+               return -errno;
+
+       buf[len + n] = '\0';
        return 1;
 }
 
@@ -200,8 +210,11 @@ int create_tmp_file(unsigned long long len)
                exit(1);
        }
 
-        if (lseek64(fd, len, SEEK_SET) < 0) {
-               perror("os_seek_file");
+       /* Seek to len - 1 because writing a character there will
+        * increase the file size by one byte, to the desired length.
+        */
+       if (lseek64(fd, len - 1, SEEK_SET) < 0) {
+               perror("os_seek_file");
                exit(1);
        }
 
index d98b2fff3d086416d10d6bdd5d56002211d0aa9f..62c7e564f22eb4719b8b10c54c290849be55f5f9 100644 (file)
@@ -25,7 +25,6 @@
  *             2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/errno.h>
                                
 /*
index 6028bc7cc01bdfae7b8143c95c61261a5cd23893..28bf01150323143d376ed6fdf607c6fab7933af1 100644 (file)
@@ -3,7 +3,6 @@
  * Licensed under the GPL
  */
 
-#include <linux/config.h>
 #include <linux/compiler.h>
 #include "linux/sched.h"
 #include "linux/mm.h"
index 1ff61474b25c69fe45f401225f08b82df98ce4c1..2497554b7b9547a7d176d658ae0f490d517d7144 100644 (file)
@@ -7,8 +7,6 @@
 #define sys_vm86old sys_ni_syscall
 #define sys_vm86 sys_ni_syscall
 
-#define sys_stime um_stime
-#define sys_time um_time
 #define old_mmap old_mmap_i386
 
 #include "../../i386/kernel/syscall_table.S"
index f0c971db47e42b94dc4b7d43fecc751c65fedaeb..1364b7da578c000f937a3253c2265a9dbf6494f5 100644 (file)
@@ -15,7 +15,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/processor.h>
 #include "ppc_asm.h"
 
index 34b2e842864fb5cc5092a530aec127accf90ad42..9e9ad72c2ba4fad3f836ff6f294cfa045f6d9622 100644 (file)
@@ -4,7 +4,6 @@
 #include <linux/linkage.h>
 #include <linux/sys.h>
 #include <linux/cache.h>
-#include <linux/config.h>
 
 #define __NO_STUBS
 
 /*#define sys_set_thread_area sys_ni_syscall
 #define sys_get_thread_area sys_ni_syscall*/
 
-/* For __NR_time. The x86-64 name hopefully will change from sys_time64 to
- * sys_time (since the current situation is bogus). I've sent a patch to cleanup
- * this. Remove below the obsoleted line. */
-#define sys_time64 um_time
-#define sys_time um_time
-
 /* On UML we call it this way ("old" means it's not mmap2) */
 #define sys_mmap old_mmap
 /* On x86-64 sys_uname is actually sys_newuname plus a compatibility trick.
index d0502e14243707489d895fd73a1b225dc16d696c..40892d3e3c247ea2dbada930d4f65b5675f05993 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index d78c5e4ea9bca4014e1d08dcd567634ac32f2d7b..5352f8a5aa070191f9d0d027a0ac7bc420b10cb9 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index d8094519ad85efac9a4a6ef9e51177362988c340..cb04a6954ccbc5d99b639d119bc36a50fa6f96ca 100644 (file)
@@ -12,7 +12,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index b3dfbc5d2f4074b2f420070351fd77c2ae9cd259..2aa8ab0f7edcb4f1198ae67205b9f815fdb6beaa 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 6527c218f91d1b2ff0be2875218e6acde976bb41..14b0c8858aa46a8445dc44ee8f566316b0b04fbb 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 57218c76925ceda29277c7d8573283c169aa8850..c4f844c86e50eb3ed97fc72f8210d4639bd540f0 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 0c794b9e0f9b8c1187eed1d2b9e43a3f8f4e2066..0f7f6cd705a2d1eae01fa817054e462a577ef917 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/fs.h>
index b662ad838940940eb39585e0443c922de54d5212..f654088b27600098d89cab8afe0714f5a10aa645 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/spinlock.h>
 #include <linux/fs.h>
index 3873e276392f5e25e6ea29e4c4684fcf0b51ef90..9a716f9464218ba269495cd33638930de0d29174 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/bootmem.h>
index 3a7c5c9c3ac66f5fd248c81d823e582dadcce1e9..f36b778f14320e96e6dca7f748b2ed7cf98ae76c 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index faaf3d95e6cf3105b0c64c3bea14c19a3b44c44d..df7027d854375cad745b4b4337757dd688eaa7c3 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/bootmem.h>
index 990b20bffe473e27933a93d72d60cb974ac98bef..b4a045da5d70801c004afda74289cd3443aeaab1 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 17049aaa8f11832cf4a431e9a9e4a09282dd2208..467b4aa0acdd30e557613c6fed1c0dfb73508d8b 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index 9111613fb53a332dd1605f0921c64e4b529fdf76..566dde5e6070f0a3cf16ecae73618ce2211e2dc9 100644 (file)
@@ -12,7 +12,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index 9224cb65f6ec8e93e2ccfe084af2144e2d421c26..2ec0700fc46bc75cc0ab9c312c0be75cdba674b9 100644 (file)
@@ -15,7 +15,6 @@
  *     and Paul Mackerras (paulus@cs.anu.edu.au).
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/mm.h>
 #include <linux/smp.h>
index 495cf8f37bcb52906047f1597f854f94b8ec7352..290d506650166633a691aecd1c953cfeff75cd16 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index 6bcfcfe88384b7d0a573f496d1f2afedd5e2f99e..c03ad6ed61cca6f10139895a4f4ba4dcb89deef7 100644 (file)
@@ -7,7 +7,6 @@
 #include <linux/elfcore.h>
 #include <linux/in6.h>
 #include <linux/interrupt.h>
-#include <linux/config.h>
 
 #include <asm/pgalloc.h>
 #include <asm/irq.h>
index 5b2ffcc6e2b2f50db26ead76ba384118065b79e1..63399219cd9fca731fe4c7b473ce2288a1914ad4 100644 (file)
@@ -11,7 +11,6 @@
  * Written by Miles Bader <miles@gnu.org>
  */
 
-#include <linux/config.h>
 
 #define VMLINUX_SYMBOL(_sym_) _##_sym_
 #include <asm-generic/vmlinux.lds.h>
index 12ea0b6c52e2a8b48cea525ec530d49b8c1d97a5..7de8b8fd168518ef303551f828f1dd406c7dc4ef 100644 (file)
@@ -45,7 +45,6 @@
  * Added long mode checking and SSE force. March 2003, Andi Kleen.             
  */
 
-#include <linux/config.h>
 #include <asm/segment.h>
 #include <linux/version.h>
 #include <linux/compile.h>
index dc88154c412b34ee654b801b0828edcbcb35ef4b..9c130993380d8b3a27da7437da33be064f713052 100644 (file)
@@ -20,7 +20,6 @@
  * This should be fixed.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/fs.h> 
index 091bc79c888f6dac8873c1f420d42f17c390351f..5ebf62c7a3d2ba936c2e22dfcd0b0ae02b9bdde5 100644 (file)
@@ -26,7 +26,6 @@
  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/types.h>
index a195ef06ec5553e7c9f3fa7eb12fbb4078bd826c..58af8e73738bd5cf51dc9b0a7884bb0fbb66d154 100644 (file)
@@ -9,7 +9,6 @@
  * 
  * Copyright 2002 Andi Kleen, SuSE Labs.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/init.h>
index b2ead91df218b0e68e9d1cb056981eb0e491896b..2b8cef037a6544046fc71000fea9c8e9874a7df9 100644 (file)
@@ -14,7 +14,6 @@
  *     Mikael Pettersson       :       PM converted to driver model.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <linux/mm.h>
index 9e94d834624bbc9a0960ba9975ef6b62c389a501..b8eee4c7888b596753660ef56e7cdb39c29391cc 100644 (file)
@@ -8,7 +8,6 @@
  *  Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/init.h>
index 22cac4487b57fd1e9aef98769071a8e4f02f0d81..ed92c29836060b20f7ac724d7f16d3dcf036562e 100644 (file)
@@ -28,7 +28,6 @@
  */
 
 #define ASSEMBLY 1
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/segment.h>
 #include <asm/smp.h>
index 2bcebdc3eedbc193546c7b28b26af627368dc306..01fa23580c85f4dd707f166dca06f49226924078 100644 (file)
 *(.text.__end_that_request_first)
 *(.text.wake_up_bit)
 *(.text.unuse_mm)
-*(.text.skb_release_data)
 *(.text.shrink_icache_memory)
 *(.text.sched_balance_self)
 *(.text.__pmd_alloc)
index 7a64ea181788c62e3c6a8e9e07a378ffa0a23ac0..8e78a75d1866ffc433cb2eb4d28dc7047a0e9a64 100644 (file)
@@ -8,7 +8,6 @@
  * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
  * James Cleverdon.
  */
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/cpumask.h>
 #include <linux/string.h>
index 43fcf62fef0f5aa0931930b1881cc88f7b50605c..3020917546de09ccd9b2432a0a06b8f6f2e1feaf 100644 (file)
@@ -9,7 +9,6 @@
  * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
  * James Cleverdon.
  */
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/cpumask.h>
 #include <linux/string.h>
index 21c7066e236aa0a0e83ea78505037e51c37d37a8..eb86d374813a3038c0b5299f6dae861b2bd4b33d 100644 (file)
@@ -8,7 +8,6 @@
  * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
  * James Cleverdon.
  */
-#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/cpumask.h>
 #include <linux/string.h>
index 44ddb1ec808d29123a32249e3e0588602404d159..3aa1e9bb781df686854f34816b0fff661ccb9847 100644 (file)
@@ -14,7 +14,6 @@
  *  the 64bit user space sees a FXSAVE frame directly. 
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/init.h>
 #include <asm/processor.h>
index 3dd1659427dc3a78f6c09c3e2827d36278f2b1e7..0434b1f8e3dd47bbea3514aaee35c8a6cd56da40 100644 (file)
@@ -1,5 +1,4 @@
 #include <linux/linkage.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
index 401b687fef21b2f4736c6a79d3f51b1fa1ac99b8..924a4a332954349e56dd990efb82e037d18d0154 100644 (file)
@@ -25,7 +25,6 @@
 #include <linux/init.h>
 #include <linux/delay.h>
 #include <linux/sched.h>
-#include <linux/config.h>
 #include <linux/smp_lock.h>
 #include <linux/mc146818rtc.h>
 #include <linux/acpi.h>
index fa1d19ca700ae82a23df77f068bee660e47f80f2..ffc73ac72485f666befc9e7b13c730930fd6681b 100644 (file)
@@ -31,7 +31,6 @@
  *              Added function return probes functionality
  */
 
-#include <linux/config.h>
 #include <linux/kprobes.h>
 #include <linux/ptrace.h>
 #include <linux/string.h>
index 083da7e606b1e6a88ca89f997276dbd9556a76d4..a1ab4197f8a11594e59c57b20c67d5a6511c6cfa 100644 (file)
@@ -16,7 +16,6 @@
 #include <linux/mm.h>
 #include <linux/init.h>
 #include <linux/delay.h>
-#include <linux/config.h>
 #include <linux/bootmem.h>
 #include <linux/smp_lock.h>
 #include <linux/kernel_stat.h>
index 0ef9cf2bc45e4ea809e3a76fb2c4f61dc4a3c7b4..476c1472fc078ca35b294f7d190cd5558665f0ca 100644 (file)
@@ -12,7 +12,6 @@
  *  Mikael Pettersson  : PM converted to driver model. Disable/enable API.
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/delay.h>
 #include <linux/interrupt.h>
index 4ca674d16b09c62b10afc56674e06126cdbce481..6d3e61baf7a0159c015f4b439d88fe404dcb129a 100644 (file)
@@ -10,7 +10,6 @@
  * Copyright 2002 Andi Kleen, SuSE Labs.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/ctype.h>
 #include <linux/agp_backend.h>
index 1129918ede826d7319cdb45f85344d520abbd7ca..0925518b58d06c436e794e576a35ef474d5df5aa 100644 (file)
@@ -24,7 +24,6 @@
 #include <linux/tty.h>
 #include <linux/ioport.h>
 #include <linux/delay.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/initrd.h>
 #include <linux/highmem.h>
index f5934cb4a2b60457e71f3ba1a109dc0b67cc66f0..6fe58a634b5f308df87021fe6bcdeca25925ce91 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright 2001, 2002, 2003 SuSE Labs / Andi Kleen.
  * See setup.c for older changelog.
  */ 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 540c0ccbcccc8953c95ee6b6c2baf5ad11e44aaf..9705a6a384f1c67c252defd24945f5546c0817d1 100644 (file)
@@ -38,7 +38,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <linux/mm.h>
index ecbd34c1093d0a03109a9c99fe7c9c1c61cf646a..91f7e678bae72e7f5e951919633ff15d6f12451a 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (c) 2001 Patrick Mochel <mochel@osdl.org>
  */
 
-#include <linux/config.h>
 #include <linux/smp.h>
 #include <linux/suspend.h>
 #include <asm/proto.h>
index 7c176b3edde00daab10dfaed6d954d7412d9541d..213fd6ab789d5954f5bbf3bc738745df36f8c6eb 100644 (file)
@@ -3,7 +3,6 @@
 #include <linux/linkage.h>
 #include <linux/sys.h>
 #include <linux/cache.h>
-#include <linux/config.h>
 
 #define __NO_STUBS
 
index 3d11a2fe45b7e0308986e2fdf144ef8fdef977c5..5a5311d3de0f7074a37b268918d629d6a9e6aed4 100644 (file)
@@ -12,7 +12,6 @@
  * 'Traps.c' handles hardware traps and faults after we have saved some
  * state in 'entry.S'.
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 1c6a5f32291920d33954a81cc0c3089a28a56bdd..7c4de31471d40ab2bd09ac04b79b83cb9ad6bead 100644 (file)
@@ -6,7 +6,6 @@
 
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/page.h>
-#include <linux/config.h>
 
 #undef i386    /* in case the preprocessor is a 32bit one */
 
index 2d78f9fb403542b72771075502c4c662cc06ca35..79ac6e7100af32675ee00c1177a622e9af583548 100644 (file)
@@ -2,7 +2,6 @@
  * linux/arch/x86_64/mm/extable.c
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/spinlock.h>
 #include <linux/init.h>
index 08dc696f54ee4543fe4aff4cf551f1f7253e2da3..5afcf6eb00fab9fb0627b177c514be964161639b 100644 (file)
@@ -5,7 +5,6 @@
  *  Copyright (C) 2001,2002 Andi Kleen, SuSE Labs.
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
@@ -418,7 +417,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
        /* When running in the kernel we expect faults to occur only to
         * addresses in user space.  All other faults represent errors in the
         * kernel and should generate an OOPS.  Unfortunatly, in the case of an
-        * erroneous fault occuring in a code path which already holds mmap_sem
+        * erroneous fault occurring in a code path which already holds mmap_sem
         * we will deadlock attempting to validate the fault against the
         * address space.  Luckily the kernel only validly references user
         * space from well defined areas of code, which are listed in the
index 95bd232ff0cf3d37fc3b5838e0b477666115aebb..72f140f81b70bfdc0d8b570b4be21a56557ee86c 100644 (file)
@@ -6,7 +6,6 @@
  *  Copyright (C) 2002,2003 Andi Kleen <ak@suse.de>
  */
 
-#include <linux/config.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 43e9b99bdf25d6419afce6e81bab3c361e5f174d..80bba0dc000e8e8fc6a09a72b43043e156cf4bcc 100644 (file)
@@ -1,7 +1,6 @@
 /* Copyright 2005 Andi Kleen, SuSE Labs.
  * Licensed under GPL, v.2
  */
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
 #include <linux/random.h>
index 531ad21447b1c95e4e5a9d9bc020f13784b01d7f..2685b1f3671c4f9fea8acdd8c1fcf42507b8d8e4 100644 (file)
@@ -3,7 +3,6 @@
  * Thanks to Ben LaHaise for precious feedback.
  */ 
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
 #include <linux/highmem.h>
index 7cba94abdab82a4274bee2e7fe74f2327fc48e9d..f857fc760aa87003102d54b50606a30395e2b7e9 100644 (file)
@@ -2,7 +2,6 @@
 #include <xtensa/config/specreg.h>
 #include <xtensa/config/core.h>
 
-#include <linux/config.h>
 #include <asm/bootparam.h>
 
 
index 356192a4d39d07c42966188a73c299cbb32e7ebc..cf5a93fb6a2e5ddc37071985f0dec68651c508f6 100644 (file)
@@ -24,7 +24,6 @@
  * assigned when the Xtensa processor is generated.
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/processor.h>
 
index 6e9b5225b8f665da51a394c7dffb2d0784a0b6b9..c07cb25229931b1198895c291947c59c8ce3e4e9 100644 (file)
@@ -16,7 +16,6 @@
  */
 
 #include <xtensa/cacheasm.h>
-#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 
index eda029fc897218a53d38a4f82a66db0a42272963..8709f8249d028d1109dcccfb10cfdecd89225f51 100644 (file)
@@ -17,7 +17,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/delay.h>
index a17930747f204046e7d0456d6382b485fa2c2dc6..69675f216062b5d00d343050e4fd1c5a22eea84c 100644 (file)
@@ -12,7 +12,6 @@
  * Chris Zankel <chris@zankel.net>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/time.h>
index 64a649eb883f2d4261ade0f4465549bad64d00fc..a7c4178c2a8c2a126bc689a0408df9a5f92d3edf 100644 (file)
@@ -16,7 +16,6 @@
  * Kevin Chea
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 4cc85285a70ac7324bb232f4d42274a944ebcaa7..5064d9383963282433ab4109fcc89eba2c6ccfad 100644 (file)
@@ -13,7 +13,6 @@
  * Marc Gauthier<marc@tensilica.com> <marc@alumni.uwaterloo.ca>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 513ed8d67766932305ca6cdef97f59fc8724f034..edb29410d9530b791816ef129337c9b0f510cf54 100644 (file)
@@ -14,7 +14,6 @@
  * Marc Gauthier<marc@tensilica.com> <marc@alumni.uwaterloo.ca>
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/proc_fs.h>
index f20c6494c5180c09d333b1ca1f9ddf903b8bfb06..4688ba2db84d5c46c8ae060bec50fe891454bf4b 100644 (file)
@@ -18,7 +18,6 @@
 
 #define DEBUG  0
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <linux/mm.h>
 #include <linux/smp.h>
index fe14909f45e057983c1100c5dab33359d718d7c6..4a2c365ba68464d32c03a4c6aa1c10c2e5b431d4 100644 (file)
@@ -12,7 +12,6 @@
  * Chris Zankel <chris@zankel.net>
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/time.h>
 #include <linux/timex.h>
index 5ed71dfc81105c5ecf2836db2e34b8884dcf4a1c..ab6cdbd5eb684ab9eb0f78b2bda2fff08c6a7a2b 100644 (file)
@@ -16,7 +16,6 @@
 
 #include <asm-generic/vmlinux.lds.h>
 
-#include <linux/config.h>
 #define _NOCLANGUAGE
 #include <xtensa/config/core.h>
 #include <xtensa/config/system.h>
index a15b6e3e72c86d2d097baf57cd664b23d0303a84..0b4cb93db5a3b070ca022990bd3a6dce9b31fc1b 100644 (file)
@@ -12,7 +12,6 @@
  * Joe Taylor <joe@tensilica.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/mm.h>
index e1be4235f3671a256ba89be01b45c9c4ff8c6a0a..660ef058c14944d133abff3ac49e663445367b42 100644 (file)
@@ -15,7 +15,6 @@
  * Kevin Chea
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
index 2a580efb58ecab0425827934802c01565dfeacb4..22d3c571a7bc70c8927b19cd17ec19990185a3e3 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/console.h>
index 0dc55cc8691bf1cd3917daa10ec38d1f38109a56..d96164e602fea496c7b33b35d4e685261eef7647 100644 (file)
@@ -16,7 +16,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/list.h>
 #include <linux/irq.h>
 #include <linux/spinlock.h>
index 23790a5610e2ac2b0bd436bc299a69d9b18c46d3..c8a42b60c57af50f5838c8ae09969b2fd76e77c5 100644 (file)
@@ -15,7 +15,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 3af31ed49a9c250518e73a5f95818d725c22c409..5da56d48fbd36473ba92fb346a91d06dbea148a1 100644 (file)
@@ -10,7 +10,6 @@
 #include <linux/blkdev.h>
 #include <linux/elevator.h>
 #include <linux/bio.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/init.h>
index 36f3a172275f89fbd1dca4692164cdca0127eced..92925e7d9e6cb98af23ac11f6b1dfc1d3f4244f9 100644 (file)
@@ -15,7 +15,6 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/blkdev.h>
 #include <linux/blktrace_api.h>
index e25223e147a2a5e336a1a430dde49b3e43f00283..102ebc2c5c34c73f8e7f76c589559ddfde0d9885 100644 (file)
@@ -6,7 +6,6 @@
  *
  *  Copyright (C) 2003 Jens Axboe <axboe@suse.de>
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/blkdev.h>
 #include <linux/elevator.h>
index 4469dd84623cc645b641dce21caaa3fddd270227..c7ca9f0b64989cdda8a16a56593fd52f2a251470 100644 (file)
@@ -8,7 +8,6 @@
 #include <linux/blkdev.h>
 #include <linux/elevator.h>
 #include <linux/bio.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/init.h>
index d00b283f31d21fdb5256754b75336e1005fb7eed..bc7baeec0d102014c07ec7308d54dbc2161e4ba9 100644 (file)
@@ -27,7 +27,6 @@
 #include <linux/blkdev.h>
 #include <linux/elevator.h>
 #include <linux/bio.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/init.h>
index 8d7339511e5e962dfccca43298a06e24a48df846..25d1f42568cc19714a2f8a5469ecd2842e9ea7e5 100644 (file)
@@ -2,7 +2,6 @@
  *  gendisk handling
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/fs.h>
 #include <linux/genhd.h>
index eee03a3876a3f2f875260b64c1c0bc51267219a3..5813d63c20afba7ed7d993ce47f1cb66f037d6fc 100644 (file)
@@ -10,7 +10,6 @@
 /*
  * This handles all read/write requests to block devices
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/backing-dev.h>
@@ -3117,9 +3116,9 @@ void submit_bio(int rw, struct bio *bio)
        BIO_BUG_ON(!bio->bi_io_vec);
        bio->bi_rw |= rw;
        if (rw & WRITE)
-               mod_page_state(pgpgout, count);
+               count_vm_events(PGPGOUT, count);
        else
-               mod_page_state(pgpgin, count);
+               count_vm_events(PGPGIN, count);
 
        if (unlikely(block_dump)) {
                char b[BDEVNAME_SIZE];
index 073add35e66f3c5208a1f5989bf9fc3633888077..a0ff25ea439f2c630033ad48d8b7f5ef1918c5c1 100644 (file)
@@ -3,7 +3,7 @@
 #
 
 menu "Acorn-specific block devices"
-       depends on ARCH_ACORN
+       depends on ARCH_ARC || ARCH_A5K
 
 config BLK_DEV_FD1772
        tristate "Old Archimedes floppy (1772) support"
index ce074f6f3369c338e16828fde64f0864cc8a00d2..d9c9a35961b34cfc6cccb132127d7e7d69cf7150 100644 (file)
@@ -99,7 +99,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/fs.h>
 #include <linux/interrupt.h>
index 2c626e81a289f35cba940dfaeb5f7148f911227b..84a68965c11ad38e475445cf1f318cc09ab05f15 100644 (file)
@@ -248,7 +248,7 @@ static int acpi_memory_enable_device(struct acpi_memory_device *mem_device)
                num_enabled++;
        }
        if (!num_enabled) {
-               ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "\nadd_memory failed\n"));
+               printk(KERN_ERR PREFIX "add_memory failed\n");
                mem_device->state = MEMORY_INVALID_STATE;
                return -EINVAL;
        }
index 13d6d5bdea264f16dbe6239d2cde0a5b5d5daa20..4d622981f61ae4c2707d1123c4217f3fbff89b51 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index c68b1bb138c3bfd9c14485477424bfd6e66cf046..d4bd314d60baab5d02cac35612d78c5970411a26 100644 (file)
@@ -25,7 +25,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
index fb96e3bf969bbedba937d0c948c1c4c47f499a41..feda0341f5a73b5a921c6d858de94bf9babfbc4b 100644 (file)
@@ -24,7 +24,6 @@
  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  */
 
-#include <linux/config.h>
 
 #include <linux/kernel.h>
 #include <linux/module.h>
index a05b3dfb5cc5c71627868cf7fc7e29b55b001759..5fcb50c7b77802d135cbbe1368f96e8fabd6877e 100644 (file)
@@ -1433,7 +1433,7 @@ static int acpi_device_resume(struct device * dev)
 }
 
 
-struct bus_type acpi_bus_type = {
+static struct bus_type acpi_bus_type = {
        .name           = "acpi",
        .suspend        = acpi_device_suspend,
        .resume         = acpi_device_resume,
index ed5e8816d83d4c5e9fe03ce20cd754dc1de97739..bfb3bfcf9e91017a4d35ec51b073076c7f724829 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index d1387cfe2d30e2ef96914dddd1e0f2ead5650c09..6cc93de0b71d120bcae769c97d9a477d1612caa6 100644 (file)
@@ -2,7 +2,6 @@
  * adummy.c: a dummy ATM driver
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/version.h>
 #include <linux/kernel.h>
index 84a93063cfe1a9e54cf3a9665faa1600fe9d92e0..8296420ceaef3a59a422d240efb3e424f9fba8c1 100644 (file)
@@ -23,7 +23,6 @@
 #ifndef AMBASSADOR_H
 #define AMBASSADOR_H
 
-#include <linux/config.h>
 
 #ifdef CONFIG_ATM_AMBASSADOR_DEBUG
 #define DEBUG_AMBASSADOR
index c13c4d736ef56911324acb025b91bbe4bde0279e..976ced1f019e511bce61bf16da8b1b3c8e068ba7 100644 (file)
@@ -4,7 +4,6 @@
  
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/pci.h>
index 92923bf272332bb9341130edc00eead478aa5d8d..9be9a4055199659e1f6130e335a81b21d01ab0a6 100644 (file)
@@ -25,7 +25,6 @@
 */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
 #include <linux/init.h>
index 2558eb853235442bc6931c7e40834835c7bf1e0a..f9abfdac33e44820d68897d975315fae91e97d29 100644 (file)
@@ -3,7 +3,6 @@
 #define _FORE200E_H
 
 #ifdef __KERNEL__
-#include <linux/config.h>
 
 /* rx buffer sizes */
 
index fde9334059af595428f3f871599a538e3c3a29b0..a5cbd3d6e50f2680c98adb489619c857f1fcf076 100644 (file)
@@ -55,7 +55,6 @@
 
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/skbuff.h>
@@ -1018,7 +1017,7 @@ he_init_irq(struct he_dev *he_dev)
        return 0;
 }
 
-static int __init
+static int __devinit
 he_start(struct atm_dev *dev)
 {
        struct he_dev *he_dev;
index e2cc7020fa3ba54c21851708496b4195a0ec33c2..4461229f56a54cf8aaa6c3df5b91bfe3aa62f519 100644 (file)
@@ -30,7 +30,6 @@
 #ifndef DRIVER_ATM_HORIZON_H
 #define DRIVER_ATM_HORIZON_H
 
-#include <linux/config.h>
 
 #ifdef CONFIG_ATM_HORIZON_DEBUG
 #define DEBUG_HORIZON
index 0aabfc2a59d9e42a574673772a34765dc64f5ab6..325325afabec839302521e16c09ec78532bdfeba 100644 (file)
@@ -358,7 +358,7 @@ static const struct atmphy_ops idt77105_ops = {
 };
 
 
-int idt77105_init(struct atm_dev *dev)
+int __devinit idt77105_init(struct atm_dev *dev)
 {
        dev->phy = &idt77105_ops;
        return 0;
index 8ba8218aaefe0c60a29ed2ba7111e27e1e6a66b1..3fd2bc8997618b787825a7e55deb5ff9240fdd45 100644 (file)
@@ -76,7 +76,7 @@
 #define IDT77105_CTRSEL_RHEC   0x01    /* W, Rx HEC Error Counter */
 
 #ifdef __KERNEL__
-int idt77105_init(struct atm_dev *dev) __init;
+int idt77105_init(struct atm_dev *dev);
 #endif
 
 /*
index b4a76cade646badde872e6895c07c97339465a22..8fdb30116f995962a67ca7a32e41a3167fb47c94 100644 (file)
@@ -34,7 +34,6 @@ static char const rcsid[] =
 
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/skbuff.h>
 #include <linux/kernel.h>
index 2e2e50e1167a3b59f31a809bfbea43992b19b478..333a7bc609d24b0337bdb2d928ebd8f3d2d57b56 100644 (file)
@@ -2284,7 +2284,7 @@ static int reset_sar(struct atm_dev *dev)
 }  
          
          
-static int __init ia_init(struct atm_dev *dev)
+static int __devinit ia_init(struct atm_dev *dev)
 {  
        IADEV *iadev;  
        unsigned long real_base;
@@ -2480,7 +2480,7 @@ static void ia_free_rx(IADEV *iadev)
                          iadev->rx_dle_dma);  
 }
 
-static int __init ia_start(struct atm_dev *dev)
+static int __devinit ia_start(struct atm_dev *dev)
 {  
        IADEV *iadev;  
        int error;  
index b8d0bd4d6c307d01ff934867b94f57a3af3650f5..133eefcc047507376977417dd056ae6bf4de8ea9 100644 (file)
@@ -43,7 +43,6 @@
 #ifndef IPHASE_H  
 #define IPHASE_H  
 
-#include <linux/config.h>
 
 /************************ IADBG DEFINE *********************************/
 /* IADebugFlag Bit Map */ 
index 074abc81ec3d099cc7353c1a2568bec68f005aaa..b78612d3fa46ce64d52a8c72bb9ed19d75caac67 100644 (file)
@@ -36,7 +36,6 @@
 /* Header files ***************************************************************/
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/skbuff.h>
 #include <linux/atmdev.h>
index b1d063cc4fbe0f6903359bf3328566e0e50aee93..f04f39c00833cc86dc572f6b00e32e8f0204c903 100644 (file)
@@ -289,7 +289,7 @@ static const struct atmphy_ops suni_ops = {
 };
 
 
-int suni_init(struct atm_dev *dev)
+int __devinit suni_init(struct atm_dev *dev)
 {
        unsigned char mri;
 
index f484747f255e0121199ae60ac4796abb4ef19b1f..1699c934bad0d8baeb93b2dc53916f6a4bc43e46 100644 (file)
@@ -3,7 +3,6 @@
 /* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 416fe0fda60cede4b3ad969eda2151b15188a755..ae9165ce15a0a2f2b3b9050bd15e02c95d8bc717 100644 (file)
@@ -6,7 +6,6 @@
 #ifndef DRIVER_ATM_ZATM_H
 #define DRIVER_ATM_ZATM_H
 
-#include <linux/config.h>
 #include <linux/skbuff.h>
 #include <linux/atm.h>
 #include <linux/atmdev.h>
index 050d86d0b872880c11807e9ece9bfd8f6b793377..83fa8b291a59ebdbcdf036cb331d86a9fe564a85 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/device.h>
 #include <linux/module.h>
 #include <linux/errno.h>
index 9aa1274602625fa6beb6c463838d77a770800919..de8908320f235f0d92b9a21b7cea4b9ea96375c7 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/device.h>
 #include <linux/module.h>
 #include <linux/init.h>
index 27c2176895dee0ccb5efd195d008f8a0333a0904..b21f864c9ce8810a6c16f0e091395dfffb1e545a 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/device.h>
 #include <linux/err.h>
 #include <linux/init.h>
index b400314e1c62d46d9d2dc047cb76a08292b7f9ff..562600dd540a942a08b49277f06209b016fb8d07 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/device.h>
 #include <linux/module.h>
 #include <linux/errno.h>
index eae2bdc183bb7741a85c23f086d156c95b1d0317..d7de1753e09412198db9707cab7dd8484eeab2d8 100644 (file)
@@ -40,24 +40,13 @@ static ssize_t node_read_meminfo(struct sys_device * dev, char * buf)
        int n;
        int nid = dev->id;
        struct sysinfo i;
-       struct page_state ps;
        unsigned long inactive;
        unsigned long active;
        unsigned long free;
 
        si_meminfo_node(&i, nid);
-       get_page_state_node(&ps, nid);
        __get_zone_counts(&active, &inactive, &free, NODE_DATA(nid));
 
-       /* Check for negative values in these approximate counters */
-       if ((long)ps.nr_dirty < 0)
-               ps.nr_dirty = 0;
-       if ((long)ps.nr_writeback < 0)
-               ps.nr_writeback = 0;
-       if ((long)ps.nr_mapped < 0)
-               ps.nr_mapped = 0;
-       if ((long)ps.nr_slab < 0)
-               ps.nr_slab = 0;
 
        n = sprintf(buf, "\n"
                       "Node %d MemTotal:     %8lu kB\n"
@@ -71,7 +60,12 @@ static ssize_t node_read_meminfo(struct sys_device * dev, char * buf)
                       "Node %d LowFree:      %8lu kB\n"
                       "Node %d Dirty:        %8lu kB\n"
                       "Node %d Writeback:    %8lu kB\n"
+                      "Node %d FilePages:    %8lu kB\n"
                       "Node %d Mapped:       %8lu kB\n"
+                      "Node %d AnonPages:    %8lu kB\n"
+                      "Node %d PageTables:   %8lu kB\n"
+                      "Node %d NFS Unstable: %8lu kB\n"
+                      "Node %d Bounce:       %8lu kB\n"
                       "Node %d Slab:         %8lu kB\n",
                       nid, K(i.totalram),
                       nid, K(i.freeram),
@@ -82,10 +76,15 @@ static ssize_t node_read_meminfo(struct sys_device * dev, char * buf)
                       nid, K(i.freehigh),
                       nid, K(i.totalram - i.totalhigh),
                       nid, K(i.freeram - i.freehigh),
-                      nid, K(ps.nr_dirty),
-                      nid, K(ps.nr_writeback),
-                      nid, K(ps.nr_mapped),
-                      nid, K(ps.nr_slab));
+                      nid, K(node_page_state(nid, NR_FILE_DIRTY)),
+                      nid, K(node_page_state(nid, NR_WRITEBACK)),
+                      nid, K(node_page_state(nid, NR_FILE_PAGES)),
+                      nid, K(node_page_state(nid, NR_FILE_MAPPED)),
+                      nid, K(node_page_state(nid, NR_ANON_PAGES)),
+                      nid, K(node_page_state(nid, NR_PAGETABLE)),
+                      nid, K(node_page_state(nid, NR_UNSTABLE_NFS)),
+                      nid, K(node_page_state(nid, NR_BOUNCE)),
+                      nid, K(node_page_state(nid, NR_SLAB)));
        n += hugetlb_report_node_meminfo(nid, buf + n);
        return n;
 }
@@ -95,28 +94,6 @@ static SYSDEV_ATTR(meminfo, S_IRUGO, node_read_meminfo, NULL);
 
 static ssize_t node_read_numastat(struct sys_device * dev, char * buf)
 {
-       unsigned long numa_hit, numa_miss, interleave_hit, numa_foreign;
-       unsigned long local_node, other_node;
-       int i, cpu;
-       pg_data_t *pg = NODE_DATA(dev->id);
-       numa_hit = 0;
-       numa_miss = 0;
-       interleave_hit = 0;
-       numa_foreign = 0;
-       local_node = 0;
-       other_node = 0;
-       for (i = 0; i < MAX_NR_ZONES; i++) {
-               struct zone *z = &pg->node_zones[i];
-               for_each_online_cpu(cpu) {
-                       struct per_cpu_pageset *ps = zone_pcp(z,cpu);
-                       numa_hit += ps->numa_hit;
-                       numa_miss += ps->numa_miss;
-                       numa_foreign += ps->numa_foreign;
-                       interleave_hit += ps->interleave_hit;
-                       local_node += ps->local_node;
-                       other_node += ps->other_node;
-               }
-       }
        return sprintf(buf,
                       "numa_hit %lu\n"
                       "numa_miss %lu\n"
@@ -124,12 +101,12 @@ static ssize_t node_read_numastat(struct sys_device * dev, char * buf)
                       "interleave_hit %lu\n"
                       "local_node %lu\n"
                       "other_node %lu\n",
-                      numa_hit,
-                      numa_miss,
-                      numa_foreign,
-                      interleave_hit,
-                      local_node,
-                      other_node);
+                      node_page_state(dev->id, NUMA_HIT),
+                      node_page_state(dev->id, NUMA_MISS),
+                      node_page_state(dev->id, NUMA_FOREIGN),
+                      node_page_state(dev->id, NUMA_INTERLEAVE_HIT),
+                      node_page_state(dev->id, NUMA_LOCAL),
+                      node_page_state(dev->id, NUMA_OTHER));
 }
 static SYSDEV_ATTR(numastat, S_IRUGO, node_read_numastat, NULL);
 
index 0d2e101e4f158c60b88f66db966d5047b2dc05ed..fdfa3d0cf6afa6f0bf2fb247f54333abfab8f1fc 100644 (file)
@@ -19,7 +19,6 @@
  * ancestral dependencies that the subsystem list maintains.
  */
 
-#include <linux/config.h>
 #include <linux/device.h>
 #include "power.h"
 
index 8826a5b6673eb9e4dfae4bb0d0b53126b77e4119..3483ae4d57f59a09025d8d0c49d2100ea72c81ee 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/device.h>
 #include <asm/semaphore.h>
 
index 6858178b3aff8d28e727e2d487adf289817324bd..04e5db445c74005a95a03c0c02de31df40aeabe0 100644 (file)
@@ -12,7 +12,6 @@
  * add themselves as children of the system bus.
  */
 
-#include <linux/config.h>
 #include <linux/sysdev.h>
 #include <linux/err.h>
 #include <linux/module.h>
index a317e43039526ab586eae5a1f2bb73a9fe31345c..0b80fbb8dbfde08fa393d306432b647ef0ebf687 100644 (file)
@@ -43,7 +43,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
index 013c5daddb0b3bfc1163506a0be14961c9ac32e1..7b3b94ddddccb4aaf5cab64e6e94923ab2fb6c49 100644 (file)
@@ -50,7 +50,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/sched.h>
index ce94aa11f6a7020d900a5e07def3959479366ea6..4b258f7836f32f0b99b2f0607e3986a7bdebcbd1 100644 (file)
@@ -21,7 +21,6 @@
 #define PI_VERSION      "1.06"
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/kmod.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 3e4cce5e4736351befab56db81c42527223dade8..bde2c64b634660b0a49057b127ce5e05a97c8cc1 100644 (file)
@@ -44,7 +44,6 @@
  *************************************************************************/
 
 #include <linux/pktcdvd.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index a729013a39737b24541a999f38950c7206ae6181..aef5a0ccabc9a045ee2417c4b993cca9b10e8728 100644 (file)
@@ -29,7 +29,6 @@
 
 #define DEVICE_NAME "PS/2 ESDI"
 
-#include <linux/config.h>
 #include <linux/major.h>
 #include <linux/errno.h>
 #include <linux/wait.h>
index a9e1c2524c2a9c99b93b36c544e716eb299cdc7f..3cf246abb5ecd09ccc4de255a60f4982cc7e1e8e 100644 (file)
@@ -42,7 +42,6 @@
  * and set blk_size for -ENOSPC,     Werner Fink <werner@suse.de>, Apr '99
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/slab.h>
 #include <asm/atomic.h>
index 628877945f9badbae4f529f63e2add13292d35cf..3721e12135d9c5ce6e13811c55be65653cce7c4d 100644 (file)
@@ -16,7 +16,6 @@
  * handle GCR disks
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 585197b95af762118d5692b0d5303b713f95f472..f675f97f2a7864469bf715d7cf140f1f0034969e 100644 (file)
@@ -35,7 +35,6 @@
  */
 
 //#define DEBUG /* uncomment if you want debugging info (pr_debug) */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/fs.h>
 #include <linux/bio.h>
index 3e7a067cc0871dafce5f0427f2690c383983a2c3..6f67141f4de0fbcc3b0d5461fb0a7766b7e627ff 100644 (file)
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index 8947c8837dacf8bc64ebf202e87f1da87b58e730..23f96213f4acad7e9c5f72b51e1e392e22a208c8 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index 473a13b22b298e09a20f63749e8ce9f2d576f06f..2830f58d6f779453bf9cdc434e188e77415ad0a3 100644 (file)
@@ -20,7 +20,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index 9446960ac742914f3c912eb15a2870bb4dc42432..e0231dc2cb1a87a4d14425b22e2dbc0d0f8631b0 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index b94ac2f9f7baf2d5e9cc0641e52de23cd1536d13..c9dba5565caceacca71d53092bb7759540a32244 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index 9ce4c93467e57da73794711497e80936baaeaf3d..c889bf8109a152de59c57367cdd17b5c56bb3606 100644 (file)
@@ -20,7 +20,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index ed8dca84ff690a9a9918fdf1f19ef6788ab3a441..be6eed175aa3ff74dea2291a3d9bc6b5af0520ae 100644 (file)
@@ -20,7 +20,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index 7bd4ef90411542f6996596ae0f36d9a0880d22de..d0cface535fb33e851aeab4548c2bcd6097340dd 100644 (file)
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index 4804d474dc8735d4a2365258385551134134c616..ad62abbbb739ae797560fa26391d6afa2a04a2ff 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index 613673b12fa6711cb8b749c8aea03cc0fc1c7b01..1994270c16e1992536380b620ef70afcf33c28bb 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index 92382e8232855188a1f588a739c5c98a03b055ef..a7d9d7e99e7244bdc8aa0b2771864e435c3bb959 100644 (file)
@@ -31,7 +31,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index 85738223ff0c47648c50b5985652baa0e1387e87..ea589007fa260e903a13cb47ec06ab889c232fc2 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index 3170eaa250873bf5f0dae15b88aacf66d2a3ef1e..ca27ee89240babcc1fac21f505973670e2e96855 100644 (file)
 /* #define ERRLOGMASK (CD_WARNING|CD_OPEN|CD_COUNT_TRACKS|CD_CLOSE) */
 /* #define ERRLOGMASK (CD_WARNING|CD_REG_UNREG|CD_DO_IOCTL|CD_OPEN|CD_CLOSE|CD_COUNT_TRACKS) */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/fs.h>
 #include <linux/buffer_head.h>
index 4ee288688fed492378f87fb2f10c1fdcf587fe7d..9b05ddd23141dbd4acb8b53b7bef3589de587cf4 100644 (file)
@@ -914,7 +914,7 @@ static void seek(int lba)
        cd->dsb = wait_dsb();
 }
 
-uch bcdbin(unsigned char bcd)
+static uch bcdbin(unsigned char bcd)
 {                              /* stolen from mcd.c! */
        return (bcd >> 4) * 10 + (bcd & 0xf);
 }
@@ -1532,7 +1532,7 @@ static void __init parse_options(void)
        }
 }
 
-static int __cm206_init(void)
+static int __init __cm206_init(void)
 {
        parse_options();
 #if !defined(AUTO_PROBE_MODULE)
@@ -1593,8 +1593,3 @@ __setup("cm206=", cm206_setup);
 #endif                         /* !MODULE */
 MODULE_ALIAS_BLOCKDEV_MAJOR(CM206_CDROM_MAJOR);
 
-/*
- * Local variables:
- * compile-command: "gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DMODULE -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h  -c -o cm206.o cm206.c"
- * End:
- */
index 2fc966c65a0e4458293150c62cba30eda352e659..ba50e5a712f23fe2fe68511274fb7f3cc1d8dbec 100644 (file)
 #include <asm/io.h>
 #include <asm/uaccess.h>
 #include <stdarg.h>
-#include <linux/config.h>
 #include "sbpcd.h"
 
 #define MAJOR_NR MATSUSHITA_CDROM_MAJOR
index f74eeeb8e37709167933ac53c3b7e23c41f2488f..8cd52984cda5230b8ecbf93561801cfc72b8977d 100644 (file)
@@ -8,7 +8,6 @@
  * work is done in the northbridge(s).
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/init.h>
index a92ab53a13703bc4c7df95380613ab2062166503..cc5ea347a8a7899a9e3228289697a2cd88378839 100644 (file)
@@ -27,7 +27,6 @@
  * TODO:
  * - Allocate more than order 0 pages to avoid too much linear map splitting.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/init.h>
index 6602b3156df590a0a0057154d45fbda371259361..3e7dc7cbd74014d8983f24a961bdc5dc0cac8ca8 100644 (file)
@@ -31,7 +31,6 @@
  *             ever possible.
  */
 
-#include <linux/config.h>
 #include <linux/delay.h>
 
 #undef SERIAL_PARANOIA_CHECK
index c85a4fa60da7e235b207a6ba84d305928ec1e142..04a12027a740a57dea956fd3abbba1785739500e 100644 (file)
@@ -11,7 +11,6 @@
  * Fix bug in inverse translation. Stanislav Voronyi <stas@cnti.uanet.kharkov.ua>, Dec 1998
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kd.h>
 #include <linux/errno.h>
index 2657eeba7da63aec1bce32abe8e45a5a4fcb89a0..1f61a6744a269f4f02ad5e4fd82dbe1f0fa5919b 100644 (file)
@@ -633,7 +633,6 @@ static char rcsid[] =
 /*
  * Include section 
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
index aa1440934e95acd1b0d0a64dd815aa3b5f14876b..85f404e25c7364d2a176b2ba2d75aa9d735da57e 100644 (file)
@@ -16,7 +16,6 @@
  *      console device I strongly recommend to use only one.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/dec/machtype.h>
 
index 9da0ddb892b58fd3a0db271797ed80d378d27c6f..5642ac43e0f5fd84da2682b57d7ada29c81b3a1d 100644 (file)
@@ -38,7 +38,6 @@
 
 #if defined(__linux__)
 #if defined(__KERNEL__)
-#include <linux/config.h>
 #endif
 #include <asm/ioctl.h>         /* For _IO* macros */
 #define DRM_IOCTL_NR(n)                _IOC_NR(n)
index cb76e5ca9a23eed527b196a05158f09975f0addf..d2a56182bc35786a08c681abb273fea450e3abdd 100644 (file)
@@ -44,7 +44,6 @@
  * can build the DRM (part of PI DRI). 4/21/2000 S + B */
 #include <asm/current.h>
 #endif                         /* __alpha__ */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/miscdevice.h>
index 7e3318e1d1c655c2d93682ffbf910cc5aa78d8f0..5681cae1d404980fb9a2c123912e6d836778a5ee 100644 (file)
@@ -33,7 +33,6 @@
  * OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include <linux/config.h>
 #include <linux/highmem.h>
 #include "drmP.h"
 
index 714d9aedcff5dd38200eaf18dfcf029f1a36722c..f1b97aff10cf65eb8304651dc776ccd3693271e9 100644 (file)
@@ -33,7 +33,6 @@
  * OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include <linux/config.h>
 #include <linux/highmem.h>
 #include <linux/vmalloc.h>
 #include "drmP.h"
index d117cc9971922f5ec8a6c713da435221c4eb2af7..74581af806e11d073e8b1ac6b5d29c6bdb0cea31 100644 (file)
@@ -31,7 +31,6 @@
  * OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include <linux/config.h>
 #include "drmP.h"
 
 typedef struct drm_mem_stats {
index ce81bf248200d619a097a6e2e564774b9ded3d6a..06ef7ddbe67d7f091e7706cdb70bb21389750e5a 100644 (file)
@@ -31,7 +31,6 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#include <linux/config.h>
 #include <linux/vmalloc.h>
 #include "drmP.h"
 
index 0b9f98a7eb10b1e2528e763be712f7e56c4c8911..51ad98c685c3d9d102e0a0ae92e7c3c444780d98 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/device.h>
 #include <linux/kdev_t.h>
 #include <linux/err.h>
index c13f9abb41e9b2f3ad88a8303e525ebf874b35d5..dd45111a48547619063d30dfdadd2eb2c78a81ba 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 2000 David S. Miller (davem@redhat.com)
  */
 
-#include <linux/config.h>
 #include "ffb.h"
 #include "drmP.h"
 
index dfe6ad2b6a6e22ef23bf20dfe4c41064ae4a42e6..fabb9a817966cecde6b4f0ff5e83c8e36d1b8ea9 100644 (file)
@@ -30,7 +30,6 @@
  *    Gareth Hughes <gareth@valinux.com>
  */
 
-#include <linux/config.h>
 #include "drmP.h"
 #include "drm.h"
 #include "i810_drm.h"
index 722658188f5f45619ec8515c6214979f458dde93..389597e4a623281b1c7db76766ddd9b52b15f791 100644 (file)
@@ -32,7 +32,6 @@
  *    Keith Whitwell <keith@tungstengraphics.com>
  */
 
-#include <linux/config.h>
 #include "drmP.h"
 #include "drm.h"
 #include "i830_drm.h"
index 9f7ed0e0351b0c39cab6751c97df2b5694b5a872..e30f556b79f10b1a82c372c9cd8969d1aabce830 100644 (file)
@@ -29,7 +29,6 @@
  *    Gareth Hughes <gareth@valinux.com>
  */
 
-#include <linux/config.h>
 #include "drmP.h"
 #include "drm.h"
 #include "mga_drm.h"
index e20450ae220e3d8d109b12cbc4ac481f54842be9..6108e7587e12470daba9576ef185458f5fc545c1 100644 (file)
@@ -29,7 +29,6 @@
  *    Gareth Hughes <gareth@valinux.com>
  */
 
-#include <linux/config.h>
 #include "drmP.h"
 #include "drm.h"
 #include "r128_drm.h"
index b04ed1b562b9509c7e83635888c8f44baf6ae07b..eb985c2a31e96b3a81ac2ae3ef37357834cb2fb7 100644 (file)
@@ -29,7 +29,6 @@
  * OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include <linux/config.h>
 #include "drmP.h"
 #include "drm.h"
 #include "radeon_drm.h"
index aa6c0d1a82f87caec7ae419ccee64cf51261634b..eee52aa92a7c9942fc937c377d684ea1bb799c7b 100644 (file)
@@ -23,7 +23,6 @@
  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include <linux/config.h>
 #include "drmP.h"
 #include "savage_drm.h"
 #include "savage_drv.h"
index 6f6d7d613ede7dbcade3db4d04988a1c96dfc950..5e9dc86f2956f5ed93683ca618f375b9917e03b2 100644 (file)
@@ -25,7 +25,6 @@
  *
  */
 
-#include <linux/config.h>
 #include "drmP.h"
 #include "sis_drm.h"
 #include "sis_drv.h"
index baa4416032a82f053214e34dbf82203ebdc43361..012ff2e356b2a7574a1c15dad979884bd39bea80 100644 (file)
@@ -30,7 +30,6 @@
  *    Gareth Hughes <gareth@valinux.com>
  */
 
-#include <linux/config.h>
 #include "drmP.h"
 #include "tdfx_drv.h"
 
index 3f012255d31532e9181d7880bc2e2f27539c6040..b3d364d793d748bf06eeb9833fbada3b38dff0b0 100644 (file)
@@ -22,7 +22,6 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#include <linux/config.h>
 #include "drmP.h"
 #include "via_drm.h"
 #include "via_drv.h"
index a75e8609be01f65f605d13a8f063ac6f5f93496d..625e8b51700558e85856d35898caa5a2de7e8b86 100644 (file)
@@ -12,7 +12,6 @@
 *!
 *!***************************************************************************/
 
-#include <linux/config.h>
 
 #include <linux/fs.h>
 #include <linux/init.h>
index 62cda25724e30d6501870683c53849f5d8e273a5..953e670dcd09ce0e17590bdd0c1983de1d356d86 100644 (file)
@@ -2,7 +2,6 @@
  * linux/drivers/char/ds1620.c: Dallas Semiconductors DS1620
  *   thermometer driver (as used in the Rebel.com NetWinder)
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/miscdevice.h>
index 4aed66968821db9d978fa646558fe1e8d6844f39..abac18b1871c5a7102ea15d9b69f39e9dc461875 100644 (file)
@@ -26,7 +26,6 @@
  * (prumpf@tux.org).
  */
 
-#include <linux/config.h>
 
 #include <linux/spinlock.h>
 #include <linux/sched.h>
index d0b3890d93021165572b53ef876f01729704ffb3..86d290e9f307044041fed353cf6bca3ed0cc44cc 100644 (file)
@@ -30,7 +30,6 @@
 /* See README.epca for change history --DAT*/
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 956b2586e138a150e385e7fda9fb93c464fb177e..8e50bfd35a5279781b2d08210480d27fbbc9da79 100644 (file)
@@ -24,7 +24,6 @@
  *      functions.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/jiffies.h>
 #include <asm/system.h>
index 32e0439117900d1cb21aaae87bbf9750590b536c..5d7c1ce92d597a4371042016f180587c3fdfba94 100644 (file)
@@ -25,7 +25,6 @@
  *      QIC-40/80/3010/3020 floppy-tape driver "ftape" for Linux.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/mm.h>
 #include <linux/mman.h>
index b54260d457c2a73eaa25c723c15244edb2b759a1..4998132a81d1f772a2f89371869264d085301558 100644 (file)
@@ -21,7 +21,6 @@
  *      for the QIC-40/80/3010/3020 floppy-tape driver for Linux.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
index c66251e997ed528037c4154008e03335bf2dd62a..e805b15e0a1239afd81ef8b63298ab3e4369a257 100644 (file)
@@ -26,7 +26,6 @@
  *     Old code removed, switched to dynamic proc entry.
  */
 
-#include <linux/config.h>
 
 #if defined(CONFIG_PROC_FS) && defined(CONFIG_FT_PROC_FS)
 
index 280a1a55d87ea280d575f27812dddc9619f72562..678340acd0b732141cb78fc23e0bc2345d718103 100644 (file)
@@ -25,7 +25,6 @@
  *      "ftape" for Linux.
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/errno.h>
 #include <linux/mm.h>
index fa7cd20ee66c78714ebfade3998cacc6cdefea9d..2950810c708502c7f30801b35aa6368bab3a51e3 100644 (file)
@@ -28,7 +28,6 @@
  *      QIC-40/80/3010/3020 floppy-tape driver "ftape" for Linux.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 
 /*
index 5dc3a380c9bf3d05fb47a0c997d853af6bbe92c3..8e0dc4a07ca600d93552142cccf1678fdf11a331 100644 (file)
@@ -25,7 +25,6 @@
  *      exports to its high level clients
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/ftape.h>
index 6c7874e5c199ec32f5ae8297fb0e41d0d9cc2804..22ba0f5d00cfbbd74cbff390352020dd86c438dd 100644 (file)
@@ -24,7 +24,6 @@
  *      for the QIC-40/80/3010/3020 floppy-tape driver for Linux.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/mm.h>
 #include <linux/module.h>
index 4141598919906a3871a160b82f170d3fffc74ef2..8e6f2d7ac74ec26f29f59a906dd2ca3b73ed40be 100644 (file)
@@ -27,7 +27,6 @@
  *      for the QIC-40/80 floppy-tape driver for Linux.
  */
 
-#include <linux/config.h>
 #include <linux/ioctl.h>
 #include <linux/mtio.h>
 
index 3eeb869a9a11f22dca28bff078f5d9ae96998c77..55272566b740c5f620c4634f148f74d222fb2268 100644 (file)
@@ -20,7 +20,6 @@
  *      to the ftape floppy tape driver for Linux
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
index 588fca542a98ba514ebc6cfd2b6fa731351c7d25..bebd7e34f792714b5126ebd0429e0adb67a7ca36 100644 (file)
@@ -43,7 +43,6 @@
 #define RTC_VERSION    "1.07"
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/miscdevice.h>
 #include <linux/fcntl.h>
index 07473cd84121b54c66fc47d7776d4d64d6eb02bf..8b6c76f8ef0e8178de8664fcb26a470ef1867594 100644 (file)
@@ -11,7 +11,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 6e380aecea6a3ba04ecf53bb80a9009027b70894..859e5005c785ae8cf23c49be41c9ed3cc4272a6f 100644 (file)
@@ -22,7 +22,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  */
 
-#include <linux/config.h>
 #include <linux/console.h>
 #include <linux/cpumask.h>
 #include <linux/init.h>
index 510b026d7d261c95f9b6603b8e6739580da5ec52..5eabe47b0bc842f4abc60599b561dfa7229fbcdf 100644 (file)
@@ -47,7 +47,6 @@
 //----------------------
 // Mandatory Includes:
 //----------------------
-#include <linux/config.h>
 #include "ip2types.h"
 #include "i2hw.h"       // The hardware definitions
 
index 8619542766cb28cfdda56efc600c97bbe7afe4e8..f9aa53c76f9911de2bbc50f92f218858c78ae9b7 100644 (file)
@@ -82,7 +82,6 @@
 /************/
 /* Includes */
 /************/
-#include <linux/config.h>
 
 #include <linux/ctype.h>
 #include <linux/string.h>
index da637adbbfaaf218ca26bc186ec772044b16c659..2fc894fef1cb1ae0750f52458ed2ba6212d80a81 100644 (file)
@@ -31,7 +31,6 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/errno.h>
index ad26f4b997c5bc7508a2abe11a36bda7a65e4eab..0aa5d608fe6f539aa6eb2bbb84ba7e52e3dbc05a 100644 (file)
@@ -31,7 +31,6 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <asm/system.h>
index d0b5c08e7b4eae9f1f4b0e2c8e652621105acb64..8d941db834570a98893af2a28ad5fc1ea01e11ec 100644 (file)
@@ -31,7 +31,6 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/proc_fs.h>
index bd4f2248b758e40a87039a75359a403c14357cb7..c7f3e5c806668cb2d6828c6c774442279abe96ce 100644 (file)
@@ -38,7 +38,6 @@
  * and drives the real SMI state machine.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <asm/system.h>
index 1a0a19c53605ed6f4c9f54afa70fbdbab2e002ea..74a889c58333dbce5fdba18d452f242d510d816c 100644 (file)
@@ -31,7 +31,6 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/ipmi.h>
index 478bf4d7d0659ac14922eb76adfecfcb448a6cbd..c105b9540ad8e1a054c188a4805b27c7d8f03175 100644 (file)
@@ -245,7 +245,7 @@ static int lock_card(struct isi_board *card)
        printk(KERN_WARNING "ISICOM: Failed to lock Card (0x%lx)\n",
                card->base);
 
-       return 0;       /* Failed to aquire the card! */
+       return 0;       /* Failed to acquire the card! */
 }
 
 static int lock_card_at_interrupt(struct isi_board *card)
@@ -262,7 +262,7 @@ static int lock_card_at_interrupt(struct isi_board *card)
                        spin_unlock_irqrestore(&card->card_lock, card->flags);
        }
        /* Failing in interrupt is an acceptable event */
-       return 0;       /* Failed to aquire the card! */
+       return 0;       /* Failed to acquire the card! */
 }
 
 static void unlock_card(struct isi_board *card)
index c74e5660a9b7e244607007b1af933665348d97e7..fbce2f0669d6a9cedb9ab9dac1b26733b5b525cf 100644 (file)
@@ -26,7 +26,6 @@
 
 /*****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/interrupt.h>
@@ -282,7 +281,6 @@ static char *stli_brdnames[] = {
 
 /*****************************************************************************/
 
-#ifdef MODULE
 /*
  *     Define some string labels for arguments passed from the module
  *     load line. These allow for easy board definitions, and easy
@@ -381,8 +379,6 @@ MODULE_PARM_DESC(board2, "Board 2 config -> name[,ioaddr[,memaddr]");
 module_param_array(board3, charp, NULL, 0);
 MODULE_PARM_DESC(board3, "Board 3 config -> name[,ioaddr[,memaddr]");
 
-#endif
-
 /*
  *     Set up a default memory address table for EISA board probing.
  *     The default addresses are all bellow 1Mbyte, which has to be the
@@ -643,14 +639,8 @@ static unsigned int        stli_baudrates[] = {
  *     Prototype all functions in this driver!
  */
 
-#ifdef MODULE
-static void    stli_argbrds(void);
 static int     stli_parsebrd(stlconf_t *confp, char **argp);
-
-static unsigned long   stli_atol(char *str);
-#endif
-
-int            stli_init(void);
+static int     stli_init(void);
 static int     stli_open(struct tty_struct *tty, struct file *filp);
 static void    stli_close(struct tty_struct *tty, struct file *filp);
 static int     stli_write(struct tty_struct *tty, const unsigned char *buf, int count);
@@ -786,8 +776,6 @@ static int  stli_timeron;
 
 static struct class *istallion_class;
 
-#ifdef MODULE
-
 /*
  *     Loadable module initialization stuff.
  */
@@ -954,8 +942,6 @@ static int stli_parsebrd(stlconf_t *confp, char **argp)
        return(1);
 }
 
-#endif
-
 /*****************************************************************************/
 
 static int stli_open(struct tty_struct *tty, struct file *filp)
@@ -4694,7 +4680,7 @@ static struct tty_operations stli_ops = {
 
 /*****************************************************************************/
 
-int __init stli_init(void)
+static int __init stli_init(void)
 {
        int i;
        printk(KERN_INFO "%s: version %s\n", stli_drvtitle, stli_drvversion);
index 4bb3d22726046fbcc4cd7cbbb4dbd69ce15b9edb..056ebe84b81d4b55dc394248c47b3dcc423c34a4 100644 (file)
@@ -24,7 +24,6 @@
  * 21-08-02: Converted to input API, major cleanup. (Vojtech Pavlik)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/tty.h>
index 29963d8be6674abdcd92fe7c9485f978c4c58c76..7d49b241de56c297301af0060c34bbecb207c552 100644 (file)
@@ -14,7 +14,6 @@
 
 #define RTC_IO_EXTENT  0x10    /*Only really two ports, but... */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/miscdevice.h>
index b11a390581bad05ea210165731cb2dcbbc013944..582cdbdb0c4299121323fd769b5bf337bd752cc6 100644 (file)
 #include <linux/module.h>
 #include <linux/init.h>
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
 #include <linux/major.h>
index c268ee04b2aa31d40db4bf58931d1bef75f7b0ad..bb07c2766b27e6875bb8ba9b9ee7308440825e0f 100644 (file)
@@ -10,7 +10,6 @@
  *     MOATB Core Services driver.
  */
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
index 6fe7b6c6c462efb0936e16f27e73a19e0438912e..70f3954d6dfd2f408db10a558b07f80c538dc4ac 100644 (file)
@@ -8,7 +8,6 @@
  *  Shared /dev/zero mmaping support, Feb 2000, Kanoj Sarcar <kanoj@sgi.com>
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/miscdevice.h>
 #include <linux/slab.h>
index dfe1cede391602b96d155a2fdb59dd0b2eebae3f..d5fa19da330bbe86ff4e1ffe04bd9c74f52800b2 100644 (file)
@@ -34,7 +34,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 
 #include <linux/fs.h>
 #include <linux/errno.h>
index 52ef61f54ba0bc225c94f10a0e2470baf9e5926e..4ea7bd5f4f567b238586c1017129e0ff44a6a1da 100644 (file)
@@ -29,7 +29,6 @@
  *      version         : 5.1
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index d1fe05e83882b57176b93f9be0f89d23478242da..4e4865e90e50b68a697764f9a07f0e87b2ce1d1e 100644 (file)
@@ -46,7 +46,6 @@
 *      First release to the public
 */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/unistd.h>
 #include <linux/delay.h>
index 72cfd09091e0a63ce1587cabec737aeaeb41e127..eb1559fcb81a0270bd8fbdc994f08b4e515c5cd1 100644 (file)
@@ -36,7 +36,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/autoconf.h>
 #include <linux/errno.h>
index 9f54733f16236e9e5618c91967d1d1434ef824ef..337a87f86a3bff05dc22eb296591ac1c5ae5e03d 100644 (file)
@@ -81,7 +81,6 @@
 #define HDLC_MAGIC 0x239e
 #define HDLC_VERSION "$Revision: 4.8 $"
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 3556ccd77570b691937ab47bea7ba2af09fe57c2..8c5f102622b690da7b6efd7c56a9628e00483636 100644 (file)
@@ -37,7 +37,6 @@
 #define NVRAM_VERSION  "1.2"
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/smp_lock.h>
 #include <linux/nvram.h>
index 4083b781adbffb355f2190d5d12b6df242d35afd..94845dd12ca90230c31f5a29a3b5b6e6fa919b78 100644 (file)
@@ -4,7 +4,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 1c706ccfdbb36265aa3f66ac029007c73e684bc8..c860de6a6fdedb1821da602ae38207740fd4a384 100644 (file)
@@ -319,9 +319,10 @@ static int __init pc8736x_gpio_init(void)
        return 0;
 
 undo_platform_dev_add:
-       platform_device_put(pdev);
+       platform_device_del(pdev);
 undo_platform_dev_alloc:
-       kfree(pdev);
+       platform_device_put(pdev);
+
        return rc;
 }
 
index eab5394da66647fe3f86f6d836646cf144f6db79..31c8a21f9d87a63ed97828c3df56bc304fcd3c05 100644 (file)
@@ -149,12 +149,7 @@ struct cm4000_dev {
 #define        ZERO_DEV(dev)                                           \
        memset(&dev->atr_csum,0,                                \
                sizeof(struct cm4000_dev) -                     \
-               /*link*/ sizeof(struct pcmcia_device *) -       \
-               /*node*/ sizeof(dev_node_t) -                   \
-               /*atr*/ MAX_ATR*sizeof(char) -                  \
-               /*rbuf*/ 512*sizeof(char) -                     \
-               /*sbuf*/ 512*sizeof(char) -                     \
-               /*queue*/ 4*sizeof(wait_queue_head_t))
+               offsetof(struct cm4000_dev, atr_csum))
 
 static struct pcmcia_device *dev_table[CM4000_MAX_DEV];
 static struct class *cmm_class;
index 9491e43075667be1f1e48ada2803bc77ae5a7b54..34dd4c38110e060f6bdfd866d0aa2bdb41994d08 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>      /* For EXPORT_SYMBOL */
 
 #include <linux/errno.h>
index 601d09baf9d76b04812b1471c611335b20b18ad4..1087530e58549ba6d3b60c0b636875d21332218e 100644 (file)
@@ -33,7 +33,6 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 
 /* 
  * NOTE:  
index 58f3512c52e16f1b92de5307c9e482a1ccf5b91f..164bddae047f15f06923c1c620a762195bc6870f 100644 (file)
  */
 
 #include <linux/utsname.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/major.h>
index aa43436d5d1b7b331f077bb5f4b2bb12dc9817ba..5332d1d4b0e4774c0657123c60462af9fc4fb09d 100644 (file)
@@ -33,7 +33,6 @@
  * */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/kdev_t.h>
 #include <asm/io.h>
 #include <linux/kernel.h>
index 55b9c97e8477c59fb3b39d924d9b51ba1a83ab68..dc3f005614a36d5cefbc9df333a1fa09aab8546a 100644 (file)
@@ -23,7 +23,6 @@
  *  Version 1.0 -- July, 1999. 
  * 
  */
-#include <linux/config.h>
 
 #define RIO_NBOARDS        4
 #define RIO_PORTSPERBOARD 128
index 12e34bc3f7ceadecdfa91d7866e679aa3133f1e6..99f3df02b61c31adff0df7bcce73659fed7a5992 100644 (file)
@@ -33,7 +33,6 @@
 static char *_rioinit_c_sccs_ = "@(#)rioinit.c 1.3";
 #endif
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/errno.h>
index 0897b0c8d528b3931e0a4db2eb2a49649fd60eec..37dc2edd8d755ba6403851dabcfa7398bc583bbd 100644 (file)
@@ -61,7 +61,6 @@
  *     this driver.)
  */
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 5a280a330401f76924b57d4031457439670f504e..45083e5dd23b9584a6553cd6c02c0aa524e20a27 100644 (file)
@@ -126,9 +126,10 @@ static int __init scx200_gpio_init(void)
 undo_chrdev_region:
        unregister_chrdev_region(dev, num_pins);
 undo_platform_device_add:
-       platform_device_put(pdev);
+       platform_device_del(pdev);
 undo_malloc:
-       kfree(pdev);
+       platform_device_put(pdev);
+
        return rc;
 }
 
@@ -136,7 +137,6 @@ static void __exit scx200_gpio_cleanup(void)
 {
        kfree(scx200_devices);
        unregister_chrdev_region(MKDEV(major, 0), num_pins);
-       platform_device_put(pdev);
        platform_device_unregister(pdev);
        /* kfree(pdev); */
 }
index c851eeaa406913967ba03f154d1fdba1e2d6835c..21a710cb4bbaed1df2ebfc6a6044bcf5abeb67c4 100644 (file)
@@ -44,7 +44,6 @@
  * - replace bottom half handler with task queue handler
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
index 43dfd8689dce31a0b8230c12c3ad922763cc4f77..e19d4856e9fc0b07d5ee92e4e0ddc054df28e0df 100644 (file)
@@ -33,7 +33,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/input.h>
 #include <linux/pci.h>
index d2d6b01dcd05a1168dbd7795ebd13d5c5be32dc9..d4243fb80815621dcf1c8a439439abf2554792c3 100644 (file)
@@ -75,7 +75,6 @@
  * Documentation/specialix.txt
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <asm/io.h>
index 0f7a542d9041052f730ecef16aaead6e1bfbdb4b..f15df0e423e0f143e17ddbc4d5518bd0870c4770 100644 (file)
@@ -26,7 +26,6 @@
 
 /*****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/interrupt.h>
index 4e35d41812248e7163c6bcbda1ee7f180dec1283..03edccc8a82338cac5b5ba6b7b8e7d0b3c115fd2 100644 (file)
@@ -46,7 +46,6 @@
 //#define DBGRBUF(info) dump_rbufs(info)
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/version.h>
 #include <linux/errno.h>
index 21bf15ad998020cdb985eba98fa607bf6fefc406..ba54df3cf60a6cbcf4222bc30085b9af8edf2763 100644 (file)
@@ -34,7 +34,6 @@
 
 #define MAX_DEVICES 12
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
index 35082dc12eaee8181cfd0344c15addcf82a4ed16..a064ee9181c084f21576f33592b1558cb60e1ee5 100644 (file)
@@ -12,7 +12,6 @@
  *     based upon discusions in irc://irc.openprojects.net/#kernelnewbies
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
 #include <linux/mm.h>
index f7802e5bd7ca757069e91beabf09c1cb4017222c..e0633a119d294a73e496c8ac6b1137eaecc378f8 100644 (file)
@@ -42,7 +42,6 @@
  */
 #undef DEBUG                           /* change to #define to get debugging
                                         * output - for pr_debug() */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/errno.h>
index ef68d152d3e4799386b582a7fb25bf3cc24a1b61..dfc4437afefb8b5ee97dcd53ec062231232f9b7f 100644 (file)
@@ -27,7 +27,6 @@
  * MPCBL0010 ATCA computer.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/sched.h>
index a1143238fecabb28e844717346b7aefa88307318..615e934da05f61f7a5134b65fd8ea9d1a8102ef2 100644 (file)
@@ -65,7 +65,6 @@
  * alloc_tty_struct() always uses kmalloc() -- Andrew Morton <andrewm@uow.edu.eu> 17Mar01
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/major.h>
 #include <linux/errno.h>
index 234d7f3fb114e161fde4aa7de491325e446db384..45e9bd81bc0ed2cb4cdf8d8ee6407cfac7696cb5 100644 (file)
@@ -21,7 +21,6 @@
  *      - making it shorter - scr_readw are macros which expand in PRETTY long code
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/major.h>
 #include <linux/errno.h>
index 07f5ce4b28e368672ec52f161abd3b5ed6606a34..766f7864c6c6b1d8896453454608b7b9613b28e6 100644 (file)
@@ -25,7 +25,6 @@
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/proc_fs.h>
 #include <linux/errno.h>
index 198f1505ae238fac3396ddff561e1c5c2834b7fc..7d42c8ec8dbcc2c3179ae81bb853b1a64f7d6e0e 100644 (file)
@@ -31,7 +31,6 @@
  * the OS/400 partition.  The format of the messages is defined in
  * iseries/vio.h
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index fe99fc1aba45c9d3978693dbb12dba5a6e330c76..b17a6e2bbca89a04f32cc800ba55f185048554d2 100644 (file)
@@ -14,7 +14,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/kdev_t.h>
 #include <asm/io.h>
 #include <linux/kernel.h>
index d6f65032649ab83398407026accffa8c9071ffdd..3ef823d7d255d78d39b2682c837dd33e0854f51b 100644 (file)
@@ -86,7 +86,6 @@
 #include <linux/consolemap.h>
 #include <linux/timer.h>
 #include <linux/interrupt.h>
-#include <linux/config.h>
 #include <linux/workqueue.h>
 #include <linux/bootmem.h>
 #include <linux/pm.h>
index 24011e7c81ff72fa6bade2d7c889c8a0c2c48c5a..eccffaf26faabd7acdb89b29d4ee98de37e8fad2 100644 (file)
@@ -10,7 +10,6 @@
  *  Check put/get_user, cleanups - acme@conectiva.com.br - Jun 2001
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
index 00080655533d338ae6438b8b3d37c4707f125fff..f61dedc3c96c13e5ef05794c5eaf15c6349dd357 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
 #include <linux/init.h>
index b6640606b44d87d7402e11a6c96ba79126a2a649..537f5c6729bfed6e1136e10548217cde8945f814 100644 (file)
@@ -14,7 +14,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/fs.h>
 #include <linux/miscdevice.h>
index 25c2f257561152094e832aeac08d7ebcd9a8ed82..e89cda010b498e6bc0780c99317b3c7a48424e5a 100644 (file)
@@ -40,7 +40,6 @@
  *     Added Matt Domsch's nowayout module option.
  */
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
index cf60329eec85a16065c1de34191b789d9730d80a..a2e53c715b36fbb4dcc1192084833d7e005b74c9 100644 (file)
@@ -31,7 +31,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/miscdevice.h>
index 294c474ae485764eb9416a2c9c9cd5d56b773065..b0741cbdc139dd2f25c57f99dc8450f8d4d99ea7 100644 (file)
@@ -10,7 +10,6 @@
  * of the GNU Public License, incorporated herein by reference.
  */
 
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
index b4b94daba67ea55e916173bf1738e422b2eec5d4..d387979b243433088bdfe965cb9d6a74cc74a1e5 100644 (file)
@@ -13,7 +13,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/fs.h>
index 0cfb9b9c4a4b2c47634cf329640b89651a6802ad..aa29a7d687592dc3a93fb248665dfd60720f034a 100644 (file)
@@ -16,7 +16,6 @@
  * warranty of any kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/types.h>
index 3800835ca8f384d23f4e7cc5d8ee0167d04acb32..e6a3fe83fa01f2bee430856adae82aba839ce6c6 100644 (file)
@@ -13,7 +13,6 @@
  * warranty of any kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/types.h>
index a9a20aad61e705125f9e696abb8b07855ea2ec62..b67b4878ae0fb5e13268fed593d01e091c2d99f8 100644 (file)
@@ -28,7 +28,6 @@
  *      Added nowayout module option to override CONFIG_WATCHDOG_NOWAYOUT
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/types.h>
index d8dede575402e14ab31952fec1d249cb0156b008..433c27f981595fd8597ce0ba8c64d8c85cfd9511 100644 (file)
@@ -37,7 +37,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/miscdevice.h>
 #include <linux/ioport.h>
index 5d6f5061603a5eab05b5e93a219961171ba3c3e9..dac1381af364a92e643acb4fc02b4d247dab3ddb 100644 (file)
@@ -15,7 +15,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index b2fc71e20850191abc640b901ae63bb51184fb74..11f0ccd4c4d47de59c72087a48e8c0d722a9a483 100644 (file)
@@ -9,7 +9,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 2c2c517732000a8337d2da0ee54383eb0ce1f0ed..9c11d920add543e585560c39490465b649b5e22d 100644 (file)
@@ -21,7 +21,6 @@
  */
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/miscdevice.h>
 #include <linux/watchdog.h>
index f1b9cf89f153ab727d357435437c0f6fc54dea73..20a6cbb0fbb8b3f3acc4f546e7163f84c3fb17e4 100644 (file)
@@ -15,7 +15,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 0d072bed501dfd744796e62a58d7468060e78f55..92bf8c1a0f0df50b93c84f034750222de2b64d4f 100644 (file)
@@ -24,7 +24,6 @@
  *     http://www.berkprod.com/ or http://www.pcwatchdog.com/
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 1ea04e9b2b0b0938cfc2cbfa04b2eed12b4da01b..f267dad26071917efd3bdacb1ddf8c409d4110d7 100644 (file)
@@ -37,7 +37,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/timer.h>
 #include <linux/miscdevice.h>
index 522a9370db948052c4bde4954fadef09b5759d49..b22e95c5470cde6ed4328ef0e069a469e102ee6e 100644 (file)
@@ -17,7 +17,6 @@
  *
  *      27/11/2000 Initial release
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/types.h>
index c6cbf808d8c2d4ef655420eb5e3f26ccd078f4bb..6562aa910ace21d9ea03660e39eae95f5812db74 100644 (file)
@@ -36,7 +36,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/miscdevice.h>
index 837b1ec3ffe32c640ebbd6f0f39c9ef646c28f60..09867fadc720705423879bdbbd4e90136d527430 100644 (file)
@@ -15,7 +15,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/fs.h>
index 20b88f9b7be20d9081c58a72e217a89a394661f2..78ef6333c181472325fad4d30de6babbf844f8c0 100644 (file)
@@ -27,7 +27,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/miscdevice.h>
index b4a102a2d7e390cfa3774d0a6c7871756e6b11ec..c0b4754e8de0046c3afdc7fb6baac45d73038418 100644 (file)
@@ -17,7 +17,6 @@
    of any nature resulting due to the use of this software. This
    software is provided AS-IS with no warranties. */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
index 1f4cab55b2efb26b9c5623a9a536eab48149aa7f..803701b675c04bcf946575a6fc58e8c03aab9db7 100644 (file)
@@ -17,7 +17,6 @@
  *     Added expect close support, made emulated timeout runtime changeable
  *     general cleanups, add some ioctls
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
index a91edaf3a350a1d7230740fe7832f537e85986f3..79ce5c655428f85242dda0f1588502c652697e21 100644 (file)
@@ -38,7 +38,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/timer.h>
 #include <linux/miscdevice.h>
index a7ff64c8921f299202a4eda9f2a040a42f360eff..c31849e4c5c28dfe365760ce2943b600548852a6 100644 (file)
@@ -17,7 +17,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/fs.h>
index 84e60eb743377138326f4dfce6fe093ddb441b82..a4504f40394dc014adee3d902c3ef271105e5d6c 100644 (file)
@@ -19,7 +19,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #define WDT_COUNT0             (io+0)
 #define WDT_COUNT1             (io+1)
index dacfe31caccf3fb5f3fb525f349dabec087cd644..3a462c34b92a5000ca6d994e03c5210d73f9bb5f 100644 (file)
@@ -26,7 +26,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index ec7e401228ee85d85d100ed331cc677796b0f039..2586e9e858e28285243fb3c57571b37333bca340 100644 (file)
@@ -31,7 +31,6 @@
  *             Matt Domsch     :       Added nowayout module option
  */
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
index 3843900e94c49f8101364828f8d8bdeb656987b7..3cde2b9bb763d082e8978ab32dbd9cd96e5bff15 100644 (file)
@@ -24,7 +24,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/fs.h>
index 4b3311993d4876bf91f07ef9e9c2147bc75e3278..c79cc9543d96b22d2ae980e45e732e818a32974a 100644 (file)
@@ -35,7 +35,6 @@
  *             Matt Domsch     :       nowayout module option
  */
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
index 35e0b9ceecf7faa90f9ab34784112533e7d48ec7..1ba4039777e88757503af3601d791365abc1c59c 100644 (file)
@@ -15,7 +15,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index 145061b8472a814b96e1075e51876ecbb5f3f246..25eee5394201d30866359043fd985c3075d8ef70 100644 (file)
@@ -9,7 +9,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sysdev.h>
 #include <linux/cpu.h>
index 071ee4f1bbf22a6ee542e16b29a579b422e323ca..44ae5e5b94cf4a30f4d1ab18287f72ec28caadb1 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/smp.h>
index 53423ad6d4a3a81c338e13c9360d58940267fe75..d75864e35fef33edcba22a26f7bfcb3b2d07a614 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/pci.h>
@@ -20,6 +19,9 @@
 #include <linux/slab.h>
 #include "edac_mc.h"
 
+#define AMD76X_REVISION        " Ver: 2.0.0 "  __DATE__
+
+
 #define amd76x_printk(level, fmt, arg...) \
        edac_printk(level, "amd76x", fmt, ##arg)
 
@@ -102,15 +104,18 @@ static const struct amd76x_dev_info amd76x_devs[] = {
 static void amd76x_get_error_info(struct mem_ctl_info *mci,
                struct amd76x_error_info *info)
 {
-       pci_read_config_dword(mci->pdev, AMD76X_ECC_MODE_STATUS,
+       struct pci_dev *pdev;
+
+       pdev = to_pci_dev(mci->dev);
+       pci_read_config_dword(pdev, AMD76X_ECC_MODE_STATUS,
                                &info->ecc_mode_status);
 
        if (info->ecc_mode_status & BIT(8))
-               pci_write_bits32(mci->pdev, AMD76X_ECC_MODE_STATUS,
+               pci_write_bits32(pdev, AMD76X_ECC_MODE_STATUS,
                                (u32) BIT(8), (u32) BIT(8));
 
        if (info->ecc_mode_status & BIT(9))
-               pci_write_bits32(mci->pdev, AMD76X_ECC_MODE_STATUS,
+               pci_write_bits32(pdev, AMD76X_ECC_MODE_STATUS,
                                (u32) BIT(9), (u32) BIT(9));
 }
 
@@ -176,6 +181,38 @@ static void amd76x_check(struct mem_ctl_info *mci)
        amd76x_process_error_info(mci, &info, 1);
 }
 
+static void amd76x_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev,
+               enum edac_type edac_mode)
+{
+       struct csrow_info *csrow;
+       u32 mba, mba_base, mba_mask, dms;
+       int index;
+
+       for (index = 0; index < mci->nr_csrows; index++) {
+               csrow = &mci->csrows[index];
+
+               /* find the DRAM Chip Select Base address and mask */
+               pci_read_config_dword(pdev,
+                                     AMD76X_MEM_BASE_ADDR + (index * 4),
+                                     &mba);
+
+               if (!(mba & BIT(0)))
+                       continue;
+
+               mba_base = mba & 0xff800000UL;
+               mba_mask = ((mba & 0xff80) << 16) | 0x7fffffUL;
+               pci_read_config_dword(pdev, AMD76X_DRAM_MODE_STATUS, &dms);
+               csrow->first_page = mba_base >> PAGE_SHIFT;
+               csrow->nr_pages = (mba_mask + 1) >> PAGE_SHIFT;
+               csrow->last_page = csrow->first_page + csrow->nr_pages - 1;
+               csrow->page_mask = mba_mask >> PAGE_SHIFT;
+               csrow->grain = csrow->nr_pages << PAGE_SHIFT;
+               csrow->mtype = MEM_RDDR;
+               csrow->dtype = ((dms >> index) & 0x1) ? DEV_X4 : DEV_UNKNOWN;
+               csrow->edac_mode = edac_mode;
+       }
+}
+
 /**
  *     amd76x_probe1   -       Perform set up for detected device
  *     @pdev; PCI device detected
@@ -187,15 +224,13 @@ static void amd76x_check(struct mem_ctl_info *mci)
  */
 static int amd76x_probe1(struct pci_dev *pdev, int dev_idx)
 {
-       int rc = -ENODEV;
-       int index;
-       struct mem_ctl_info *mci = NULL;
-       enum edac_type ems_modes[] = {
+       static const enum edac_type ems_modes[] = {
                EDAC_NONE,
                EDAC_EC,
                EDAC_SECDED,
                EDAC_SECDED
        };
+       struct mem_ctl_info *mci = NULL;
        u32 ems;
        u32 ems_mode;
        struct amd76x_error_info discard;
@@ -206,53 +241,28 @@ static int amd76x_probe1(struct pci_dev *pdev, int dev_idx)
        mci = edac_mc_alloc(0, AMD76X_NR_CSROWS, AMD76X_NR_CHANS);
 
        if (mci == NULL) {
-               rc = -ENOMEM;
-               goto fail;
+               return -ENOMEM;
        }
 
        debugf0("%s(): mci = %p\n", __func__, mci);
-       mci->pdev = pdev;
+       mci->dev = &pdev->dev;
        mci->mtype_cap = MEM_FLAG_RDDR;
        mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
        mci->edac_cap = ems_mode ?
                        (EDAC_FLAG_EC | EDAC_FLAG_SECDED) : EDAC_FLAG_NONE;
        mci->mod_name = EDAC_MOD_STR;
-       mci->mod_ver = "$Revision: 1.4.2.5 $";
+       mci->mod_ver = AMD76X_REVISION;
        mci->ctl_name = amd76x_devs[dev_idx].ctl_name;
        mci->edac_check = amd76x_check;
        mci->ctl_page_to_phys = NULL;
 
-       for (index = 0; index < mci->nr_csrows; index++) {
-               struct csrow_info *csrow = &mci->csrows[index];
-               u32 mba;
-               u32 mba_base;
-               u32 mba_mask;
-               u32 dms;
-
-               /* find the DRAM Chip Select Base address and mask */
-               pci_read_config_dword(mci->pdev,
-                               AMD76X_MEM_BASE_ADDR + (index * 4), &mba);
-
-               if (!(mba & BIT(0)))
-                       continue;
-
-               mba_base = mba & 0xff800000UL;
-               mba_mask = ((mba & 0xff80) << 16) | 0x7fffffUL;
-               pci_read_config_dword(mci->pdev, AMD76X_DRAM_MODE_STATUS,
-                               &dms);
-               csrow->first_page = mba_base >> PAGE_SHIFT;
-               csrow->nr_pages = (mba_mask + 1) >> PAGE_SHIFT;
-               csrow->last_page = csrow->first_page + csrow->nr_pages - 1;
-               csrow->page_mask = mba_mask >> PAGE_SHIFT;
-               csrow->grain = csrow->nr_pages << PAGE_SHIFT;
-               csrow->mtype = MEM_RDDR;
-               csrow->dtype = ((dms >> index) & 0x1) ? DEV_X4 : DEV_UNKNOWN;
-               csrow->edac_mode = ems_modes[ems_mode];
-       }
-
+       amd76x_init_csrows(mci, pdev, ems_modes[ems_mode]);
        amd76x_get_error_info(mci, &discard);  /* clear counters */
 
-       if (edac_mc_add_mc(mci)) {
+       /* Here we assume that we will never see multiple instances of this
+        * type of memory controller.  The ID is therefore hardcoded to 0.
+        */
+       if (edac_mc_add_mc(mci,0)) {
                debugf3("%s(): failed edac_mc_add_mc()\n", __func__);
                goto fail;
        }
@@ -262,9 +272,8 @@ static int amd76x_probe1(struct pci_dev *pdev, int dev_idx)
        return 0;
 
 fail:
-       if (mci != NULL)
-               edac_mc_free(mci);
-       return rc;
+       edac_mc_free(mci);
+       return -ENODEV;
 }
 
 /* returns count (>= 0), or negative on error */
@@ -291,7 +300,7 @@ static void __devexit amd76x_remove_one(struct pci_dev *pdev)
 
        debugf0("%s()\n", __func__);
 
-       if ((mci = edac_mc_del_mc(pdev)) == NULL)
+       if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL)
                return;
 
        edac_mc_free(mci);
index fce31936e6d718ac4a5b620ceb60babc3b1a3718..815c3eb783de8297a186ecee94f356750d65089d 100644 (file)
@@ -17,7 +17,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/pci.h>
@@ -25,6 +24,8 @@
 #include <linux/slab.h>
 #include "edac_mc.h"
 
+#define E752X_REVISION " Ver: 2.0.0 " __DATE__
+
 static int force_function_unhide;
 
 #define e752x_printk(level, fmt, arg...) \
@@ -763,22 +764,174 @@ static void e752x_check(struct mem_ctl_info *mci)
        e752x_process_error_info(mci, &info, 1);
 }
 
-static int e752x_probe1(struct pci_dev *pdev, int dev_idx)
+/* Return 1 if dual channel mode is active.  Else return 0. */
+static inline int dual_channel_active(u16 ddrcsr)
+{
+       return (((ddrcsr >> 12) & 3) == 3);
+}
+
+static void e752x_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev,
+               u16 ddrcsr)
+{
+       struct csrow_info *csrow;
+       unsigned long last_cumul_size;
+       int index, mem_dev, drc_chan;
+       int drc_drbg;  /* DRB granularity 0=64mb, 1=128mb */
+       int drc_ddim;  /* DRAM Data Integrity Mode 0=none, 2=edac */
+       u8 value;
+       u32 dra, drc, cumul_size;
+
+       pci_read_config_dword(pdev, E752X_DRA, &dra);
+       pci_read_config_dword(pdev, E752X_DRC, &drc);
+       drc_chan = dual_channel_active(ddrcsr);
+       drc_drbg = drc_chan + 1;  /* 128 in dual mode, 64 in single */
+       drc_ddim = (drc >> 20) & 0x3;
+
+       /* The dram row boundary (DRB) reg values are boundary address for
+        * each DRAM row with a granularity of 64 or 128MB (single/dual
+        * channel operation).  DRB regs are cumulative; therefore DRB7 will
+        * contain the total memory contained in all eight rows.
+        */
+       for (last_cumul_size = index = 0; index < mci->nr_csrows; index++) {
+               /* mem_dev 0=x8, 1=x4 */
+               mem_dev = (dra >> (index * 4 + 2)) & 0x3;
+               csrow = &mci->csrows[index];
+
+               mem_dev = (mem_dev == 2);
+               pci_read_config_byte(pdev, E752X_DRB + index, &value);
+               /* convert a 128 or 64 MiB DRB to a page size. */
+               cumul_size = value << (25 + drc_drbg - PAGE_SHIFT);
+               debugf3("%s(): (%d) cumul_size 0x%x\n", __func__, index,
+                       cumul_size);
+               if (cumul_size == last_cumul_size)
+                       continue;       /* not populated */
+
+               csrow->first_page = last_cumul_size;
+               csrow->last_page = cumul_size - 1;
+               csrow->nr_pages = cumul_size - last_cumul_size;
+               last_cumul_size = cumul_size;
+               csrow->grain = 1 << 12; /* 4KiB - resolution of CELOG */
+               csrow->mtype = MEM_RDDR;        /* only one type supported */
+               csrow->dtype = mem_dev ? DEV_X4 : DEV_X8;
+
+               /*
+                * if single channel or x8 devices then SECDED
+                * if dual channel and x4 then S4ECD4ED
+                */
+               if (drc_ddim) {
+                       if (drc_chan && mem_dev) {
+                               csrow->edac_mode = EDAC_S4ECD4ED;
+                               mci->edac_cap |= EDAC_FLAG_S4ECD4ED;
+                       } else {
+                               csrow->edac_mode = EDAC_SECDED;
+                               mci->edac_cap |= EDAC_FLAG_SECDED;
+                       }
+               } else
+                       csrow->edac_mode = EDAC_NONE;
+       }
+}
+
+static void e752x_init_mem_map_table(struct pci_dev *pdev,
+               struct e752x_pvt *pvt)
 {
-       int rc = -ENODEV;
        int index;
+       u8 value, last, row, stat8;
+
+       last = 0;
+       row = 0;
+
+       for (index = 0; index < 8; index += 2) {
+               pci_read_config_byte(pdev, E752X_DRB + index, &value);
+               /* test if there is a dimm in this slot */
+               if (value == last) {
+                       /* no dimm in the slot, so flag it as empty */
+                       pvt->map[index] = 0xff;
+                       pvt->map[index + 1] = 0xff;
+               } else {        /* there is a dimm in the slot */
+                       pvt->map[index] = row;
+                       row++;
+                       last = value;
+                       /* test the next value to see if the dimm is double
+                        * sided
+                        */
+                       pci_read_config_byte(pdev, E752X_DRB + index + 1,
+                                            &value);
+                       pvt->map[index + 1] = (value == last) ?
+                           0xff :      /* the dimm is single sided,
+                                          so flag as empty */
+                           row;        /* this is a double sided dimm
+                                          to save the next row # */
+                       row++;
+                       last = value;
+               }
+       }
+
+       /* set the map type.  1 = normal, 0 = reversed */
+       pci_read_config_byte(pdev, E752X_DRM, &stat8);
+       pvt->map_type = ((stat8 & 0x0f) > ((stat8 >> 4) & 0x0f));
+}
+
+/* Return 0 on success or 1 on failure. */
+static int e752x_get_devs(struct pci_dev *pdev, int dev_idx,
+               struct e752x_pvt *pvt)
+{
+       struct pci_dev *dev;
+
+       pvt->bridge_ck = pci_get_device(PCI_VENDOR_ID_INTEL,
+                                       pvt->dev_info->err_dev,
+                                       pvt->bridge_ck);
+
+       if (pvt->bridge_ck == NULL)
+               pvt->bridge_ck = pci_scan_single_device(pdev->bus,
+                                                       PCI_DEVFN(0, 1));
+
+       if (pvt->bridge_ck == NULL) {
+               e752x_printk(KERN_ERR, "error reporting device not found:"
+                      "vendor %x device 0x%x (broken BIOS?)\n",
+                      PCI_VENDOR_ID_INTEL, e752x_devs[dev_idx].err_dev);
+               return 1;
+       }
+
+       dev = pci_get_device(PCI_VENDOR_ID_INTEL, e752x_devs[dev_idx].ctl_dev,
+                            NULL);
+
+       if (dev == NULL)
+               goto fail;
+
+       pvt->dev_d0f0 = dev;
+       pvt->dev_d0f1 = pci_dev_get(pvt->bridge_ck);
+
+       return 0;
+
+fail:
+       pci_dev_put(pvt->bridge_ck);
+       return 1;
+}
+
+static void e752x_init_error_reporting_regs(struct e752x_pvt *pvt)
+{
+       struct pci_dev *dev;
+
+       dev = pvt->dev_d0f1;
+       /* Turn off error disable & SMI in case the BIOS turned it on */
+       pci_write_config_byte(dev, E752X_HI_ERRMASK, 0x00);
+       pci_write_config_byte(dev, E752X_HI_SMICMD, 0x00);
+       pci_write_config_word(dev, E752X_SYSBUS_ERRMASK, 0x00);
+       pci_write_config_word(dev, E752X_SYSBUS_SMICMD, 0x00);
+       pci_write_config_byte(dev, E752X_BUF_ERRMASK, 0x00);
+       pci_write_config_byte(dev, E752X_BUF_SMICMD, 0x00);
+       pci_write_config_byte(dev, E752X_DRAM_ERRMASK, 0x00);
+       pci_write_config_byte(dev, E752X_DRAM_SMICMD, 0x00);
+}
+
+static int e752x_probe1(struct pci_dev *pdev, int dev_idx)
+{
        u16 pci_data;
        u8 stat8;
-       struct mem_ctl_info *mci = NULL;
-       struct e752x_pvt *pvt = NULL;
+       struct mem_ctl_info *mci;
+       struct e752x_pvt *pvt;
        u16 ddrcsr;
-       u32 drc;
        int drc_chan;   /* Number of channels 0=1chan,1=2chan */
-       int drc_drbg;   /* DRB granularity 0=64mb, 1=128mb */
-       int drc_ddim;   /* DRAM Data Integrity Mode 0=none,2=edac */
-       u32 dra;
-       unsigned long last_cumul_size;
-       struct pci_dev *dev = NULL;
        struct e752x_error_info discard;
 
        debugf0("%s(): mci\n", __func__);
@@ -792,25 +945,20 @@ static int e752x_probe1(struct pci_dev *pdev, int dev_idx)
        if (!force_function_unhide && !(stat8 & (1 << 5))) {
                printk(KERN_INFO "Contact your BIOS vendor to see if the "
                        "E752x error registers can be safely un-hidden\n");
-               goto fail;
+               return -ENOMEM;
        }
        stat8 |= (1 << 5);
        pci_write_config_byte(pdev, E752X_DEVPRES1, stat8);
 
-       /* need to find out the number of channels */
-       pci_read_config_dword(pdev, E752X_DRC, &drc);
        pci_read_config_word(pdev, E752X_DDRCSR, &ddrcsr);
        /* FIXME: should check >>12 or 0xf, true for all? */
        /* Dual channel = 1, Single channel = 0 */
-       drc_chan = (((ddrcsr >> 12) & 3) == 3);
-       drc_drbg = drc_chan + 1;        /* 128 in dual mode, 64 in single */
-       drc_ddim = (drc >> 20) & 0x3;
+       drc_chan = dual_channel_active(ddrcsr);
 
        mci = edac_mc_alloc(sizeof(*pvt), E752X_NR_CSROWS, drc_chan + 1);
 
        if (mci == NULL) {
-               rc = -ENOMEM;
-               goto fail;
+               return -ENOMEM;
        }
 
        debugf3("%s(): init mci\n", __func__);
@@ -819,159 +967,54 @@ static int e752x_probe1(struct pci_dev *pdev, int dev_idx)
            EDAC_FLAG_S4ECD4ED;
        /* FIXME - what if different memory types are in different csrows? */
        mci->mod_name = EDAC_MOD_STR;
-       mci->mod_ver = "$Revision: 1.5.2.11 $";
-       mci->pdev = pdev;
+       mci->mod_ver = E752X_REVISION;
+       mci->dev = &pdev->dev;
 
        debugf3("%s(): init pvt\n", __func__);
        pvt = (struct e752x_pvt *) mci->pvt_info;
        pvt->dev_info = &e752x_devs[dev_idx];
-       pvt->bridge_ck = pci_get_device(PCI_VENDOR_ID_INTEL,
-                                       pvt->dev_info->err_dev,
-                                       pvt->bridge_ck);
-
-       if (pvt->bridge_ck == NULL)
-               pvt->bridge_ck = pci_scan_single_device(pdev->bus,
-                                       PCI_DEVFN(0, 1));
+       pvt->mc_symmetric = ((ddrcsr & 0x10) != 0);
 
-       if (pvt->bridge_ck == NULL) {
-               e752x_printk(KERN_ERR, "error reporting device not found:"
-                       "vendor %x device 0x%x (broken BIOS?)\n",
-                       PCI_VENDOR_ID_INTEL, e752x_devs[dev_idx].err_dev);
-               goto fail;
+       if (e752x_get_devs(pdev, dev_idx, pvt)) {
+               edac_mc_free(mci);
+               return -ENODEV;
        }
 
-       pvt->mc_symmetric = ((ddrcsr & 0x10) != 0);
        debugf3("%s(): more mci init\n", __func__);
        mci->ctl_name = pvt->dev_info->ctl_name;
        mci->edac_check = e752x_check;
        mci->ctl_page_to_phys = ctl_page_to_phys;
 
-       /* find out the device types */
-       pci_read_config_dword(pdev, E752X_DRA, &dra);
-
-       /*
-        * The dram row boundary (DRB) reg values are boundary address for
-        * each DRAM row with a granularity of 64 or 128MB (single/dual
-        * channel operation).  DRB regs are cumulative; therefore DRB7 will
-        * contain the total memory contained in all eight rows.
-        */
-       for (last_cumul_size = index = 0; index < mci->nr_csrows; index++) {
-               u8 value;
-               u32 cumul_size;
-
-               /* mem_dev 0=x8, 1=x4 */
-               int mem_dev = (dra >> (index * 4 + 2)) & 0x3;
-               struct csrow_info *csrow = &mci->csrows[index];
-
-               mem_dev = (mem_dev == 2);
-               pci_read_config_byte(mci->pdev, E752X_DRB + index, &value);
-               /* convert a 128 or 64 MiB DRB to a page size. */
-               cumul_size = value << (25 + drc_drbg - PAGE_SHIFT);
-               debugf3("%s(): (%d) cumul_size 0x%x\n", __func__, index,
-                       cumul_size);
-
-               if (cumul_size == last_cumul_size)
-                       continue; /* not populated */
-
-               csrow->first_page = last_cumul_size;
-               csrow->last_page = cumul_size - 1;
-               csrow->nr_pages = cumul_size - last_cumul_size;
-               last_cumul_size = cumul_size;
-               csrow->grain = 1 << 12;  /* 4KiB - resolution of CELOG */
-               csrow->mtype = MEM_RDDR;  /* only one type supported */
-               csrow->dtype = mem_dev ? DEV_X4 : DEV_X8;
-
-               /*
-                * if single channel or x8 devices then SECDED
-                * if dual channel and x4 then S4ECD4ED
-                */
-               if (drc_ddim) {
-                       if (drc_chan && mem_dev) {
-                               csrow->edac_mode = EDAC_S4ECD4ED;
-                               mci->edac_cap |= EDAC_FLAG_S4ECD4ED;
-                       } else {
-                               csrow->edac_mode = EDAC_SECDED;
-                               mci->edac_cap |= EDAC_FLAG_SECDED;
-                       }
-               } else
-                       csrow->edac_mode = EDAC_NONE;
-       }
-
-       /* Fill in the memory map table */
-       {
-               u8 value;
-               u8 last = 0;
-               u8 row = 0;
-
-               for (index = 0; index < 8; index += 2) {
-                       pci_read_config_byte(mci->pdev, E752X_DRB + index,
-                                       &value);
-
-                       /* test if there is a dimm in this slot */
-                       if (value == last) {
-                               /* no dimm in the slot, so flag it as empty */
-                               pvt->map[index] = 0xff;
-                               pvt->map[index + 1] = 0xff;
-                       } else { /* there is a dimm in the slot */
-                               pvt->map[index] = row;
-                               row++;
-                               last = value;
-                               /* test the next value to see if the dimm is
-                                  double sided */
-                               pci_read_config_byte(mci->pdev,
-                                               E752X_DRB + index + 1,
-                                               &value);
-                               pvt->map[index + 1] = (value == last) ?
-                                       0xff :  /* the dimm is single sided,
-                                                * so flag as empty
-                                                */
-                                       row;    /* this is a double sided dimm
-                                                * to save the next row #
-                                                */
-                               row++;
-                               last = value;
-                       }
-               }
-       }
+       e752x_init_csrows(mci, pdev, ddrcsr);
+       e752x_init_mem_map_table(pdev, pvt);
 
        /* set the map type.  1 = normal, 0 = reversed */
-       pci_read_config_byte(mci->pdev, E752X_DRM, &stat8);
+       pci_read_config_byte(pdev, E752X_DRM, &stat8);
        pvt->map_type = ((stat8 & 0x0f) > ((stat8 >> 4) & 0x0f));
 
        mci->edac_cap |= EDAC_FLAG_NONE;
        debugf3("%s(): tolm, remapbase, remaplimit\n", __func__);
 
        /* load the top of low memory, remap base, and remap limit vars */
-       pci_read_config_word(mci->pdev, E752X_TOLM, &pci_data);
+       pci_read_config_word(pdev, E752X_TOLM, &pci_data);
        pvt->tolm = ((u32) pci_data) << 4;
-       pci_read_config_word(mci->pdev, E752X_REMAPBASE, &pci_data);
+       pci_read_config_word(pdev, E752X_REMAPBASE, &pci_data);
        pvt->remapbase = ((u32) pci_data) << 14;
-       pci_read_config_word(mci->pdev, E752X_REMAPLIMIT, &pci_data);
+       pci_read_config_word(pdev, E752X_REMAPLIMIT, &pci_data);
        pvt->remaplimit = ((u32) pci_data) << 14;
        e752x_printk(KERN_INFO,
                "tolm = %x, remapbase = %x, remaplimit = %x\n", pvt->tolm,
                pvt->remapbase, pvt->remaplimit);
 
-       if (edac_mc_add_mc(mci)) {
+       /* Here we assume that we will never see multiple instances of this
+        * type of memory controller.  The ID is therefore hardcoded to 0.
+        */
+       if (edac_mc_add_mc(mci,0)) {
                debugf3("%s(): failed edac_mc_add_mc()\n", __func__);
                goto fail;
        }
 
-       dev = pci_get_device(PCI_VENDOR_ID_INTEL, e752x_devs[dev_idx].ctl_dev,
-                       NULL);
-       pvt->dev_d0f0 = dev;
-       /* find the error reporting device and clear errors */
-       dev = pvt->dev_d0f1 = pci_dev_get(pvt->bridge_ck);
-       /* Turn off error disable & SMI in case the BIOS turned it on */
-       pci_write_config_byte(dev, E752X_HI_ERRMASK, 0x00);
-       pci_write_config_byte(dev, E752X_HI_SMICMD, 0x00);
-       pci_write_config_word(dev, E752X_SYSBUS_ERRMASK, 0x00);
-       pci_write_config_word(dev, E752X_SYSBUS_SMICMD, 0x00);
-       pci_write_config_byte(dev, E752X_BUF_ERRMASK, 0x00);
-       pci_write_config_byte(dev, E752X_BUF_SMICMD, 0x00);
-       pci_write_config_byte(dev, E752X_DRAM_ERRMASK, 0x00);
-       pci_write_config_byte(dev, E752X_DRAM_SMICMD, 0x00);
-
+       e752x_init_error_reporting_regs(pvt);
        e752x_get_error_info(mci, &discard); /* clear other MCH errors */
 
        /* get this far and it's successful */
@@ -979,20 +1022,12 @@ static int e752x_probe1(struct pci_dev *pdev, int dev_idx)
        return 0;
 
 fail:
-       if (mci) {
-               if (pvt->dev_d0f0)
-                       pci_dev_put(pvt->dev_d0f0);
-
-               if (pvt->dev_d0f1)
-                       pci_dev_put(pvt->dev_d0f1);
-
-               if (pvt->bridge_ck)
-                       pci_dev_put(pvt->bridge_ck);
-
-               edac_mc_free(mci);
-       }
+       pci_dev_put(pvt->dev_d0f0);
+       pci_dev_put(pvt->dev_d0f1);
+       pci_dev_put(pvt->bridge_ck);
+       edac_mc_free(mci);
 
-       return rc;
+       return -ENODEV;
 }
 
 /* returns count (>= 0), or negative on error */
@@ -1015,7 +1050,7 @@ static void __devexit e752x_remove_one(struct pci_dev *pdev)
 
        debugf0("%s()\n", __func__);
 
-       if ((mci = edac_mc_del_mc(pdev)) == NULL)
+       if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL)
                return;
 
        pvt = (struct e752x_pvt *) mci->pvt_info;
index a9518d3e4be4f3d46b205e4070685ad995b54002..5a5ecd5a040977f4faabe78ebefaa49b56c7a968 100644 (file)
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/pci.h>
@@ -30,6 +29,8 @@
 #include <linux/slab.h>
 #include "edac_mc.h"
 
+#define        E7XXX_REVISION " Ver: 2.0.0 " __DATE__
+
 #define e7xxx_printk(level, fmt, arg...) \
        edac_printk(level, "e7xxx", fmt, ##arg)
 
@@ -333,99 +334,61 @@ static void e7xxx_check(struct mem_ctl_info *mci)
        e7xxx_process_error_info(mci, &info, 1);
 }
 
-static int e7xxx_probe1(struct pci_dev *pdev, int dev_idx)
+/* Return 1 if dual channel mode is active.  Else return 0. */
+static inline int dual_channel_active(u32 drc, int dev_idx)
 {
-       int rc = -ENODEV;
-       int index;
-       u16 pci_data;
-       struct mem_ctl_info *mci = NULL;
-       struct e7xxx_pvt *pvt = NULL;
-       u32 drc;
-       int drc_chan = 1;       /* Number of channels 0=1chan,1=2chan */
-       int drc_drbg = 1;       /* DRB granularity 0=32mb,1=64mb */
-       int drc_ddim;           /* DRAM Data Integrity Mode 0=none,2=edac */
-       u32 dra;
-       unsigned long last_cumul_size;
-       struct e7xxx_error_info discard;
-
-       debugf0("%s(): mci\n", __func__);
+       return (dev_idx == E7501) ? ((drc >> 22) & 0x1) : 1;
+}
 
-       /* need to find out the number of channels */
-       pci_read_config_dword(pdev, E7XXX_DRC, &drc);
 
+/* Return DRB granularity (0=32mb, 1=64mb). */
+static inline int drb_granularity(u32 drc, int dev_idx)
+{
        /* only e7501 can be single channel */
-       if (dev_idx == E7501) {
-               drc_chan = ((drc >> 22) & 0x1);
-               drc_drbg = (drc >> 18) & 0x3;
-       }
-
-       drc_ddim = (drc >> 20) & 0x3;
-       mci = edac_mc_alloc(sizeof(*pvt), E7XXX_NR_CSROWS, drc_chan + 1);
-
-       if (mci == NULL) {
-               rc = -ENOMEM;
-               goto fail;
-       }
-
-       debugf3("%s(): init mci\n", __func__);
-       mci->mtype_cap = MEM_FLAG_RDDR;
-       mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED |
-                       EDAC_FLAG_S4ECD4ED;
-       /* FIXME - what if different memory types are in different csrows? */
-       mci->mod_name = EDAC_MOD_STR;
-       mci->mod_ver = "$Revision: 1.5.2.9 $";
-       mci->pdev = pdev;
+       return (dev_idx == E7501) ? ((drc >> 18) & 0x3) : 1;
+}
 
-       debugf3("%s(): init pvt\n", __func__);
-       pvt = (struct e7xxx_pvt *) mci->pvt_info;
-       pvt->dev_info = &e7xxx_devs[dev_idx];
-       pvt->bridge_ck = pci_get_device(PCI_VENDOR_ID_INTEL,
-                                       pvt->dev_info->err_dev,
-                                       pvt->bridge_ck);
 
-       if (!pvt->bridge_ck) {
-               e7xxx_printk(KERN_ERR, "error reporting device not found:"
-                       "vendor %x device 0x%x (broken BIOS?)\n",
-                       PCI_VENDOR_ID_INTEL, e7xxx_devs[dev_idx].err_dev);
-               goto fail;
-       }
-
-       debugf3("%s(): more mci init\n", __func__);
-       mci->ctl_name = pvt->dev_info->ctl_name;
-       mci->edac_check = e7xxx_check;
-       mci->ctl_page_to_phys = ctl_page_to_phys;
+static void e7xxx_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev,
+               int dev_idx, u32 drc)
+{
+       unsigned long last_cumul_size;
+       int index;
+       u8 value;
+       u32 dra, cumul_size;
+       int drc_chan, drc_drbg, drc_ddim, mem_dev;
+       struct csrow_info *csrow;
 
-       /* find out the device types */
        pci_read_config_dword(pdev, E7XXX_DRA, &dra);
+       drc_chan = dual_channel_active(drc, dev_idx);
+       drc_drbg = drb_granularity(drc, dev_idx);
+       drc_ddim = (drc >> 20) & 0x3;
+       last_cumul_size = 0;
 
-       /*
-        * The dram row boundary (DRB) reg values are boundary address
+       /* The dram row boundary (DRB) reg values are boundary address
         * for each DRAM row with a granularity of 32 or 64MB (single/dual
         * channel operation).  DRB regs are cumulative; therefore DRB7 will
         * contain the total memory contained in all eight rows.
         */
-       for (last_cumul_size = index = 0; index < mci->nr_csrows; index++) {
-               u8 value;
-               u32 cumul_size;
+       for (index = 0; index < mci->nr_csrows; index++) {
                /* mem_dev 0=x8, 1=x4 */
-               int mem_dev = (dra >> (index * 4 + 3)) & 0x1;
-               struct csrow_info *csrow = &mci->csrows[index];
+               mem_dev = (dra >> (index * 4 + 3)) & 0x1;
+               csrow = &mci->csrows[index];
 
-               pci_read_config_byte(mci->pdev, E7XXX_DRB + index, &value);
+               pci_read_config_byte(pdev, E7XXX_DRB + index, &value);
                /* convert a 64 or 32 MiB DRB to a page size. */
                cumul_size = value << (25 + drc_drbg - PAGE_SHIFT);
                debugf3("%s(): (%d) cumul_size 0x%x\n", __func__, index,
                        cumul_size);
-
                if (cumul_size == last_cumul_size)
-                       continue;  /* not populated */
+                       continue;       /* not populated */
 
                csrow->first_page = last_cumul_size;
                csrow->last_page = cumul_size - 1;
                csrow->nr_pages = cumul_size - last_cumul_size;
                last_cumul_size = cumul_size;
-               csrow->grain = 1 << 12;  /* 4KiB - resolution of CELOG */
-               csrow->mtype = MEM_RDDR;  /* only one type supported */
+               csrow->grain = 1 << 12; /* 4KiB - resolution of CELOG */
+               csrow->mtype = MEM_RDDR;        /* only one type supported */
                csrow->dtype = mem_dev ? DEV_X4 : DEV_X8;
 
                /*
@@ -443,16 +406,61 @@ static int e7xxx_probe1(struct pci_dev *pdev, int dev_idx)
                } else
                        csrow->edac_mode = EDAC_NONE;
        }
+}
 
-       mci->edac_cap |= EDAC_FLAG_NONE;
+static int e7xxx_probe1(struct pci_dev *pdev, int dev_idx)
+{
+       u16 pci_data;
+       struct mem_ctl_info *mci = NULL;
+       struct e7xxx_pvt *pvt = NULL;
+       u32 drc;
+       int drc_chan;
+       struct e7xxx_error_info discard;
+
+       debugf0("%s(): mci\n", __func__);
+       pci_read_config_dword(pdev, E7XXX_DRC, &drc);
+
+       drc_chan = dual_channel_active(drc, dev_idx);
+       mci = edac_mc_alloc(sizeof(*pvt), E7XXX_NR_CSROWS, drc_chan + 1);
+
+       if (mci == NULL)
+               return -ENOMEM;
+
+       debugf3("%s(): init mci\n", __func__);
+       mci->mtype_cap = MEM_FLAG_RDDR;
+       mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED |
+                       EDAC_FLAG_S4ECD4ED;
+       /* FIXME - what if different memory types are in different csrows? */
+       mci->mod_name = EDAC_MOD_STR;
+       mci->mod_ver = E7XXX_REVISION;
+       mci->dev = &pdev->dev;
+       debugf3("%s(): init pvt\n", __func__);
+       pvt = (struct e7xxx_pvt *) mci->pvt_info;
+       pvt->dev_info = &e7xxx_devs[dev_idx];
+       pvt->bridge_ck = pci_get_device(PCI_VENDOR_ID_INTEL,
+                                       pvt->dev_info->err_dev,
+                                       pvt->bridge_ck);
 
+       if (!pvt->bridge_ck) {
+               e7xxx_printk(KERN_ERR, "error reporting device not found:"
+                       "vendor %x device 0x%x (broken BIOS?)\n",
+                       PCI_VENDOR_ID_INTEL, e7xxx_devs[dev_idx].err_dev);
+               goto fail0;
+       }
+
+       debugf3("%s(): more mci init\n", __func__);
+       mci->ctl_name = pvt->dev_info->ctl_name;
+       mci->edac_check = e7xxx_check;
+       mci->ctl_page_to_phys = ctl_page_to_phys;
+       e7xxx_init_csrows(mci, pdev, dev_idx, drc);
+       mci->edac_cap |= EDAC_FLAG_NONE;
        debugf3("%s(): tolm, remapbase, remaplimit\n", __func__);
        /* load the top of low memory, remap base, and remap limit vars */
-       pci_read_config_word(mci->pdev, E7XXX_TOLM, &pci_data);
+       pci_read_config_word(pdev, E7XXX_TOLM, &pci_data);
        pvt->tolm = ((u32) pci_data) << 4;
-       pci_read_config_word(mci->pdev, E7XXX_REMAPBASE, &pci_data);
+       pci_read_config_word(pdev, E7XXX_REMAPBASE, &pci_data);
        pvt->remapbase = ((u32) pci_data) << 14;
-       pci_read_config_word(mci->pdev, E7XXX_REMAPLIMIT, &pci_data);
+       pci_read_config_word(pdev, E7XXX_REMAPLIMIT, &pci_data);
        pvt->remaplimit = ((u32) pci_data) << 14;
        e7xxx_printk(KERN_INFO,
                "tolm = %x, remapbase = %x, remaplimit = %x\n", pvt->tolm,
@@ -461,23 +469,25 @@ static int e7xxx_probe1(struct pci_dev *pdev, int dev_idx)
        /* clear any pending errors, or initial state bits */
        e7xxx_get_error_info(mci, &discard);
 
-       if (edac_mc_add_mc(mci) != 0) {
+       /* Here we assume that we will never see multiple instances of this
+        * type of memory controller.  The ID is therefore hardcoded to 0.
+        */
+       if (edac_mc_add_mc(mci,0)) {
                debugf3("%s(): failed edac_mc_add_mc()\n", __func__);
-               goto fail;
+               goto fail1;
        }
 
        /* get this far and it's successful */
        debugf3("%s(): success\n", __func__);
        return 0;
 
-fail:
-       if (mci != NULL) {
-               if(pvt != NULL && pvt->bridge_ck)
-                       pci_dev_put(pvt->bridge_ck);
-               edac_mc_free(mci);
-       }
+fail1:
+       pci_dev_put(pvt->bridge_ck);
+
+fail0:
+       edac_mc_free(mci);
 
-       return rc;
+       return -ENODEV;
 }
 
 /* returns count (>= 0), or negative on error */
@@ -498,7 +508,7 @@ static void __devexit e7xxx_remove_one(struct pci_dev *pdev)
 
        debugf0("%s()\n", __func__);
 
-       if ((mci = edac_mc_del_mc(pdev)) == NULL)
+       if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL)
                return;
 
        pvt = (struct e7xxx_pvt *) mci->pvt_info;
index ea06e3a4dc358837c21ebf5081396851610a1f3b..3a7cfe88b16972f52672102cfe4a1a7609a5f66b 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/proc_fs.h>
 #include <linux/kernel.h>
@@ -54,16 +53,17 @@ static int log_ce = 1;
 static int panic_on_ue;
 static int poll_msec = 1000;
 
-static int check_pci_parity = 0;       /* default YES check PCI parity */
-static int panic_on_pci_parity;                /* default no panic on PCI Parity */
-static atomic_t pci_parity_count = ATOMIC_INIT(0);
-
 /* lock to memory controller's control array */
 static DECLARE_MUTEX(mem_ctls_mutex);
 static struct list_head mc_devices = LIST_HEAD_INIT(mc_devices);
 
 static struct task_struct *edac_thread;
 
+#ifdef CONFIG_PCI
+static int check_pci_parity = 0;       /* default YES check PCI parity */
+static int panic_on_pci_parity;                /* default no panic on PCI Parity */
+static atomic_t pci_parity_count = ATOMIC_INIT(0);
+
 /* Structure of the whitelist and blacklist arrays */
 struct edac_pci_device_list {
        unsigned int  vendor;           /* Vendor ID */
@@ -80,6 +80,12 @@ static int pci_blacklist_count;
 static struct edac_pci_device_list pci_whitelist[MAX_LISTED_PCI_DEVICES];
 static int pci_whitelist_count ;
 
+#ifndef DISABLE_EDAC_SYSFS
+static struct kobject edac_pci_kobj; /* /sys/devices/system/edac/pci */
+static struct completion edac_pci_kobj_complete;
+#endif /* DISABLE_EDAC_SYSFS */
+#endif /* CONFIG_PCI */
+
 /*  START sysfs data and methods */
 
 #ifndef DISABLE_EDAC_SYSFS
@@ -127,18 +133,15 @@ static struct sysdev_class edac_class = {
        set_kset_name("edac"),
 };
 
-/* sysfs objects:
+/* sysfs object:
  *     /sys/devices/system/edac/mc
- *     /sys/devices/system/edac/pci
  */
 static struct kobject edac_memctrl_kobj;
-static struct kobject edac_pci_kobj;
 
 /* We use these to wait for the reference counts on edac_memctrl_kobj and
  * edac_pci_kobj to reach 0.
  */
 static struct completion edac_memctrl_kobj_complete;
-static struct completion edac_pci_kobj_complete;
 
 /*
  * /sys/devices/system/edac/mc;
@@ -324,6 +327,8 @@ static void edac_sysfs_memctrl_teardown(void)
 #endif  /* DISABLE_EDAC_SYSFS */
 }
 
+#ifdef CONFIG_PCI
+
 #ifndef DISABLE_EDAC_SYSFS
 
 /*
@@ -624,6 +629,252 @@ static void edac_sysfs_pci_teardown(void)
 #endif
 }
 
+
+static u16 get_pci_parity_status(struct pci_dev *dev, int secondary)
+{
+       int where;
+       u16 status;
+
+       where = secondary ? PCI_SEC_STATUS : PCI_STATUS;
+       pci_read_config_word(dev, where, &status);
+
+       /* If we get back 0xFFFF then we must suspect that the card has been
+        * pulled but the Linux PCI layer has not yet finished cleaning up.
+        * We don't want to report on such devices
+        */
+
+       if (status == 0xFFFF) {
+               u32 sanity;
+
+               pci_read_config_dword(dev, 0, &sanity);
+
+               if (sanity == 0xFFFFFFFF)
+                       return 0;
+       }
+
+       status &= PCI_STATUS_DETECTED_PARITY | PCI_STATUS_SIG_SYSTEM_ERROR |
+               PCI_STATUS_PARITY;
+
+       if (status)
+               /* reset only the bits we are interested in */
+               pci_write_config_word(dev, where, status);
+
+       return status;
+}
+
+typedef void (*pci_parity_check_fn_t) (struct pci_dev *dev);
+
+/* Clear any PCI parity errors logged by this device. */
+static void edac_pci_dev_parity_clear(struct pci_dev *dev)
+{
+       u8 header_type;
+
+       get_pci_parity_status(dev, 0);
+
+       /* read the device TYPE, looking for bridges */
+       pci_read_config_byte(dev, PCI_HEADER_TYPE, &header_type);
+
+       if ((header_type & 0x7F) == PCI_HEADER_TYPE_BRIDGE)
+               get_pci_parity_status(dev, 1);
+}
+
+/*
+ *  PCI Parity polling
+ *
+ */
+static void edac_pci_dev_parity_test(struct pci_dev *dev)
+{
+       u16 status;
+       u8  header_type;
+
+       /* read the STATUS register on this device
+        */
+       status = get_pci_parity_status(dev, 0);
+
+       debugf2("PCI STATUS= 0x%04x %s\n", status, dev->dev.bus_id );
+
+       /* check the status reg for errors */
+       if (status) {
+               if (status & (PCI_STATUS_SIG_SYSTEM_ERROR))
+                       edac_printk(KERN_CRIT, EDAC_PCI,
+                               "Signaled System Error on %s\n",
+                               pci_name(dev));
+
+               if (status & (PCI_STATUS_PARITY)) {
+                       edac_printk(KERN_CRIT, EDAC_PCI,
+                               "Master Data Parity Error on %s\n",
+                               pci_name(dev));
+
+                       atomic_inc(&pci_parity_count);
+               }
+
+               if (status & (PCI_STATUS_DETECTED_PARITY)) {
+                       edac_printk(KERN_CRIT, EDAC_PCI,
+                               "Detected Parity Error on %s\n",
+                               pci_name(dev));
+
+                       atomic_inc(&pci_parity_count);
+               }
+       }
+
+       /* read the device TYPE, looking for bridges */
+       pci_read_config_byte(dev, PCI_HEADER_TYPE, &header_type);
+
+       debugf2("PCI HEADER TYPE= 0x%02x %s\n", header_type, dev->dev.bus_id );
+
+       if ((header_type & 0x7F) == PCI_HEADER_TYPE_BRIDGE) {
+               /* On bridges, need to examine secondary status register  */
+               status = get_pci_parity_status(dev, 1);
+
+               debugf2("PCI SEC_STATUS= 0x%04x %s\n",
+                               status, dev->dev.bus_id );
+
+               /* check the secondary status reg for errors */
+               if (status) {
+                       if (status & (PCI_STATUS_SIG_SYSTEM_ERROR))
+                               edac_printk(KERN_CRIT, EDAC_PCI, "Bridge "
+                                       "Signaled System Error on %s\n",
+                                       pci_name(dev));
+
+                       if (status & (PCI_STATUS_PARITY)) {
+                               edac_printk(KERN_CRIT, EDAC_PCI, "Bridge "
+                                       "Master Data Parity Error on "
+                                       "%s\n", pci_name(dev));
+
+                               atomic_inc(&pci_parity_count);
+                       }
+
+                       if (status & (PCI_STATUS_DETECTED_PARITY)) {
+                               edac_printk(KERN_CRIT, EDAC_PCI, "Bridge "
+                                       "Detected Parity Error on %s\n",
+                                       pci_name(dev));
+
+                               atomic_inc(&pci_parity_count);
+                       }
+               }
+       }
+}
+
+/*
+ * check_dev_on_list: Scan for a PCI device on a white/black list
+ * @list:      an EDAC  &edac_pci_device_list  white/black list pointer
+ * @free_index:        index of next free entry on the list
+ * @pci_dev:   PCI Device pointer
+ *
+ * see if list contains the device.
+ *
+ * Returns:    0 not found
+ *             1 found on list
+ */
+static int check_dev_on_list(struct edac_pci_device_list *list,
+               int free_index, struct pci_dev *dev)
+{
+       int i;
+       int rc = 0;     /* Assume not found */
+       unsigned short vendor=dev->vendor;
+       unsigned short device=dev->device;
+
+       /* Scan the list, looking for a vendor/device match */
+       for (i = 0; i < free_index; i++, list++ ) {
+               if ((list->vendor == vendor ) && (list->device == device )) {
+                       rc = 1;
+                       break;
+               }
+       }
+
+       return rc;
+}
+
+/*
+ * pci_dev parity list iterator
+ *     Scan the PCI device list for one iteration, looking for SERRORs
+ *     Master Parity ERRORS or Parity ERRORs on primary or secondary devices
+ */
+static inline void edac_pci_dev_parity_iterator(pci_parity_check_fn_t fn)
+{
+       struct pci_dev *dev = NULL;
+
+       /* request for kernel access to the next PCI device, if any,
+        * and while we are looking at it have its reference count
+        * bumped until we are done with it
+        */
+       while((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
+               /* if whitelist exists then it has priority, so only scan
+                * those devices on the whitelist
+                */
+               if (pci_whitelist_count > 0 ) {
+                       if (check_dev_on_list(pci_whitelist,
+                                       pci_whitelist_count, dev))
+                               fn(dev);
+               } else {
+                       /*
+                        * if no whitelist, then check if this devices is
+                        * blacklisted
+                        */
+                       if (!check_dev_on_list(pci_blacklist,
+                                       pci_blacklist_count, dev))
+                               fn(dev);
+               }
+       }
+}
+
+static void do_pci_parity_check(void)
+{
+       unsigned long flags;
+       int before_count;
+
+       debugf3("%s()\n", __func__);
+
+       if (!check_pci_parity)
+               return;
+
+       before_count = atomic_read(&pci_parity_count);
+
+       /* scan all PCI devices looking for a Parity Error on devices and
+        * bridges
+        */
+       local_irq_save(flags);
+       edac_pci_dev_parity_iterator(edac_pci_dev_parity_test);
+       local_irq_restore(flags);
+
+       /* Only if operator has selected panic on PCI Error */
+       if (panic_on_pci_parity) {
+               /* If the count is different 'after' from 'before' */
+               if (before_count != atomic_read(&pci_parity_count))
+                       panic("EDAC: PCI Parity Error");
+       }
+}
+
+static inline void clear_pci_parity_errors(void)
+{
+       /* Clear any PCI bus parity errors that devices initially have logged
+        * in their registers.
+        */
+       edac_pci_dev_parity_iterator(edac_pci_dev_parity_clear);
+}
+
+#else  /* CONFIG_PCI */
+
+static inline void do_pci_parity_check(void)
+{
+       /* no-op */
+}
+
+static inline void clear_pci_parity_errors(void)
+{
+       /* no-op */
+}
+
+static void edac_sysfs_pci_teardown(void)
+{
+}
+
+static int edac_sysfs_pci_setup(void)
+{
+       return 0;
+}
+#endif /* CONFIG_PCI */
+
 #ifndef DISABLE_EDAC_SYSFS
 
 /* EDAC sysfs CSROW data structures and methods */
@@ -1132,7 +1383,7 @@ static int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)
                return err;
 
        /* create a symlink for the device */
-       err = sysfs_create_link(edac_mci_kobj, &mci->pdev->dev.kobj,
+       err = sysfs_create_link(edac_mci_kobj, &mci->dev->kobj,
                                EDAC_DEVICE_SYMLINK);
 
        if (err)
@@ -1238,7 +1489,7 @@ void edac_mc_dump_mci(struct mem_ctl_info *mci)
        debugf4("\tmci->edac_check = %p\n", mci->edac_check);
        debugf3("\tmci->nr_csrows = %d, csrows = %p\n",
                mci->nr_csrows, mci->csrows);
-       debugf3("\tpdev = %p\n", mci->pdev);
+       debugf3("\tdev = %p\n", mci->dev);
        debugf3("\tmod_name:ctl_name = %s:%s\n",
                mci->mod_name, mci->ctl_name);
        debugf3("\tpvt_info = %p\n\n", mci->pvt_info);
@@ -1363,7 +1614,7 @@ void edac_mc_free(struct mem_ctl_info *mci)
 }
 EXPORT_SYMBOL_GPL(edac_mc_free);
 
-static struct mem_ctl_info *find_mci_by_pdev(struct pci_dev *pdev)
+static struct mem_ctl_info *find_mci_by_dev(struct device *dev)
 {
        struct mem_ctl_info *mci;
        struct list_head *item;
@@ -1373,54 +1624,53 @@ static struct mem_ctl_info *find_mci_by_pdev(struct pci_dev *pdev)
        list_for_each(item, &mc_devices) {
                mci = list_entry(item, struct mem_ctl_info, link);
 
-               if (mci->pdev == pdev)
+               if (mci->dev == dev)
                        return mci;
        }
 
        return NULL;
 }
 
-static int add_mc_to_global_list(struct mem_ctl_info *mci)
+/* Return 0 on success, 1 on failure.
+ * Before calling this function, caller must
+ * assign a unique value to mci->mc_idx.
+ */
+static int add_mc_to_global_list (struct mem_ctl_info *mci)
 {
        struct list_head *item, *insert_before;
        struct mem_ctl_info *p;
-       int i;
 
-       if (list_empty(&mc_devices)) {
-               mci->mc_idx = 0;
-               insert_before = &mc_devices;
-       } else {
-               if (find_mci_by_pdev(mci->pdev)) {
-                       edac_printk(KERN_WARNING, EDAC_MC,
-                               "%s (%s) %s %s already assigned %d\n",
-                               mci->pdev->dev.bus_id,
-                               pci_name(mci->pdev), mci->mod_name,
-                               mci->ctl_name, mci->mc_idx);
-                       return 1;
-               }
+       insert_before = &mc_devices;
 
-               insert_before = NULL;
-               i = 0;
+       if (unlikely((p = find_mci_by_dev(mci->dev)) != NULL))
+               goto fail0;
 
-               list_for_each(item, &mc_devices) {
-                       p = list_entry(item, struct mem_ctl_info, link);
+       list_for_each(item, &mc_devices) {
+               p = list_entry(item, struct mem_ctl_info, link);
 
-                       if (p->mc_idx != i) {
-                               insert_before = item;
-                               break;
-                       }
+               if (p->mc_idx >= mci->mc_idx) {
+                       if (unlikely(p->mc_idx == mci->mc_idx))
+                               goto fail1;
 
-                       i++;
+                       insert_before = item;
+                       break;
                }
-
-               mci->mc_idx = i;
-
-               if (insert_before == NULL)
-                       insert_before = &mc_devices;
        }
 
        list_add_tail_rcu(&mci->link, insert_before);
        return 0;
+
+fail0:
+       edac_printk(KERN_WARNING, EDAC_MC,
+                   "%s (%s) %s %s already assigned %d\n", p->dev->bus_id,
+                   dev_name(p->dev), p->mod_name, p->ctl_name, p->mc_idx);
+       return 1;
+
+fail1:
+       edac_printk(KERN_WARNING, EDAC_MC,
+                   "bug in low-level driver: attempt to assign\n"
+                   "    duplicate mc_idx %d in %s()\n", p->mc_idx, __func__);
+       return 1;
 }
 
 static void complete_mc_list_del(struct rcu_head *head)
@@ -1444,6 +1694,7 @@ static void del_mc_from_global_list(struct mem_ctl_info *mci)
  * edac_mc_add_mc: Insert the 'mci' structure into the mci global list and
  *                 create sysfs entries associated with mci structure
  * @mci: pointer to the mci structure to be added to the list
+ * @mc_idx: A unique numeric identifier to be assigned to the 'mci' structure.
  *
  * Return:
  *     0       Success
@@ -1451,9 +1702,10 @@ static void del_mc_from_global_list(struct mem_ctl_info *mci)
  */
 
 /* FIXME - should a warning be printed if no error detection? correction? */
-int edac_mc_add_mc(struct mem_ctl_info *mci)
+int edac_mc_add_mc(struct mem_ctl_info *mci, int mc_idx)
 {
        debugf0("%s()\n", __func__);
+       mci->mc_idx = mc_idx;
 #ifdef CONFIG_EDAC_DEBUG
        if (edac_debug_level >= 3)
                edac_mc_dump_mci(mci);
@@ -1486,8 +1738,8 @@ int edac_mc_add_mc(struct mem_ctl_info *mci)
         }
 
        /* Report action taken */
-       edac_mc_printk(mci, KERN_INFO, "Giving out device to %s %s: PCI %s\n",
-               mci->mod_name, mci->ctl_name, pci_name(mci->pdev));
+       edac_mc_printk(mci, KERN_INFO, "Giving out device to %s %s: DEV %s\n",
+               mci->mod_name, mci->ctl_name, dev_name(mci->dev));
 
        up(&mem_ctls_mutex);
        return 0;
@@ -1504,18 +1756,18 @@ EXPORT_SYMBOL_GPL(edac_mc_add_mc);
 /**
  * edac_mc_del_mc: Remove sysfs entries for specified mci structure and
  *                 remove mci structure from global list
- * @pdev: Pointer to 'struct pci_dev' representing mci structure to remove.
+ * @pdev: Pointer to 'struct device' representing mci structure to remove.
  *
  * Return pointer to removed mci structure, or NULL if device not found.
  */
-struct mem_ctl_info * edac_mc_del_mc(struct pci_dev *pdev)
+struct mem_ctl_info * edac_mc_del_mc(struct device *dev)
 {
        struct mem_ctl_info *mci;
 
        debugf0("MC: %s()\n", __func__);
        down(&mem_ctls_mutex);
 
-       if ((mci = find_mci_by_pdev(pdev)) == NULL) {
+       if ((mci = find_mci_by_dev(dev)) == NULL) {
                up(&mem_ctls_mutex);
                return NULL;
        }
@@ -1524,8 +1776,8 @@ struct mem_ctl_info * edac_mc_del_mc(struct pci_dev *pdev)
        del_mc_from_global_list(mci);
        up(&mem_ctls_mutex);
        edac_printk(KERN_INFO, EDAC_MC,
-               "Removed device %d for %s %s: PCI %s\n", mci->mc_idx,
-               mci->mod_name, mci->ctl_name, pci_name(mci->pdev));
+               "Removed device %d for %s %s: DEV %s\n", mci->mc_idx,
+               mci->mod_name, mci->ctl_name, dev_name(mci->dev));
        return mci;
 }
 EXPORT_SYMBOL_GPL(edac_mc_del_mc);
@@ -1739,244 +1991,6 @@ void edac_mc_handle_ue_no_info(struct mem_ctl_info *mci, const char *msg)
 }
 EXPORT_SYMBOL_GPL(edac_mc_handle_ue_no_info);
 
-#ifdef CONFIG_PCI
-
-static u16 get_pci_parity_status(struct pci_dev *dev, int secondary)
-{
-       int where;
-       u16 status;
-
-       where = secondary ? PCI_SEC_STATUS : PCI_STATUS;
-       pci_read_config_word(dev, where, &status);
-
-       /* If we get back 0xFFFF then we must suspect that the card has been
-        * pulled but the Linux PCI layer has not yet finished cleaning up.
-        * We don't want to report on such devices
-        */
-
-       if (status == 0xFFFF) {
-               u32 sanity;
-
-               pci_read_config_dword(dev, 0, &sanity);
-
-               if (sanity == 0xFFFFFFFF)
-                       return 0;
-       }
-
-       status &= PCI_STATUS_DETECTED_PARITY | PCI_STATUS_SIG_SYSTEM_ERROR |
-               PCI_STATUS_PARITY;
-
-       if (status)
-               /* reset only the bits we are interested in */
-               pci_write_config_word(dev, where, status);
-
-       return status;
-}
-
-typedef void (*pci_parity_check_fn_t) (struct pci_dev *dev);
-
-/* Clear any PCI parity errors logged by this device. */
-static void edac_pci_dev_parity_clear(struct pci_dev *dev)
-{
-       u8 header_type;
-
-       get_pci_parity_status(dev, 0);
-
-       /* read the device TYPE, looking for bridges */
-       pci_read_config_byte(dev, PCI_HEADER_TYPE, &header_type);
-
-       if ((header_type & 0x7F) == PCI_HEADER_TYPE_BRIDGE)
-               get_pci_parity_status(dev, 1);
-}
-
-/*
- *  PCI Parity polling
- *
- */
-static void edac_pci_dev_parity_test(struct pci_dev *dev)
-{
-       u16 status;
-       u8  header_type;
-
-       /* read the STATUS register on this device
-        */
-       status = get_pci_parity_status(dev, 0);
-
-       debugf2("PCI STATUS= 0x%04x %s\n", status, dev->dev.bus_id );
-
-       /* check the status reg for errors */
-       if (status) {
-               if (status & (PCI_STATUS_SIG_SYSTEM_ERROR))
-                       edac_printk(KERN_CRIT, EDAC_PCI,
-                               "Signaled System Error on %s\n",
-                               pci_name(dev));
-
-               if (status & (PCI_STATUS_PARITY)) {
-                       edac_printk(KERN_CRIT, EDAC_PCI,
-                               "Master Data Parity Error on %s\n",
-                               pci_name(dev));
-
-                       atomic_inc(&pci_parity_count);
-               }
-
-               if (status & (PCI_STATUS_DETECTED_PARITY)) {
-                       edac_printk(KERN_CRIT, EDAC_PCI,
-                               "Detected Parity Error on %s\n",
-                               pci_name(dev));
-
-                       atomic_inc(&pci_parity_count);
-               }
-       }
-
-       /* read the device TYPE, looking for bridges */
-       pci_read_config_byte(dev, PCI_HEADER_TYPE, &header_type);
-
-       debugf2("PCI HEADER TYPE= 0x%02x %s\n", header_type, dev->dev.bus_id );
-
-       if ((header_type & 0x7F) == PCI_HEADER_TYPE_BRIDGE) {
-               /* On bridges, need to examine secondary status register  */
-               status = get_pci_parity_status(dev, 1);
-
-               debugf2("PCI SEC_STATUS= 0x%04x %s\n",
-                               status, dev->dev.bus_id );
-
-               /* check the secondary status reg for errors */
-               if (status) {
-                       if (status & (PCI_STATUS_SIG_SYSTEM_ERROR))
-                               edac_printk(KERN_CRIT, EDAC_PCI, "Bridge "
-                                       "Signaled System Error on %s\n",
-                                       pci_name(dev));
-
-                       if (status & (PCI_STATUS_PARITY)) {
-                               edac_printk(KERN_CRIT, EDAC_PCI, "Bridge "
-                                       "Master Data Parity Error on "
-                                       "%s\n", pci_name(dev));
-
-                               atomic_inc(&pci_parity_count);
-                       }
-
-                       if (status & (PCI_STATUS_DETECTED_PARITY)) {
-                               edac_printk(KERN_CRIT, EDAC_PCI, "Bridge "
-                                       "Detected Parity Error on %s\n",
-                                       pci_name(dev));
-
-                               atomic_inc(&pci_parity_count);
-                       }
-               }
-       }
-}
-
-/*
- * check_dev_on_list: Scan for a PCI device on a white/black list
- * @list:      an EDAC  &edac_pci_device_list  white/black list pointer
- * @free_index:        index of next free entry on the list
- * @pci_dev:   PCI Device pointer
- *
- * see if list contains the device.
- *
- * Returns:    0 not found
- *             1 found on list
- */
-static int check_dev_on_list(struct edac_pci_device_list *list,
-               int free_index, struct pci_dev *dev)
-{
-       int i;
-       int rc = 0;     /* Assume not found */
-       unsigned short vendor=dev->vendor;
-       unsigned short device=dev->device;
-
-       /* Scan the list, looking for a vendor/device match */
-       for (i = 0; i < free_index; i++, list++ ) {
-               if ((list->vendor == vendor ) && (list->device == device )) {
-                       rc = 1;
-                       break;
-               }
-       }
-
-       return rc;
-}
-
-/*
- * pci_dev parity list iterator
- *     Scan the PCI device list for one iteration, looking for SERRORs
- *     Master Parity ERRORS or Parity ERRORs on primary or secondary devices
- */
-static inline void edac_pci_dev_parity_iterator(pci_parity_check_fn_t fn)
-{
-       struct pci_dev *dev = NULL;
-
-       /* request for kernel access to the next PCI device, if any,
-        * and while we are looking at it have its reference count
-        * bumped until we are done with it
-        */
-       while((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
-               /* if whitelist exists then it has priority, so only scan
-                * those devices on the whitelist
-                */
-               if (pci_whitelist_count > 0 ) {
-                       if (check_dev_on_list(pci_whitelist,
-                                       pci_whitelist_count, dev))
-                               fn(dev);
-               } else {
-                       /*
-                        * if no whitelist, then check if this devices is
-                        * blacklisted
-                        */
-                       if (!check_dev_on_list(pci_blacklist,
-                                       pci_blacklist_count, dev))
-                               fn(dev);
-               }
-       }
-}
-
-static void do_pci_parity_check(void)
-{
-       unsigned long flags;
-       int before_count;
-
-       debugf3("%s()\n", __func__);
-
-       if (!check_pci_parity)
-               return;
-
-       before_count = atomic_read(&pci_parity_count);
-
-       /* scan all PCI devices looking for a Parity Error on devices and
-        * bridges
-        */
-       local_irq_save(flags);
-       edac_pci_dev_parity_iterator(edac_pci_dev_parity_test);
-       local_irq_restore(flags);
-
-       /* Only if operator has selected panic on PCI Error */
-       if (panic_on_pci_parity) {
-               /* If the count is different 'after' from 'before' */
-               if (before_count != atomic_read(&pci_parity_count))
-                       panic("EDAC: PCI Parity Error");
-       }
-}
-
-static inline void clear_pci_parity_errors(void)
-{
-       /* Clear any PCI bus parity errors that devices initially have logged
-        * in their registers.
-        */
-       edac_pci_dev_parity_iterator(edac_pci_dev_parity_clear);
-}
-
-#else  /* CONFIG_PCI */
-
-static inline void do_pci_parity_check(void)
-{
-       /* no-op */
-}
-
-static inline void clear_pci_parity_errors(void)
-{
-       /* no-op */
-}
-
-#endif  /* CONFIG_PCI */
 
 /*
  * Iterate over all MC instances and check for ECC, et al, errors
@@ -2096,10 +2110,12 @@ MODULE_DESCRIPTION("Core library routines for MC reporting");
 
 module_param(panic_on_ue, int, 0644);
 MODULE_PARM_DESC(panic_on_ue, "Panic on uncorrected error: 0=off 1=on");
+#ifdef CONFIG_PCI
 module_param(check_pci_parity, int, 0644);
 MODULE_PARM_DESC(check_pci_parity, "Check for PCI bus parity errors: 0=off 1=on");
 module_param(panic_on_pci_parity, int, 0644);
 MODULE_PARM_DESC(panic_on_pci_parity, "Panic on PCI Bus Parity error: 0=off 1=on");
+#endif
 module_param(log_ue, int, 0644);
 MODULE_PARM_DESC(log_ue, "Log uncorrectable error to console: 0=off 1=on");
 module_param(log_ce, int, 0644);
index 8d9e83909b9c3a864200734c6d68990ce85ddbd8..1be4947e28af6a3ce20cb6b5b79f0c0c2458ac6d 100644 (file)
@@ -18,7 +18,6 @@
 #ifndef _EDAC_MC_H_
 #define _EDAC_MC_H_
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/module.h>
@@ -88,6 +87,12 @@ extern int edac_debug_level;
 #define PCI_VEND_DEV(vend, dev) PCI_VENDOR_ID_ ## vend, \
        PCI_DEVICE_ID_ ## vend ## _ ## dev
 
+#if defined(CONFIG_X86) && defined(CONFIG_PCI)
+#define dev_name(dev) pci_name(to_pci_dev(dev))
+#else
+#define dev_name(dev) to_platform_device(dev)->name
+#endif
+
 /* memory devices */
 enum dev_type {
        DEV_UNKNOWN = 0,
@@ -327,10 +332,10 @@ struct mem_ctl_info {
        struct csrow_info *csrows;
        /*
         * FIXME - what about controllers on other busses? - IDs must be
-        * unique.  pdev pointer should be sufficiently unique, but
+        * unique.  dev pointer should be sufficiently unique, but
         * BUS:SLOT.FUNC numbers may not be unique.
         */
-       struct pci_dev *pdev;
+       struct device *dev;
        const char *mod_name;
        const char *mod_ver;
        const char *ctl_name;
@@ -353,6 +358,8 @@ struct mem_ctl_info {
        struct completion kobj_complete;
 };
 
+#ifdef CONFIG_PCI
+
 /* write all or some bits in a byte-register*/
 static inline void pci_write_bits8(struct pci_dev *pdev, int offset, u8 value,
                u8 mask)
@@ -401,14 +408,16 @@ static inline void pci_write_bits32(struct pci_dev *pdev, int offset,
        pci_write_config_dword(pdev, offset, value);
 }
 
+#endif /* CONFIG_PCI */
+
 #ifdef CONFIG_EDAC_DEBUG
 void edac_mc_dump_channel(struct channel_info *chan);
 void edac_mc_dump_mci(struct mem_ctl_info *mci);
 void edac_mc_dump_csrow(struct csrow_info *csrow);
 #endif  /* CONFIG_EDAC_DEBUG */
 
-extern int edac_mc_add_mc(struct mem_ctl_info *mci);
-extern struct mem_ctl_info * edac_mc_del_mc(struct pci_dev *pdev);
+extern int edac_mc_add_mc(struct mem_ctl_info *mci,int mc_idx);
+extern struct mem_ctl_info * edac_mc_del_mc(struct device *dev);
 extern int edac_mc_find_csrow_by_page(struct mem_ctl_info *mci,
                                        unsigned long page);
 extern void edac_mc_scrub_block(unsigned long page, unsigned long offset,
index fd342163cf97fa827099bbdd5a694f20134bad6f..e30a4a2eaf38bddf6a6b1f4d67497caf5ca5133c 100644 (file)
@@ -9,7 +9,6 @@
  * by Thayne Harbaugh of Linux Networx. (http://lnxi.com)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/pci.h>
@@ -17,6 +16,8 @@
 #include <linux/slab.h>
 #include "edac_mc.h"
 
+#define  I82860_REVISION " Ver: 2.0.0 " __DATE__
+
 #define i82860_printk(level, fmt, arg...) \
        edac_printk(level, "i82860", fmt, ##arg)
 
@@ -63,17 +64,21 @@ static struct pci_dev *mci_pdev = NULL;     /* init dev: in case that AGP code
 static void i82860_get_error_info(struct mem_ctl_info *mci,
                struct i82860_error_info *info)
 {
+       struct pci_dev *pdev;
+
+       pdev = to_pci_dev(mci->dev);
+
        /*
         * This is a mess because there is no atomic way to read all the
         * registers at once and the registers can transition from CE being
         * overwritten by UE.
         */
-       pci_read_config_word(mci->pdev, I82860_ERRSTS, &info->errsts);
-       pci_read_config_dword(mci->pdev, I82860_EAP, &info->eap);
-       pci_read_config_word(mci->pdev, I82860_DERRCTL_STS, &info->derrsyn);
-       pci_read_config_word(mci->pdev, I82860_ERRSTS, &info->errsts2);
+       pci_read_config_word(pdev, I82860_ERRSTS, &info->errsts);
+       pci_read_config_dword(pdev, I82860_EAP, &info->eap);
+       pci_read_config_word(pdev, I82860_DERRCTL_STS, &info->derrsyn);
+       pci_read_config_word(pdev, I82860_ERRSTS, &info->errsts2);
 
-       pci_write_bits16(mci->pdev, I82860_ERRSTS, 0x0003, 0x0003);
+       pci_write_bits16(pdev, I82860_ERRSTS, 0x0003, 0x0003);
 
        /*
         * If the error is the same for both reads then the first set of reads
@@ -84,8 +89,8 @@ static void i82860_get_error_info(struct mem_ctl_info *mci,
                return;
 
        if ((info->errsts ^ info->errsts2) & 0x0003) {
-               pci_read_config_dword(mci->pdev, I82860_EAP, &info->eap);
-               pci_read_config_word(mci->pdev, I82860_DERRCTL_STS,
+               pci_read_config_dword(pdev, I82860_EAP, &info->eap);
+               pci_read_config_word(pdev, I82860_DERRCTL_STS,
                                &info->derrsyn);
        }
 }
@@ -127,15 +132,50 @@ static void i82860_check(struct mem_ctl_info *mci)
        i82860_process_error_info(mci, &info, 1);
 }
 
-static int i82860_probe1(struct pci_dev *pdev, int dev_idx)
+static void i82860_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev)
 {
-       int rc = -ENODEV;
-       int index;
-       struct mem_ctl_info *mci = NULL;
        unsigned long last_cumul_size;
-       struct i82860_error_info discard;
+       u16 mchcfg_ddim;  /* DRAM Data Integrity Mode 0=none, 2=edac */
+       u16 value;
+       u32 cumul_size;
+       struct csrow_info *csrow;
+       int index;
+
+       pci_read_config_word(pdev, I82860_MCHCFG, &mchcfg_ddim);
+       mchcfg_ddim = mchcfg_ddim & 0x180;
+       last_cumul_size = 0;
+
+       /* The group row boundary (GRA) reg values are boundary address
+        * for each DRAM row with a granularity of 16MB.  GRA regs are
+        * cumulative; therefore GRA15 will contain the total memory contained
+        * in all eight rows.
+        */
+       for (index = 0; index < mci->nr_csrows; index++) {
+               csrow = &mci->csrows[index];
+               pci_read_config_word(pdev, I82860_GBA + index * 2, &value);
+               cumul_size = (value & I82860_GBA_MASK) <<
+                   (I82860_GBA_SHIFT - PAGE_SHIFT);
+               debugf3("%s(): (%d) cumul_size 0x%x\n", __func__, index,
+                       cumul_size);
 
-       u16 mchcfg_ddim;        /* DRAM Data Integrity Mode 0=none,2=edac */
+               if (cumul_size == last_cumul_size)
+                       continue;       /* not populated */
+
+               csrow->first_page = last_cumul_size;
+               csrow->last_page = cumul_size - 1;
+               csrow->nr_pages = cumul_size - last_cumul_size;
+               last_cumul_size = cumul_size;
+               csrow->grain = 1 << 12; /* I82860_EAP has 4KiB reolution */
+               csrow->mtype = MEM_RMBS;
+               csrow->dtype = DEV_UNKNOWN;
+               csrow->edac_mode = mchcfg_ddim ? EDAC_SECDED : EDAC_NONE;
+       }
+}
+
+static int i82860_probe1(struct pci_dev *pdev, int dev_idx)
+{
+       struct mem_ctl_info *mci;
+       struct i82860_error_info discard;
 
        /* RDRAM has channels but these don't map onto the abstractions that
           edac uses.
@@ -151,67 +191,35 @@ static int i82860_probe1(struct pci_dev *pdev, int dev_idx)
                return -ENOMEM;
 
        debugf3("%s(): init mci\n", __func__);
-       mci->pdev = pdev;
+       mci->dev = &pdev->dev;
        mci->mtype_cap = MEM_FLAG_DDR;
-
        mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
        /* I"m not sure about this but I think that all RDRAM is SECDED */
        mci->edac_cap = EDAC_FLAG_SECDED;
-       /* adjust FLAGS */
-
        mci->mod_name = EDAC_MOD_STR;
-       mci->mod_ver = "$Revision: 1.1.2.6 $";
+       mci->mod_ver = I82860_REVISION;
        mci->ctl_name = i82860_devs[dev_idx].ctl_name;
        mci->edac_check = i82860_check;
        mci->ctl_page_to_phys = NULL;
+       i82860_init_csrows(mci, pdev);
+       i82860_get_error_info(mci, &discard);  /* clear counters */
 
-       pci_read_config_word(mci->pdev, I82860_MCHCFG, &mchcfg_ddim);
-       mchcfg_ddim = mchcfg_ddim & 0x180;
-
-       /*
-        * The group row boundary (GRA) reg values are boundary address
-        * for each DRAM row with a granularity of 16MB.  GRA regs are
-        * cumulative; therefore GRA15 will contain the total memory contained
-        * in all eight rows.
+       /* Here we assume that we will never see multiple instances of this
+        * type of memory controller.  The ID is therefore hardcoded to 0.
         */
-       for (last_cumul_size = index = 0; index < mci->nr_csrows; index++) {
-               u16 value;
-               u32 cumul_size;
-               struct csrow_info *csrow = &mci->csrows[index];
-
-               pci_read_config_word(mci->pdev, I82860_GBA + index * 2,
-                               &value);
-
-               cumul_size = (value & I82860_GBA_MASK) <<
-                   (I82860_GBA_SHIFT - PAGE_SHIFT);
-               debugf3("%s(): (%d) cumul_size 0x%x\n", __func__, index,
-                       cumul_size);
-
-               if (cumul_size == last_cumul_size)
-                       continue;       /* not populated */
-
-               csrow->first_page = last_cumul_size;
-               csrow->last_page = cumul_size - 1;
-               csrow->nr_pages = cumul_size - last_cumul_size;
-               last_cumul_size = cumul_size;
-               csrow->grain = 1 << 12;  /* I82860_EAP has 4KiB reolution */
-               csrow->mtype = MEM_RMBS;
-               csrow->dtype = DEV_UNKNOWN;
-               csrow->edac_mode = mchcfg_ddim ? EDAC_SECDED : EDAC_NONE;
+       if (edac_mc_add_mc(mci,0)) {
+               debugf3("%s(): failed edac_mc_add_mc()\n", __func__);
+               goto fail;
        }
 
-       i82860_get_error_info(mci, &discard);  /* clear counters */
+       /* get this far and it's successful */
+       debugf3("%s(): success\n", __func__);
 
-       if (edac_mc_add_mc(mci)) {
-               debugf3("%s(): failed edac_mc_add_mc()\n", __func__);
-               edac_mc_free(mci);
-       } else {
-               /* get this far and it's successful */
-               debugf3("%s(): success\n", __func__);
-               rc = 0;
-       }
+       return 0;
 
-       return rc;
+fail:
+       edac_mc_free(mci);
+       return -ENODEV;
 }
 
 /* returns count (>= 0), or negative on error */
@@ -240,7 +248,7 @@ static void __devexit i82860_remove_one(struct pci_dev *pdev)
 
        debugf0("%s()\n", __func__);
 
-       if ((mci = edac_mc_del_mc(pdev)) == NULL)
+       if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL)
                return;
 
        edac_mc_free(mci);
index 0aec92698f17afc741a9307e265a49d1ad9aa0ba..9423ee5e7edd2140f8dc3e9b947047186aa6bbad 100644 (file)
@@ -13,7 +13,6 @@
  * Note: E7210 appears same as D82875P - zhenyu.z.wang at intel.com
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/pci.h>
@@ -21,6 +20,8 @@
 #include <linux/slab.h>
 #include "edac_mc.h"
 
+#define I82875P_REVISION       " Ver: 2.0.0 " __DATE__
+
 #define i82875p_printk(level, fmt, arg...) \
        edac_printk(level, "i82875p", fmt, ##arg)
 
@@ -185,18 +186,22 @@ static int i82875p_registered = 1;
 static void i82875p_get_error_info(struct mem_ctl_info *mci,
                struct i82875p_error_info *info)
 {
+       struct pci_dev *pdev;
+
+       pdev = to_pci_dev(mci->dev);
+
        /*
         * This is a mess because there is no atomic way to read all the
         * registers at once and the registers can transition from CE being
         * overwritten by UE.
         */
-       pci_read_config_word(mci->pdev, I82875P_ERRSTS, &info->errsts);
-       pci_read_config_dword(mci->pdev, I82875P_EAP, &info->eap);
-       pci_read_config_byte(mci->pdev, I82875P_DES, &info->des);
-       pci_read_config_byte(mci->pdev, I82875P_DERRSYN, &info->derrsyn);
-       pci_read_config_word(mci->pdev, I82875P_ERRSTS, &info->errsts2);
+       pci_read_config_word(pdev, I82875P_ERRSTS, &info->errsts);
+       pci_read_config_dword(pdev, I82875P_EAP, &info->eap);
+       pci_read_config_byte(pdev, I82875P_DES, &info->des);
+       pci_read_config_byte(pdev, I82875P_DERRSYN, &info->derrsyn);
+       pci_read_config_word(pdev, I82875P_ERRSTS, &info->errsts2);
 
-       pci_write_bits16(mci->pdev, I82875P_ERRSTS, 0x0081, 0x0081);
+       pci_write_bits16(pdev, I82875P_ERRSTS, 0x0081, 0x0081);
 
        /*
         * If the error is the same then we can for both reads then
@@ -208,9 +213,9 @@ static void i82875p_get_error_info(struct mem_ctl_info *mci,
                return;
 
        if ((info->errsts ^ info->errsts2) & 0x0081) {
-               pci_read_config_dword(mci->pdev, I82875P_EAP, &info->eap);
-               pci_read_config_byte(mci->pdev, I82875P_DES, &info->des);
-               pci_read_config_byte(mci->pdev, I82875P_DERRSYN,
+               pci_read_config_dword(pdev, I82875P_EAP, &info->eap);
+               pci_read_config_byte(pdev, I82875P_DES, &info->des);
+               pci_read_config_byte(pdev, I82875P_DERRSYN,
                                &info->derrsyn);
        }
 }
@@ -259,116 +264,109 @@ static void i82875p_check(struct mem_ctl_info *mci)
 extern int pci_proc_attach_device(struct pci_dev *);
 #endif
 
-static int i82875p_probe1(struct pci_dev *pdev, int dev_idx)
+/* Return 0 on success or 1 on failure. */
+static int i82875p_setup_overfl_dev(struct pci_dev *pdev,
+               struct pci_dev **ovrfl_pdev, void __iomem **ovrfl_window)
 {
-       int rc = -ENODEV;
-       int index;
-       struct mem_ctl_info *mci = NULL;
-       struct i82875p_pvt *pvt = NULL;
-       unsigned long last_cumul_size;
-       struct pci_dev *ovrfl_pdev;
-       void __iomem *ovrfl_window = NULL;
-       u32 drc;
-       u32 drc_chan;           /* Number of channels 0=1chan,1=2chan */
-       u32 nr_chans;
-       u32 drc_ddim;           /* DRAM Data Integrity Mode 0=none,2=edac */
-       struct i82875p_error_info discard;
+       struct pci_dev *dev;
+       void __iomem *window;
 
-       debugf0("%s()\n", __func__);
-       ovrfl_pdev = pci_get_device(PCI_VEND_DEV(INTEL, 82875_6), NULL);
+       *ovrfl_pdev = NULL;
+       *ovrfl_window = NULL;
+       dev = pci_get_device(PCI_VEND_DEV(INTEL, 82875_6), NULL);
 
-       if (!ovrfl_pdev) {
-               /*
-                * Intel tells BIOS developers to hide device 6 which
+       if (dev == NULL) {
+               /* Intel tells BIOS developers to hide device 6 which
                 * configures the overflow device access containing
                 * the DRBs - this is where we expose device 6.
                 * http://www.x86-secret.com/articles/tweak/pat/patsecrets-2.htm
                 */
                pci_write_bits8(pdev, 0xf4, 0x2, 0x2);
-               ovrfl_pdev =
-                       pci_scan_single_device(pdev->bus, PCI_DEVFN(6, 0));
+               dev = pci_scan_single_device(pdev->bus, PCI_DEVFN(6, 0));
 
-               if (!ovrfl_pdev)
-                       return -ENODEV;
+               if (dev == NULL)
+                       return 1;
        }
 
+       *ovrfl_pdev = dev;
+
 #ifdef CONFIG_PROC_FS
-       if (!ovrfl_pdev->procent && pci_proc_attach_device(ovrfl_pdev)) {
-               i82875p_printk(KERN_ERR,
-                       "%s(): Failed to attach overflow device\n", __func__);
-               return -ENODEV;
+       if ((dev->procent == NULL) && pci_proc_attach_device(dev)) {
+               i82875p_printk(KERN_ERR, "%s(): Failed to attach overflow "
+                              "device\n", __func__);
+               return 1;
        }
-#endif
-                               /* CONFIG_PROC_FS */
-       if (pci_enable_device(ovrfl_pdev)) {
-               i82875p_printk(KERN_ERR,
-                       "%s(): Failed to enable overflow device\n", __func__);
-               return -ENODEV;
+#endif  /* CONFIG_PROC_FS */
+       if (pci_enable_device(dev)) {
+               i82875p_printk(KERN_ERR, "%s(): Failed to enable overflow "
+                              "device\n", __func__);
+               return 1;
        }
 
-       if (pci_request_regions(ovrfl_pdev, pci_name(ovrfl_pdev))) {
+       if (pci_request_regions(dev, pci_name(dev))) {
 #ifdef CORRECT_BIOS
                goto fail0;
 #endif
        }
 
        /* cache is irrelevant for PCI bus reads/writes */
-       ovrfl_window = ioremap_nocache(pci_resource_start(ovrfl_pdev, 0),
-                               pci_resource_len(ovrfl_pdev, 0));
+       window = ioremap_nocache(pci_resource_start(dev, 0),
+                                pci_resource_len(dev, 0));
 
-       if (!ovrfl_window) {
+       if (window == NULL) {
                i82875p_printk(KERN_ERR, "%s(): Failed to ioremap bar6\n",
-                       __func__);
+                              __func__);
                goto fail1;
        }
 
-       /* need to find out the number of channels */
-       drc = readl(ovrfl_window + I82875P_DRC);
-       drc_chan = ((drc >> 21) & 0x1);
-       nr_chans = drc_chan + 1;
+       *ovrfl_window = window;
+       return 0;
 
-       drc_ddim = (drc >> 18) & 0x1;
-       mci = edac_mc_alloc(sizeof(*pvt), I82875P_NR_CSROWS(nr_chans),
-                               nr_chans);
+fail1:
+       pci_release_regions(dev);
 
-       if (!mci) {
-               rc = -ENOMEM;
-               goto fail2;
-       }
+#ifdef CORRECT_BIOS
+fail0:
+       pci_disable_device(dev);
+#endif
+       /* NOTE: the ovrfl proc entry and pci_dev are intentionally left */
+       return 1;
+}
 
-       debugf3("%s(): init mci\n", __func__);
-       mci->pdev = pdev;
-       mci->mtype_cap = MEM_FLAG_DDR;
-       mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
-       mci->edac_cap = EDAC_FLAG_UNKNOWN;
-       /* adjust FLAGS */
 
-       mci->mod_name = EDAC_MOD_STR;
-       mci->mod_ver = "$Revision: 1.5.2.11 $";
-       mci->ctl_name = i82875p_devs[dev_idx].ctl_name;
-       mci->edac_check = i82875p_check;
-       mci->ctl_page_to_phys = NULL;
-       debugf3("%s(): init pvt\n", __func__);
-       pvt = (struct i82875p_pvt *) mci->pvt_info;
-       pvt->ovrfl_pdev = ovrfl_pdev;
-       pvt->ovrfl_window = ovrfl_window;
+/* Return 1 if dual channel mode is active.  Else return 0. */
+static inline int dual_channel_active(u32 drc)
+{
+       return (drc >> 21) & 0x1;
+}
 
-       /*
-        * The dram row boundary (DRB) reg values are boundary address
+
+static void i82875p_init_csrows(struct mem_ctl_info *mci,
+               struct pci_dev *pdev, void __iomem *ovrfl_window, u32 drc)
+{
+       struct csrow_info *csrow;
+       unsigned long last_cumul_size;
+       u8 value;
+       u32 drc_ddim;  /* DRAM Data Integrity Mode 0=none,2=edac */
+       u32 cumul_size;
+       int index;
+
+       drc_ddim = (drc >> 18) & 0x1;
+       last_cumul_size = 0;
+
+       /* The dram row boundary (DRB) reg values are boundary address
         * for each DRAM row with a granularity of 32 or 64MB (single/dual
         * channel operation).  DRB regs are cumulative; therefore DRB7 will
         * contain the total memory contained in all eight rows.
         */
-       for (last_cumul_size = index = 0; index < mci->nr_csrows; index++) {
-               u8 value;
-               u32 cumul_size;
-               struct csrow_info *csrow = &mci->csrows[index];
+
+       for (index = 0; index < mci->nr_csrows; index++) {
+               csrow = &mci->csrows[index];
 
                value = readb(ovrfl_window + I82875P_DRB + index);
                cumul_size = value << (I82875P_DRB_SHIFT - PAGE_SHIFT);
                debugf3("%s(): (%d) cumul_size 0x%x\n", __func__, index,
                        cumul_size);
-
                if (cumul_size == last_cumul_size)
                        continue;       /* not populated */
 
@@ -376,35 +374,75 @@ static int i82875p_probe1(struct pci_dev *pdev, int dev_idx)
                csrow->last_page = cumul_size - 1;
                csrow->nr_pages = cumul_size - last_cumul_size;
                last_cumul_size = cumul_size;
-               csrow->grain = 1 << 12;  /* I82875P_EAP has 4KiB reolution */
+               csrow->grain = 1 << 12; /* I82875P_EAP has 4KiB reolution */
                csrow->mtype = MEM_DDR;
                csrow->dtype = DEV_UNKNOWN;
                csrow->edac_mode = drc_ddim ? EDAC_SECDED : EDAC_NONE;
        }
+}
+
+static int i82875p_probe1(struct pci_dev *pdev, int dev_idx)
+{
+       int rc = -ENODEV;
+       struct mem_ctl_info *mci;
+       struct i82875p_pvt *pvt;
+       struct pci_dev *ovrfl_pdev;
+       void __iomem *ovrfl_window;
+       u32 drc;
+       u32 nr_chans;
+       struct i82875p_error_info discard;
+
+       debugf0("%s()\n", __func__);
+       ovrfl_pdev = pci_get_device(PCI_VEND_DEV(INTEL, 82875_6), NULL);
+
+       if (i82875p_setup_overfl_dev(pdev, &ovrfl_pdev, &ovrfl_window))
+               return -ENODEV;
+       drc = readl(ovrfl_window + I82875P_DRC);
+       nr_chans = dual_channel_active(drc) + 1;
+       mci = edac_mc_alloc(sizeof(*pvt), I82875P_NR_CSROWS(nr_chans),
+                               nr_chans);
+
+       if (!mci) {
+               rc = -ENOMEM;
+               goto fail0;
+       }
 
+       debugf3("%s(): init mci\n", __func__);
+       mci->dev = &pdev->dev;
+       mci->mtype_cap = MEM_FLAG_DDR;
+       mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
+       mci->edac_cap = EDAC_FLAG_UNKNOWN;
+       mci->mod_name = EDAC_MOD_STR;
+       mci->mod_ver = I82875P_REVISION;
+       mci->ctl_name = i82875p_devs[dev_idx].ctl_name;
+       mci->edac_check = i82875p_check;
+       mci->ctl_page_to_phys = NULL;
+       debugf3("%s(): init pvt\n", __func__);
+       pvt = (struct i82875p_pvt *) mci->pvt_info;
+       pvt->ovrfl_pdev = ovrfl_pdev;
+       pvt->ovrfl_window = ovrfl_window;
+       i82875p_init_csrows(mci, pdev, ovrfl_window, drc);
        i82875p_get_error_info(mci, &discard);  /* clear counters */
 
-       if (edac_mc_add_mc(mci)) {
+       /* Here we assume that we will never see multiple instances of this
+        * type of memory controller.  The ID is therefore hardcoded to 0.
+        */
+       if (edac_mc_add_mc(mci,0)) {
                debugf3("%s(): failed edac_mc_add_mc()\n", __func__);
-               goto fail3;
+               goto fail1;
        }
 
        /* get this far and it's successful */
        debugf3("%s(): success\n", __func__);
        return 0;
 
-fail3:
+fail1:
        edac_mc_free(mci);
 
-fail2:
+fail0:
        iounmap(ovrfl_window);
-
-fail1:
        pci_release_regions(ovrfl_pdev);
 
-#ifdef CORRECT_BIOS
-fail0:
-#endif
        pci_disable_device(ovrfl_pdev);
        /* NOTE: the ovrfl proc entry and pci_dev are intentionally left */
        return rc;
@@ -437,7 +475,7 @@ static void __devexit i82875p_remove_one(struct pci_dev *pdev)
 
        debugf0("%s()\n", __func__);
 
-       if ((mci = edac_mc_del_mc(pdev)) == NULL)
+       if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL)
                return;
 
        pvt = (struct i82875p_pvt *) mci->pvt_info;
index 2c29fafe67c7ef5877c950b6d9468caf6dc87cf2..a0e248d11ed9a8b674a124c8387a170dd06d82e1 100644 (file)
@@ -15,7 +15,6 @@
  * references to this document given in []
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/pci.h>
@@ -23,6 +22,8 @@
 #include <linux/slab.h>
 #include "edac_mc.h"
 
+#define R82600_REVISION        " Ver: 2.0.0 " __DATE__
+
 #define r82600_printk(level, fmt, arg...) \
        edac_printk(level, "r82600", fmt, ##arg)
 
@@ -134,17 +135,20 @@ static unsigned int disable_hardware_scrub = 0;
 static void r82600_get_error_info (struct mem_ctl_info *mci,
                struct r82600_error_info *info)
 {
-       pci_read_config_dword(mci->pdev, R82600_EAP, &info->eapr);
+       struct pci_dev *pdev;
+
+       pdev = to_pci_dev(mci->dev);
+       pci_read_config_dword(pdev, R82600_EAP, &info->eapr);
 
        if (info->eapr & BIT(0))
                /* Clear error to allow next error to be reported [p.62] */
-               pci_write_bits32(mci->pdev, R82600_EAP,
+               pci_write_bits32(pdev, R82600_EAP,
                                ((u32) BIT(0) & (u32) BIT(1)),
                                ((u32) BIT(0) & (u32) BIT(1)));
 
        if (info->eapr & BIT(1))
                /* Clear error to allow next error to be reported [p.62] */
-               pci_write_bits32(mci->pdev, R82600_EAP,
+               pci_write_bits32(pdev, R82600_EAP,
                                ((u32) BIT(0) & (u32) BIT(1)),
                                ((u32) BIT(0) & (u32) BIT(1)));
 }
@@ -200,25 +204,72 @@ static void r82600_check(struct mem_ctl_info *mci)
        r82600_process_error_info(mci, &info, 1);
 }
 
-static int r82600_probe1(struct pci_dev *pdev, int dev_idx)
+static inline int ecc_enabled(u8 dramcr)
+{
+       return dramcr & BIT(5);
+}
+
+static void r82600_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev,
+               u8 dramcr)
 {
-       int rc = -ENODEV;
+       struct csrow_info *csrow;
        int index;
-       struct mem_ctl_info *mci = NULL;
+       u8 drbar;  /* SDRAM Row Boundry Address Register */
+       u32 row_high_limit, row_high_limit_last;
+       u32 reg_sdram, ecc_on, row_base;
+
+       ecc_on = ecc_enabled(dramcr);
+       reg_sdram = dramcr & BIT(4);
+       row_high_limit_last = 0;
+
+       for (index = 0; index < mci->nr_csrows; index++) {
+               csrow = &mci->csrows[index];
+
+               /* find the DRAM Chip Select Base address and mask */
+               pci_read_config_byte(pdev, R82600_DRBA + index, &drbar);
+
+               debugf1("%s() Row=%d DRBA = %#0x\n", __func__, index, drbar);
+
+               row_high_limit = ((u32) drbar << 24);
+/*             row_high_limit = ((u32)drbar << 24) | 0xffffffUL; */
+
+               debugf1("%s() Row=%d, Boundry Address=%#0x, Last = %#0x\n",
+                       __func__, index, row_high_limit, row_high_limit_last);
+
+               /* Empty row [p.57] */
+               if (row_high_limit == row_high_limit_last)
+                       continue;
+
+               row_base = row_high_limit_last;
+
+               csrow->first_page = row_base >> PAGE_SHIFT;
+               csrow->last_page = (row_high_limit >> PAGE_SHIFT) - 1;
+               csrow->nr_pages = csrow->last_page - csrow->first_page + 1;
+               /* Error address is top 19 bits - so granularity is      *
+                * 14 bits                                               */
+               csrow->grain = 1 << 14;
+               csrow->mtype = reg_sdram ? MEM_RDDR : MEM_DDR;
+               /* FIXME - check that this is unknowable with this chipset */
+               csrow->dtype = DEV_UNKNOWN;
+
+               /* Mode is global on 82600 */
+               csrow->edac_mode = ecc_on ? EDAC_SECDED : EDAC_NONE;
+               row_high_limit_last = row_high_limit;
+       }
+}
+
+static int r82600_probe1(struct pci_dev *pdev, int dev_idx)
+{
+       struct mem_ctl_info *mci;
        u8 dramcr;
-       u32 ecc_on;
-       u32 reg_sdram;
        u32 eapr;
        u32 scrub_disabled;
        u32 sdram_refresh_rate;
-       u32 row_high_limit_last = 0;
        struct r82600_error_info discard;
 
        debugf0("%s()\n", __func__);
        pci_read_config_byte(pdev, R82600_DRAMC, &dramcr);
        pci_read_config_dword(pdev, R82600_EAP, &eapr);
-       ecc_on = dramcr & BIT(5);
-       reg_sdram = dramcr & BIT(4);
        scrub_disabled = eapr & BIT(31);
        sdram_refresh_rate = dramcr & (BIT(0) | BIT(1));
        debugf2("%s(): sdram refresh rate = %#0x\n", __func__,
@@ -226,13 +277,11 @@ static int r82600_probe1(struct pci_dev *pdev, int dev_idx)
        debugf2("%s(): DRAMC register = %#0x\n", __func__, dramcr);
        mci = edac_mc_alloc(0, R82600_NR_CSROWS, R82600_NR_CHANS);
 
-       if (mci == NULL) {
-               rc = -ENOMEM;
-               goto fail;
-       }
+       if (mci == NULL)
+               return -ENOMEM;
 
        debugf0("%s(): mci = %p\n", __func__, mci);
-       mci->pdev = pdev;
+       mci->dev = &pdev->dev;
        mci->mtype_cap = MEM_FLAG_RDDR | MEM_FLAG_DDR;
        mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
        /* FIXME try to work out if the chip leads have been used for COM2
@@ -245,7 +294,7 @@ static int r82600_probe1(struct pci_dev *pdev, int dev_idx)
         * is possible.                                               */
        mci->edac_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
 
-       if (ecc_on) {
+       if (ecc_enabled(dramcr)) {
                if (scrub_disabled)
                        debugf3("%s(): mci = %p - Scrubbing disabled! EAP: "
                                "%#0x\n", __func__, mci, eapr);
@@ -253,53 +302,17 @@ static int r82600_probe1(struct pci_dev *pdev, int dev_idx)
                mci->edac_cap = EDAC_FLAG_NONE;
 
        mci->mod_name = EDAC_MOD_STR;
-       mci->mod_ver = "$Revision: 1.1.2.6 $";
+       mci->mod_ver = R82600_REVISION;
        mci->ctl_name = "R82600";
        mci->edac_check = r82600_check;
        mci->ctl_page_to_phys = NULL;
-
-       for (index = 0; index < mci->nr_csrows; index++) {
-               struct csrow_info *csrow = &mci->csrows[index];
-               u8 drbar;       /* sDram Row Boundry Address Register */
-               u32 row_high_limit;
-               u32 row_base;
-
-               /* find the DRAM Chip Select Base address and mask */
-               pci_read_config_byte(mci->pdev, R82600_DRBA + index, &drbar);
-
-               debugf1("MC%d: %s() Row=%d DRBA = %#0x\n", mci->mc_idx,
-                       __func__, index, drbar);
-
-               row_high_limit = ((u32) drbar << 24);
-/*             row_high_limit = ((u32)drbar << 24) | 0xffffffUL; */
-
-               debugf1("MC%d: %s() Row=%d, Boundry Address=%#0x, Last = "
-                       "%#0x \n", mci->mc_idx, __func__, index,
-                       row_high_limit, row_high_limit_last);
-
-               /* Empty row [p.57] */
-               if (row_high_limit == row_high_limit_last)
-                       continue;
-
-               row_base = row_high_limit_last;
-               csrow->first_page = row_base >> PAGE_SHIFT;
-               csrow->last_page = (row_high_limit >> PAGE_SHIFT) - 1;
-               csrow->nr_pages = csrow->last_page - csrow->first_page + 1;
-               /* Error address is top 19 bits - so granularity is      *
-                * 14 bits                                               */
-               csrow->grain = 1 << 14;
-               csrow->mtype = reg_sdram ? MEM_RDDR : MEM_DDR;
-               /* FIXME - check that this is unknowable with this chipset */
-               csrow->dtype = DEV_UNKNOWN;
-
-               /* Mode is global on 82600 */
-               csrow->edac_mode = ecc_on ? EDAC_SECDED : EDAC_NONE;
-               row_high_limit_last = row_high_limit;
-       }
-
+       r82600_init_csrows(mci, pdev, dramcr);
        r82600_get_error_info(mci, &discard);  /* clear counters */
 
-       if (edac_mc_add_mc(mci)) {
+       /* Here we assume that we will never see multiple instances of this
+        * type of memory controller.  The ID is therefore hardcoded to 0.
+        */
+       if (edac_mc_add_mc(mci,0)) {
                debugf3("%s(): failed edac_mc_add_mc()\n", __func__);
                goto fail;
        }
@@ -309,17 +322,15 @@ static int r82600_probe1(struct pci_dev *pdev, int dev_idx)
        if (disable_hardware_scrub) {
                debugf3("%s(): Disabling Hardware Scrub (scrub on error)\n",
                        __func__);
-               pci_write_bits32(mci->pdev, R82600_EAP, BIT(31), BIT(31));
+               pci_write_bits32(pdev, R82600_EAP, BIT(31), BIT(31));
        }
 
        debugf3("%s(): success\n", __func__);
        return 0;
 
 fail:
-       if (mci)
-               edac_mc_free(mci);
-
-       return rc;
+       edac_mc_free(mci);
+       return -ENODEV;
 }
 
 /* returns count (>= 0), or negative on error */
@@ -338,7 +349,7 @@ static void __devexit r82600_remove_one(struct pci_dev *pdev)
 
        debugf0("%s()\n", __func__);
 
-       if ((mci = edac_mc_del_mc(pdev)) == NULL)
+       if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL)
                return;
 
        edac_mc_free(mci);
index 0f97a0cb0ff431733f27551ffaa779668143000e..9b4fcac03ad5fee8a87922ffd9c2cab2525ffda3 100644 (file)
@@ -7,7 +7,6 @@
  * This code is released under the GPL version 2.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
 #include <linux/eisa.h>
index ed85dfcef69a403ab84120824e248784a4acab3e..8700a8076d0482df55c2cd8e379d603e7873e918 100644 (file)
@@ -2,7 +2,6 @@
  * We should not even be trying to compile this if we are not doing
  * a module.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 
 #ifdef CONFIG_MODULES
index fdb8b042e64d121f3e4a9be60719efc25cf17f0c..23b086685453d295c6b119c3ce83253cd57e95d7 100644 (file)
@@ -34,7 +34,6 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/string.h>
index 9b7e4d52ffd474ef9f745b9d36c5db13ad172e2e..8ebce1c03ad77f887038924590ecfc009f782b1d 100644 (file)
@@ -66,7 +66,6 @@
  */
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index c37baf9448bc8665905c8479942c98ff083ea460..c2ad72fefd9d50a8f447062ad8a3e1daf8489519 100644 (file)
@@ -11,7 +11,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/acpi.h>
 #include <linux/console.h>
 #include <linux/efi.h>
index a6764ff00803bb2d43e7e0d2633351ada41c26a6..9d67320e6840161c7f8c5dcf068abf3fe69367e7 100644 (file)
@@ -22,7 +22,6 @@
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/hwmon-vid.h>
index e407c74bda35bd4f10530acef841fbb2cf627b7f..7576ec9426a35b0e733d08f5552058aa67e9cd73 100644 (file)
@@ -35,7 +35,6 @@
     w83792d    9       7       7       3       0x7a    0x5ca3  yes     no
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index 8b46ef7d9ff8365b9fda3dc8bc439a6654c90dca..7be1d0a3e8f8f59856562013e1b6361d569c6510 100644 (file)
@@ -494,8 +494,8 @@ static int __devinit i801_probe(struct pci_dev *dev, const struct pci_device_id
        err = pci_request_region(dev, SMBBAR, i801_driver.name);
        if (err) {
                dev_err(&dev->dev, "Failed to request SMBus region "
-                       "0x%lx-0x%lx\n", i801_smba,
-                       pci_resource_end(dev, SMBBAR));
+                       "0x%lx-0x%Lx\n", i801_smba,
+                       (unsigned long long)pci_resource_end(dev, SMBBAR));
                goto exit;
        }
 
index 87fae937e666dfdab0b8f00493a5afa94918e18c..0599bbd65d93b196fd946b1f270b89af48932730 100644 (file)
@@ -28,7 +28,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/ioport.h>
index d00a02fc23e42b3878390d58c2619eec0cf222bf..aca7e166860546174c59557aead82d7d90c25428 100644 (file)
@@ -26,7 +26,6 @@
  * the Free Software Foundation, version 2.
  */
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index 2721e4c8184a9a64f505686ebf7bf6e1e80ecf59..de93601de1785fbe6030e4314785269d9f43968f 100644 (file)
@@ -13,7 +13,6 @@
  * warranty of any kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index df786eb55295a41dc19ccfdc8eb371f0e890b63c..2a0b3be7cdd0824d910d90f5ddec5e312202abf9 100644 (file)
@@ -20,7 +20,6 @@
 
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index f7d40f8e5f5c91c053e44f106190e570cc5e6814..512b8791c3280d0f791f11b0174e75a681aae126 100644 (file)
@@ -20,7 +20,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 
index 27fbfecc414fcf9b56f32f686a8b08b98ccc5019..cb3ef5ac99fd06976c0145fd4be0399044f03b90 100644 (file)
@@ -21,7 +21,6 @@
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
index e6f1ab7b913c1d59db9c7e6e7e98b3920927ea21..b638ac6e59f45121f4b9898bc0840be44b3f3691 100644 (file)
@@ -21,7 +21,6 @@
 #undef DEBUG
 #undef VERBOSE
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index 179b1e022d8094e7334d75ab05af9e66da8a9db6..e27ee12245d39d88e40e035629dbc540d2e48bb2 100644 (file)
@@ -19,7 +19,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index 308897e57e4dbab9375a18ea763f9865dbf8de21..8a1c27f28692c02c6fee0d43899eab4d000f126d 100644 (file)
@@ -6,7 +6,6 @@
  * Please note that this platform does not support 32-bit IDE IO.
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/module.h>
 #include <linux/ioport.h>
index cd15e6260510d29e330f9eb5b509174dae00f040..5797e0b5a1327f4e87a41e772bdd568d6180abce 100644 (file)
@@ -19,7 +19,6 @@
 
 #undef REALLY_SLOW_IO           /* most systems can safely undef this */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/timer.h>
index fb91cb8bf2d29613624f3df1710685e9a040431a..15955996a1f34c7ed33b00e5658b30ae4a3c3f2c 100644 (file)
@@ -5,7 +5,6 @@
 
 #include <linux/init.h>
 #include <linux/ide.h>
-#include <linux/config.h>
 
 #include <asm/io.h>
 #include <asm/irq.h>
index bfafd4846a08024f1b470de94bc52d5f1793365d..654d4cd09847cebdcad66b77fc5c9f0167f78149 100644 (file)
  
 #define IDECD_VERSION "4.61"
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index d0227c39ced16d763c9242f85ee77415ddb36040..f712e4cfd9dcb7eb1dafba2dc59f7e1c584f80f2 100644 (file)
@@ -47,7 +47,6 @@
 
 //#define DEBUG
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index 783a2475ee8b12519e33adac7e69f1c55219b22d..98918fb6b2ce32a8854fa4c05068e2fc9ad184c4 100644 (file)
@@ -74,7 +74,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 68628327c0f55ce9c33e6938d350e4de09c702a1..6ca3476d02c716403c4a0e89b24132566d9c4aa6 100644 (file)
@@ -82,7 +82,6 @@
 
 #define IDEFLOPPY_VERSION "0.99.newide"
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index 26ceab1e90bb5d94f71100e6239349343cd849cc..7dba9992ad309d3520efebc4d06506970fd64fef 100644 (file)
@@ -24,7 +24,6 @@
  */
  
  
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index 32117f0ec5c00727f41fde8e0765d85449a4652b..657165297dc76c0a16bd2126b854920ffbf99cbe 100644 (file)
@@ -6,7 +6,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index 7ddb11828731e816ea9c6acafe382906bb0b81a5..1feff23487d44f515574809e153744a615c7ad26 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index 0d5038a2856060ac369bd7f61195e449e79758b7..c5f71ac28d148638e3c3f57b164df42398344df0 100644 (file)
@@ -33,7 +33,6 @@
 
 #undef REALLY_SLOW_IO          /* most systems can safely undef this */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index 84665e2ba3c85844436c1a1970d3ce6e7686987e..c12f1b71e934fcdd23b349dc309bef0a09053941 100644 (file)
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <asm/uaccess.h>
index 4b91101e12b7715fee6682f6dcc8124006f672f6..7067ab997927d5515f32f2b09c8a48af1cc34cdf 100644 (file)
 
 #define IDETAPE_VERSION "1.19"
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index a839b2a8f6f485d17f30a1d861bbb7ecb7deda63..04547eb0833fa18b9c8c9470baf7b9f2499dde39 100644 (file)
@@ -27,7 +27,6 @@
  *     request.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index 1cdf44205162cc79f347a45727e9261df4dbf53a..05fbd9298db7c7cd5e265a8d9a65a994ec1c81f5 100644 (file)
 
 #define _IDE_C                 /* Tell ide.h it's really us */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index fb88711812e68fcc6ca9c02b911c5a1d52da539f..9c544467cb74a50bf09aa24cd1a9e954d7e6e002 100644 (file)
@@ -40,7 +40,6 @@
 #undef REALLY_SLOW_IO           /* most systems can safely undef this */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
index 20eb5b872ca9eaba1174ce9406372470802d70cd..3b1d33baaa2f6c08758081c7ac1331ad5e3c8e74 100644 (file)
@@ -7,7 +7,6 @@
 #undef REALLY_SLOW_IO           /* most systems can safely undef this */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
index 3fac3e9ec47d7a24b5292535cfbb4cb27e1d9a84..64d42619ab06a1f7e4e4d576bd8f8ef329ff5ee8 100644 (file)
@@ -8,7 +8,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/mm.h>
 #include <linux/interrupt.h>
index a77fb249d5cf8fa006bc77590929e6ec77c7504e..c48e87e512d38298bdc15f358a2751217e1b1615 100644 (file)
@@ -39,7 +39,6 @@
 #undef REALLY_SLOW_IO          /* most systems can safely undef this */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
index 602797a4420877f6fc74e659a05b4c50be8d54d6..b7e459e4f284af88a00b26a50b40ffed734f531d 100644 (file)
@@ -146,7 +146,16 @@ static void ide_detach(struct pcmcia_device *link)
     kfree(link->priv);
 } /* ide_detach */
 
-static int idecs_register(unsigned long io, unsigned long ctl, unsigned long irq, struct pcmcia_device *handle)
+static void idecs_mmio_fixup(ide_hwif_t *hwif)
+{
+       default_hwif_mmiops(hwif);
+       hwif->mmio = 2;
+
+       ide_undecoded_slave(hwif);
+}
+
+static int idecs_register(unsigned long io, unsigned long ctl,
+       unsigned long irq, struct pcmcia_device *handle, int is_mmio)
 {
     hw_regs_t hw;
     memset(&hw, 0, sizeof(hw));
@@ -154,7 +163,19 @@ static int idecs_register(unsigned long io, unsigned long ctl, unsigned long irq
     hw.irq = irq;
     hw.chipset = ide_pci;
     hw.dev = &handle->dev;
-    return ide_register_hw_with_fixup(&hw, NULL, ide_undecoded_slave);
+
+    if(is_mmio)
+       return ide_register_hw_with_fixup(&hw, NULL, idecs_mmio_fixup);
+    else
+        return ide_register_hw_with_fixup(&hw, NULL, ide_undecoded_slave);
+}
+
+void outb_io(unsigned char value, unsigned long port) {
+       outb(value, port);
+}
+
+void outb_mem(unsigned char value, unsigned long port) {
+       writeb(value, (void __iomem *) port);
 }
 
 /*======================================================================
@@ -180,7 +201,8 @@ static int ide_config(struct pcmcia_device *link)
     } *stk = NULL;
     cistpl_cftable_entry_t *cfg;
     int i, pass, last_ret = 0, last_fn = 0, hd, is_kme = 0;
-    unsigned long io_base, ctl_base;
+    unsigned long io_base, ctl_base, is_mmio, try_slave;
+    void (*my_outb)(unsigned char, unsigned long);
 
     DEBUG(0, "ide_config(0x%p)\n", link);
 
@@ -210,7 +232,7 @@ static int ide_config(struct pcmcia_device *link)
     /* Not sure if this is right... look up the current Vcc */
     CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(link, &stk->conf));
 
-    pass = io_base = ctl_base = 0;
+    pass = io_base = ctl_base = is_mmio = try_slave = 0;
     tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
     tuple.Attributes = 0;
     CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(link, &tuple));
@@ -258,11 +280,45 @@ static int ide_config(struct pcmcia_device *link)
                        goto next_entry;
                io_base = link->io.BasePort1;
                ctl_base = link->io.BasePort1 + 0x0e;
+
+               if (io->win[0].len >= 0x20)
+                       try_slave = 1;
+
            } else goto next_entry;
            /* If we've got this far, we're done */
            break;
        }
 
+       if ((cfg->mem.nwin > 0) || (stk->dflt.mem.nwin > 0)) {
+           win_req_t req;
+           memreq_t map;
+           cistpl_mem_t *mem = (cfg->mem.nwin) ? &cfg->mem : &stk->dflt.mem;
+
+           if (mem->win[0].len < 16)
+               goto next_entry;
+
+           req.Attributes = WIN_DATA_WIDTH_16|WIN_MEMORY_TYPE_CM;
+           req.Attributes |= WIN_ENABLE;
+           req.Base = mem->win[0].host_addr;
+           req.Size = 0;
+
+           req.AccessSpeed = 0;
+           if (pcmcia_request_window(&link, &req, &link->win) != 0)
+               goto next_entry;
+           map.Page = 0; map.CardOffset = mem->win[0].card_addr;
+           if (pcmcia_map_mem_page(link->win, &map) != 0)
+               goto next_entry;
+
+           io_base = (unsigned long) ioremap(req.Base, req.Size);
+           ctl_base = io_base + 0x0e;
+           is_mmio = 1;
+
+           if (mem->win[0].len >= 0x20)
+               try_slave = 1;
+
+           break;
+       }
+
     next_entry:
        if (cfg->flags & CISTPL_CFTABLE_DEFAULT)
            memcpy(&stk->dflt, cfg, sizeof(stk->dflt));
@@ -278,21 +334,26 @@ static int ide_config(struct pcmcia_device *link)
     CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq));
     CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf));
 
+    if(is_mmio)
+       my_outb = outb_mem;
+    else
+       my_outb = outb_io;
+
     /* disable drive interrupts during IDE probe */
-    outb(0x02, ctl_base);
+    my_outb(0x02, ctl_base);
 
     /* special setup for KXLC005 card */
     if (is_kme)
-       outb(0x81, ctl_base+1);
+       my_outb(0x81, ctl_base+1);
 
     /* retry registration in case device is still spinning up */
     for (hd = -1, i = 0; i < 10; i++) {
-       hd = idecs_register(io_base, ctl_base, link->irq.AssignedIRQ, link);
+       hd = idecs_register(io_base, ctl_base, link->irq.AssignedIRQ, link, is_mmio);
        if (hd >= 0) break;
-       if (link->io.NumPorts1 == 0x20) {
-           outb(0x02, ctl_base + 0x10);
+       if (try_slave) {
+           my_outb(0x02, ctl_base + 0x10);
            hd = idecs_register(io_base + 0x10, ctl_base + 0x10,
-                               link->irq.AssignedIRQ, link);
+                               link->irq.AssignedIRQ, link, is_mmio);
            if (hd >= 0) {
                io_base += 0x10;
                ctl_base += 0x10;
index 90cac609d9cf1dba22def43eabd04e90e67811e1..d655da749144e10d3fd8a04823a884e02852668a 100644 (file)
@@ -11,7 +11,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/mm.h>
 #include <linux/interrupt.h>
index 563fab0098beb74bfc7e97754a89b6b11e7afac0..d3c3bc2640e766acf58d619a81b0284d3efe0a58 100644 (file)
@@ -28,7 +28,6 @@
 #undef REALLY_SLOW_IO          /* most systems can safely undef this */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
index cdbdb2ff9f15eae54df50ec4e1bd696b8fe2d7a7..6e2c58c5f6a2f8ff5e6304f83fd1d3f009c53c2d 100644 (file)
@@ -40,7 +40,6 @@
 #define REALLY_SLOW_IO         /* some systems can safely undef this */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
index 3edd7060510fa6e668e46cc6deb1000fe4c4fc69..a7c725f8bf64507f3c5317d93322d3365aa197e1 100644 (file)
@@ -6,7 +6,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/delay.h>
index 8b24b4f2a839a0abe424cf5e75eebd2bf5a9434b..351dab2fcacf730f0c070cf772383270efa186ab 100644 (file)
@@ -27,7 +27,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 85007cb12c52356eaf7cab09b8d972e3441f5a8c..2b0ea8b6608df5cbd7d75f74397fc1b5111f1d16 100644 (file)
@@ -16,7 +16,6 @@
  * the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/ioport.h>
index 900efd1da587d782a0afd369579c62713935280b..a574de5f083572933ce68c5898ccae7192d5218c 100644 (file)
@@ -6,7 +6,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 11d035f1983de98561e4f884f8dd53bb9e892f2c..61b5f9c0b2f4da7620b8655b43afed4d580bc460 100644 (file)
 
 //#define CMD640_DUMP_REGS
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
index 92b7b1549b1668249b6cdea1bfdac4083a418527..20c32716bbc4fafede557c3a32d87d57842e9716 100644 (file)
@@ -14,7 +14,6 @@
  * Copyright (C) 1999-2002     Andre Hedrick <andre@linux-ide.org>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/pci.h>
index ea3c52cc8ac1cf5c55aad7d31267d6f5d2142a00..079f7c86726b118c334bfd6f42607a1924e27ee8 100644 (file)
@@ -32,7 +32,6 @@
  *
  */
  
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 09269e574b3e6e66a6db38df68404200af1ef197..380bb28c7c54aad4a6d99eefa5931e47f1459786 100644 (file)
@@ -14,7 +14,6 @@
  *     CS5530 documentation available from National Semiconductor.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 6eb305197f3c1a18955a29e7e523d45400f94a5b..5c5aec28e6717f3d9e7c81d243bc711ebf8b455b 100644 (file)
@@ -23,7 +23,6 @@
  *  CS5535 documentation available from AMD
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/ide.h>
index 9f41ecd563385c500d74378c17761436b2549e75..120929fbe7a37c652b0e6aa0d8189ffa1cc21990 100644 (file)
@@ -44,7 +44,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/pci.h>
index 7da550281cf23a112d61b6cc68d946ad0e540d19..b46cb042290abc59fe9059fa0cb36c38f9e8b3bf 100644 (file)
@@ -24,7 +24,6 @@
  * Non-bootable card or HPT343 :: pcicmd == 0x05
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 940bdd4c5784bf80092bac207c75df2352f5c32b..e993a51f250e5fa026c718d5f66091cd2952a5d2 100644 (file)
@@ -55,7 +55,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 93462926b9d5e0d208066a0a20d4926e38cf2248..0fc89fafad656d920b26431bde60e5554fd2923c 100644 (file)
@@ -28,7 +28,6 @@
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 38f41b377ff6f322d1ba5a1276ba00d5024fd518..7fb3635683dce13d6785d881aa39c15b5c808632 100644 (file)
@@ -62,7 +62,6 @@
  *     -       Move to libata once it grows up
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/pci.h>
index fcd5142f5cfe1fa7108269c008ac20f1c878a1c2..d95714bcee4e92ab30d1255e4328f245451df76e 100644 (file)
@@ -9,7 +9,6 @@
  * Inspired by an earlier effort from David S. Miller <davem@redhat.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 5a8334d134fbda2d1caebb0ab0ea4e93444f80e9..6c097e80b4dff9716b4ad0220fa520b101991389 100644 (file)
@@ -14,7 +14,6 @@
  *  Released under terms of General Public License
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 1e209d8f9437f4e04199bc8b4365d4c48bd0f298..b46022a11bef82a2576d0e684282780ba814e0d6 100644 (file)
@@ -28,7 +28,6 @@
  *  Released under terms of General Public License
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 7fac6f57b5d625aaa3eb0056c6d448149b1eba6c..50332ddd5ddb9d3a2efd3617760cfb9191ae0f8a 100644 (file)
@@ -90,7 +90,6 @@
  *     ICH3    errata #18      - Don't use native mode
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 778b82ae964de770e81acef1c00eb18e20f5f8b6..fc2b5496b6d251a611bd3200baf733d8263e1f23 100644 (file)
@@ -11,7 +11,6 @@
  *     Available from National Semiconductor
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 5100b827a935213dcd737703d928b150d96f6033..03677bff0d726ba386ee6252a27c5bf34a477396 100644 (file)
@@ -29,7 +29,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 72dade14c725996acc24af25143df12eb7449c63..25ceb4a39ed21d96cdefdede5c90e1a192214f1c 100644 (file)
@@ -27,7 +27,6 @@
  *     if neccessary
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/pci.h>
index 8e9d87701ce245f4eb15ed4a370c4e2f4ba22111..8a6c23ac8cc1c556b0771ae5ae05ebf5f5d8c6bf 100644 (file)
@@ -44,7 +44,6 @@
  * 962/963.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 900301e43818bee500a9884870be937a6e9d1f16..0b4b604985153a4915aba1635c3e2ebaad14b638 100644 (file)
@@ -13,7 +13,6 @@
  *  -- Benjamin Herrenschmidt (01/11/03) benh@kernel.crashing.org
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 0968f6bc669a5684b7ba3f3e0205a2e03e250400..4a1853af3bbb774caaecdd18141424dfc5170e59 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index f96b56838f339fb33de1d7d6b26972628c88daf2..56d84931d6de32ad3c819f95fe0b322c5cad8ca3 100644 (file)
@@ -27,7 +27,6 @@
  *     Not publically available.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index fe80295974e15b5a4269e05bf672ca4851ccae15..2a282529bfc1abe46412398c65a89025adf29737 100644 (file)
  *
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 3e677c4f8c285f2663a6e2774e9c04830fc78be3..afdaee3c15c936147fd821aa5384375cdfd05877 100644 (file)
@@ -26,7 +26,6 @@
  * the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/ioport.h>
index b80c6135ae932f37c1c4be90f032a50748eb948f..0ac9da3a7378b327c21e66c96d2d29765a993d9d 100644 (file)
@@ -11,7 +11,6 @@
  *     by Mathew Locke <mattl@mvista.com>
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index e8ef3455ec356e4c9bf835f42532cb62cf57bea9..ebf961f1718d8428d64f048f67212016d9b46fd8 100644 (file)
@@ -22,7 +22,6 @@
  * big table
  * 
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index c11e3b2e67a6b46711a16fea70e1abdc47e49b74..eb0945284accec16b4c0ff0075c504da59f34a35 100644 (file)
@@ -18,7 +18,6 @@
  *  configuration of all PCI IDE interfaces present in a system.  
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 1017fd7172486dd3058694ca22368b973f707469..e2de6fa0c9fe817d3bc26b2bd0101cc9c55e61f1 100644 (file)
@@ -9,7 +9,6 @@
  * directory of the kernel sources for details.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 
 #include "csr1212.h"
index 85c2d4ca0def60087a1b11120b98538e1da0f240..87532dd43374f9625d9f06693503a63c07a2758f 100644 (file)
@@ -83,7 +83,6 @@
 
 */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
 #include <linux/slab.h>
index 25b22609e793a8880c53ef9d06ff87201ca4c3f4..694da82d820b5c7012d004dd14fa1c31bb934bce 100644 (file)
@@ -17,7 +17,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/list.h>
 #include <linux/bitops.h>
index ad49c040b6749017b877bd5607816725820ee7f7..2c669287f5bde9f8f308eb002b5d7afa3b0efbd0 100644 (file)
@@ -10,7 +10,6 @@
  * directory of the kernel sources for details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/list.h>
index 49354de9fb8a6cd31702977c10b896d2d11fd09e..f43739c5cab2ed11176c8493d4cf90de2e9a5f49 100644 (file)
@@ -20,7 +20,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
 #include <linux/string.h>
index 50c71e17de73701e4dbb175f4a99f527bc64dce6..d541b508a159b8103c128a0cc4f3d76d9bdd6d6a 100644 (file)
@@ -10,7 +10,6 @@
 
 #include <linux/bitmap.h>
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/list.h>
 #include <linux/slab.h>
 #include <linux/smp_lock.h>
index 800c8d5184302b0195f5ab1f34783d718523e192..8de81ecd3ba6d6f02fcf47f9f75a36b2d5c0646b 100644 (file)
@@ -82,7 +82,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
 #include <linux/slab.h>
index d50dc7a2d087f21e9d461a35785122d35bbed27a..b9d0e8f10abb3287c370c909e2154a2dca4fc111 100644 (file)
@@ -3,7 +3,6 @@
 cat <<EOF
 /* Generated file for OUI database */
 
-#include <linux/config.h>
 
 #ifdef CONFIG_IEEE1394_OUI_DB
 struct oui_list_struct {
index e29dfd280bee0b550ebd1a94f1b0519cfd0f177b..5b48f6ac5c7f074c68024b288707821b0ed7e5c7 100644 (file)
@@ -30,7 +30,6 @@
  *        Enhancements in async and iso send code
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
 #include <linux/interrupt.h>
index d631aa8383ada2311102469f6fb545fce1e88b70..ec27321f6724e507ec2a79febf03025d6dec1fe5 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef __PCILYNX_H__
 #define __PCILYNX_H__
 
-#include <linux/config.h>
 
 #define PCILYNX_DRIVER_NAME      "pcilynx"
 #define PCILYNX_MAJOR            177
index 1d5ceb7ecc8329a22a5d7a3b34ea8fd4a1d8dcd6..aaa74f293aaf4279353c77404ba9f38ac2c98663 100644 (file)
@@ -38,7 +38,6 @@
  *       but the code needs additional debugging.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
 #include <linux/string.h>
index 295d0f8c3d061513fbcfc76967deb7e1024626fd..c6e3f02bc6d74a731fd36ed3e6616e9d839c72bd 100644 (file)
@@ -28,7 +28,6 @@
  * ENOTTY for unsupported ioctl request
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
 #include <linux/slab.h>
index 450adfe0a4f1c5e4ed847c340e111ca62d000cbb..3f6705f3083ac65e7e501e9b7fa8b9cd403c587b 100644 (file)
@@ -3152,6 +3152,7 @@ static int cm_init_qp_rtr_attr(struct cm_id_private *cm_id_priv,
                }
                if (cm_id_priv->alt_av.ah_attr.dlid) {
                        *qp_attr_mask |= IB_QP_ALT_PATH;
+                       qp_attr->alt_port_num = cm_id_priv->alt_av.port->port_num;
                        qp_attr->alt_ah_attr = cm_id_priv->alt_av.ah_attr;
                }
                ret = 0;
index a908a7bdcd7fb09d44dfe94b1d0bd171168cb283..bdf5d5098190b7f6e9a2bd6312fd5c413d97d6aa 100644 (file)
@@ -1963,7 +1963,7 @@ ssize_t ib_uverbs_create_srq(struct ib_uverbs_file *file,
        if (!obj)
                return -ENOMEM;
 
-       init_uobj(&obj->uobject, 0, file->ucontext);
+       init_uobj(&obj->uobject, cmd.user_handle, file->ucontext);
        down_write(&obj->uobject.mutex);
 
        pd  = idr_read_pd(cmd.pd_handle, file->ucontext);
index 63de3046aff30079415914aa4b55eb2d35e9b073..97f142c5be13d75f6fad23f1be75d44b2083f8a1 100644 (file)
@@ -31,7 +31,6 @@
  */
 
 #include <linux/version.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/fs.h>
 #include <linux/mount.h>
index 3e72a1fe3d73d0db9c64bd277b2d55a3648ed98e..5e31d0de849b1e8bd9a530a0760018c33084993b 100644 (file)
@@ -397,7 +397,7 @@ static void handle_errors(struct ipath_devdata *dd, ipath_err_t errs)
                if ((dd->ipath_maskederrs & ~dd->ipath_ignorederrs) &
                    ~(INFINIPATH_E_RRCVEGRFULL | INFINIPATH_E_RRCVHDRFULL))
                        ipath_dev_err(dd, "Disabling error(s) %llx because "
-                                     "occuring too frequently (%s)\n",
+                                     "occurring too frequently (%s)\n",
                                      (unsigned long long)
                                      (dd->ipath_maskederrs &
                                       ~dd->ipath_ignorederrs), msg);
index 465fd220569c651a1cb7499daa1f970b5241811a..557cde3a4563cc26e14d54fb6d0cc75545a48ead 100644 (file)
@@ -34,7 +34,6 @@
  * $Id: mthca_main.c 1396 2004-12-28 04:10:27Z roland $
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/errno.h>
index f4fddd5327f534039bd0de8b6e0c5cce91ea4c3d..91934f2d9dbafeedb0e8cba7a180957ec4baa885 100644 (file)
@@ -32,7 +32,6 @@
  * $Id: mthca_reset.c 1349 2004-12-16 21:09:43Z roland $
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/errno.h>
 #include <linux/pci.h>
index 491d2afaf5b499cc8089cd9f81d25a49d6001f1e..3f89f5e190367ce6d82f6930d2372bd94bb8955c 100644 (file)
@@ -42,7 +42,6 @@
 #include <linux/netdevice.h>
 #include <linux/workqueue.h>
 #include <linux/pci.h>
-#include <linux/config.h>
 #include <linux/kref.h>
 #include <linux/if_infiniband.h>
 #include <linux/mutex.h>
index 4c3f2de2a06ea8f88dcd5920bf1d7bef1c6ca6c4..b2c033edb03cea828eedddfdacb852f54151da04 100644 (file)
@@ -54,7 +54,6 @@
 #include <linux/blkdev.h>
 #include <linux/init.h>
 #include <linux/ioctl.h>
-#include <linux/devfs_fs_kernel.h>
 #include <linux/cdev.h>
 #include <linux/in.h>
 #include <linux/net.h>
index 462f8d300aae5629719c58a983627fed065879a5..9793ac36d17f22bd34861e14c7af14ea48b06283 100644 (file)
@@ -32,7 +32,6 @@
 
 #include <linux/module.h>
 #include <linux/ioport.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/gameport.h>
 #include <linux/slab.h>
index 3e2d28f263e9ad56c7b2cb7f3c4d697b28e849db..f68dbe6f7f04634ca7bf63688555de65be85f7f0 100644 (file)
@@ -33,7 +33,6 @@
 
 #include <linux/module.h>
 #include <linux/ioport.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/delay.h>
 #include <linux/gameport.h>
index 01dc0b195d599277a5cba6bd340f2c7259765ffe..e9a02db36eccc3b0d431f1276f94fe090d4f2923 100644 (file)
@@ -28,7 +28,6 @@
  * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
  */
 
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index 668f24535ba0778e23d34c8800f5ffea77d9b6f1..e9924d6f01b33991b975de0272588f6f0691ea7e 100644 (file)
@@ -35,7 +35,6 @@
 #include <linux/spinlock.h>
 #include <linux/usb.h>
 #include <linux/serio.h>
-#include <linux/config.h>
 #include <linux/circ_buf.h>
 #include <linux/mutex.h>
 
index 33edd030aa758048f6b9ab11bd0463609da4c6ab..d22c7c6242968ad1cc12c2f1b95bf94065ee1466 100644 (file)
@@ -18,7 +18,6 @@
 #include <linux/pci_ids.h>
 #include <linux/ioport.h>
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/input.h>
 #include <linux/init.h>
index 2c510881874ab70e5827bee15619286872542ed4..83906f80ba21c31aa0cc5eb443926b972cdefd37 100644 (file)
@@ -25,7 +25,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/init.h>
index 42c11fbf3c79ff12d405f9f2c13d1ebed9da7901..106c94f33b93ebb86847c4c10cc1897a4d122a39 100644 (file)
@@ -4,7 +4,6 @@
  *  Copyright (c) 2002 Vojtech Pavlik
  *  Copyright (c) 2002, 2006 David S. Miller (davem@davemloft.net)
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index afc66f56df43b5d5f6a415a81e595c31e07db27a..50f1fed10be404f759a8b138f6a35f6c9e9c38b9 100644 (file)
@@ -36,7 +36,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/config.h>
 #include <linux/ioport.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
index a8974243171793c654a66f8bd1634fbbb734faf9..0023501a5b634fd086837d3e1e9dc49f116414d4 100644 (file)
@@ -33,7 +33,6 @@
 #include <linux/slab.h>
 #include <linux/interrupt.h>
 #include <linux/input.h>
-#include <linux/config.h>
 #include <linux/serio.h>
 #include <linux/init.h>
 
index 7b85bc21ae4a808f49086a517c55661f5b2c50b0..47edcfd022ba840bc4b1d65a4cfc1509216b8de5 100644 (file)
@@ -81,7 +81,6 @@
 #include <linux/slab.h>
 #include <linux/interrupt.h>
 #include <linux/input.h>
-#include <linux/config.h>
 #include <linux/serio.h>
 #include <linux/init.h>
 
index eb721b11ff3772af9f74fac759903f6a1cdf42ce..1f851acab30db2f692ab74886256701409432110 100644 (file)
@@ -19,7 +19,6 @@
 #include <linux/moduleparam.h>
 #include <linux/init.h>
 #include <linux/input.h>
-#include <linux/config.h>
 #include <linux/smp_lock.h>
 #include <linux/random.h>
 #include <linux/major.h>
index 526e6070600c8a02a29df0283d55fcae79217b0f..51a519e24b6d07bd146206d47cd1293719dedb48 100644 (file)
@@ -28,7 +28,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/input.h>
 #include <linux/slab.h>
 #include <linux/init.h>
index 1ac739ef2ffa53a41053b5bd02218f9073c33281..bc6e87add093258cc1364736e358fa5c0b6d4903 100644 (file)
@@ -31,7 +31,6 @@
 #include <linux/delay.h>
 #include <linux/module.h>
 #include <linux/ioport.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/serio.h>
index c0b1e4becad3c7b9a76f532589441188da629bce..22d02d53eb16a965a9087c8b20fb9326c0f0d905 100644 (file)
@@ -22,7 +22,6 @@
  *                 was usable/enabled ?)
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/serio.h>
index 6d66351805a2506e8c8d75dcf090b23197d82a0d..7d9fafea9615b76d8adcad8e1e7ddd84a10380ac 100644 (file)
@@ -1,13 +1,10 @@
 #ifndef _I8042_SPARCIO_H
 #define _I8042_SPARCIO_H
 
-#include <linux/config.h>
 #include <asm/io.h>
-
-#ifdef CONFIG_PCI
 #include <asm/oplib.h>
-#include <asm/ebus.h>
-#endif
+#include <asm/prom.h>
+#include <asm/of_device.h>
 
 static int i8042_kbd_irq = -1;
 static int i8042_aux_irq = -1;
@@ -48,54 +45,83 @@ static inline void i8042_write_command(int val)
 #define OBP_PS2MS_NAME1                "kdmouse"
 #define OBP_PS2MS_NAME2                "mouse"
 
+static int __devinit sparc_i8042_probe(struct of_device *op, const struct of_device_id *match)
+{
+       struct device_node *dp = op->node;
+
+       dp = dp->child;
+       while (dp) {
+               if (!strcmp(dp->name, OBP_PS2KBD_NAME1) ||
+                   !strcmp(dp->name, OBP_PS2KBD_NAME2)) {
+                       struct of_device *kbd = of_find_device_by_node(dp);
+                       unsigned int irq = kbd->irqs[0];
+                       if (irq == 0xffffffff)
+                               irq = op->irqs[0];
+                       i8042_kbd_irq = irq;
+                       kbd_iobase = of_ioremap(&kbd->resource[0],
+                                               0, 8, "kbd");
+               } else if (!strcmp(dp->name, OBP_PS2MS_NAME1) ||
+                          !strcmp(dp->name, OBP_PS2MS_NAME2)) {
+                       struct of_device *ms = of_find_device_by_node(dp);
+                       unsigned int irq = ms->irqs[0];
+                       if (irq == 0xffffffff)
+                               irq = op->irqs[0];
+                       i8042_aux_irq = irq;
+               }
+
+               dp = dp->sibling;
+       }
+
+       return 0;
+}
+
+static int __devexit sparc_i8042_remove(struct of_device *op)
+{
+       of_iounmap(kbd_iobase, 8);
+
+       return 0;
+}
+
+static struct of_device_id sparc_i8042_match[] = {
+       {
+               .name = "8042",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(of, i8042_match);
+
+static struct of_platform_driver sparc_i8042_driver = {
+       .name           = "i8042",
+       .match_table    = sparc_i8042_match,
+       .probe          = sparc_i8042_probe,
+       .remove         = __devexit_p(sparc_i8042_remove),
+};
+
 static int __init i8042_platform_init(void)
 {
 #ifndef CONFIG_PCI
        return -ENODEV;
 #else
-       char prop[128];
-       int len;
+       struct device_node *root = of_find_node_by_path("/");
 
-       len = prom_getproperty(prom_root_node, "name", prop, sizeof(prop));
-       if (len < 0) {
-               printk("i8042: Cannot get name property of root OBP node.\n");
-               return -ENODEV;
-       }
-       if (strncmp(prop, "SUNW,JavaStation-1", len) == 0) {
+       if (!strcmp(root->name, "SUNW,JavaStation-1")) {
                /* Hardcoded values for MrCoffee.  */
                i8042_kbd_irq = i8042_aux_irq = 13 | 0x20;
                kbd_iobase = ioremap(0x71300060, 8);
                if (!kbd_iobase)
                        return -ENODEV;
        } else {
-               struct linux_ebus *ebus;
-               struct linux_ebus_device *edev;
-               struct linux_ebus_child *child;
-
-               for_each_ebus(ebus) {
-                       for_each_ebusdev(edev, ebus) {
-                               if (!strcmp(edev->prom_node->name, "8042"))
-                                       goto edev_found;
-                       }
-               }
-               return -ENODEV;
-
-       edev_found:
-               for_each_edevchild(edev, child) {
-                       if (!strcmp(child->prom_node->name, OBP_PS2KBD_NAME1) ||
-                           !strcmp(child->prom_node->name, OBP_PS2KBD_NAME2)) {
-                               i8042_kbd_irq = child->irqs[0];
-                               kbd_iobase =
-                                       ioremap(child->resource[0].start, 8);
-                       }
-                       if (!strcmp(child->prom_node->name, OBP_PS2MS_NAME1) ||
-                           !strcmp(child->prom_node->name, OBP_PS2MS_NAME2))
-                               i8042_aux_irq = child->irqs[0];
-               }
+               int err = of_register_driver(&sparc_i8042_driver,
+                                            &of_bus_type);
+               if (err)
+                       return err;
+
                if (i8042_kbd_irq == -1 ||
                    i8042_aux_irq == -1) {
-                       printk("i8042: Error, 8042 device lacks both kbd and "
-                              "mouse nodes.\n");
+                       if (kbd_iobase) {
+                               of_iounmap(kbd_iobase, 8);
+                               kbd_iobase = (void __iomem *) NULL;
+                       }
                        return -ENODEV;
                }
        }
@@ -109,7 +135,10 @@ static int __init i8042_platform_init(void)
 static inline void i8042_platform_exit(void)
 {
 #ifdef CONFIG_PCI
-       iounmap(kbd_iobase);
+       struct device_node *root = of_find_node_by_path("/");
+
+       if (strcmp(root->name, "SUNW,JavaStation-1"))
+               of_unregister_driver(&sparc_i8042_driver);
 #endif
 }
 
index a7d91d5356a55c67035cf8ab5c0b183a1fffa05a..7fa4bc2225837dec57e6ef0b7da91d9e21453abd 100644 (file)
@@ -15,7 +15,6 @@
 #include <linux/moduleparam.h>
 #include <linux/interrupt.h>
 #include <linux/ioport.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/serio.h>
 #include <linux/err.h>
index cbbf3842da5bb353703757beeeaf8ff6da5967dc..af526ab9ec04205239f5d580aec7ce30323dc9e2 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef _I8042_H
 #define _I8042_H
 
-#include <linux/config.h>
 
 /*
  *  Copyright (c) 1999-2002 Vojtech Pavlik
index 5f9ecad2ca75e81a0961555db81b14a061d517be..00e3929c62888a906852558cf7935cf9b6c36022 100644 (file)
@@ -48,7 +48,6 @@
 #include <linux/init.h>
 #include <linux/input.h>
 #include <linux/major.h>
-#include <linux/config.h>
 #include <linux/smp_lock.h>
 #include <linux/random.h>
 #include <linux/time.h>
index a518ec531021955eed502742a5cec7d007f88bd8..669f76393b5a5128de344b0cc7b7b1cda40179e2 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
index e7cf6bc286a6fe8428fa1f89e271ac33aaf8aabf..c1b21552fc036ae88fba6f53b975a61d5b56dfdb 100644 (file)
@@ -17,7 +17,6 @@
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/isdn/capiutil.h>
 
 /* from CAPI2.0 DDK AVM Berlin GmbH */
index 1b37d86d5ee13f4b3cb0dac5714eb4ecf44f043e..399b316111f72db4a292e71f4b52470a0fe1ec05 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/poll.h>
 #include <linux/smp_lock.h>
index 1ca3bfdef51d0c43f0cdd839028cf477856589d1..884bd72c1bf47fa9b5c8656a14f025d3f13eeeb8 100644 (file)
@@ -16,7 +16,6 @@
 #ifndef GIGASET_H
 #define GIGASET_H
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/compiler.h>
 #include <linux/types.h>
index 4d64e5cbcdbf84e4d897aa5f48e201026cf1df5e..a4beeb46c8597dd1da932d4a7a454c6160a65df8 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/skbuff.h>
index 5435a6cfb5e7a3c414626d2220872708d5c60fae..7edf19b322998b9e5ad85edbb737a536fa739d14 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/skbuff.h>
index f7253b2136ea969b8ff3e88171db35bf7035073d..e7924a545d49e948da4afdf7dc281b4290fd8f0d 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/skbuff.h>
index 2ceec8e8419f311ee7160ccd8c5ff403a491caca..af85511600d0b10fd87891e4cd70904c0bc02773 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/skbuff.h>
index 8fe4f3f09353ed206e82169d1022f8dbe7cfec7b..7a74ed35b1bfa721745511bac3dcadb4f55b291e 100644 (file)
@@ -10,7 +10,6 @@
  * of the GNU General Public License, incorporated herein by reference.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <asm/uaccess.h>
index 27204f4b111a7c724407abd3adfa07ab99efacb0..14298b8c835fedc6ea3334a461e481d64735a94a 100644 (file)
@@ -11,7 +11,6 @@
  * of the GNU General Public License, incorporated herein by reference.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index b163c5909182d40286c0b01ce41a18448efd40a2..77155d9f399bc1d1b46c2323ac4f6bedb48b30db 100644 (file)
@@ -10,7 +10,6 @@
  * of the GNU General Public License, incorporated herein by reference.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 6e7d89a31c1d668a3c2f4b02a28a6542c06b38ae..fff0d89c806b47a3a8be7736bd69719045837461 100644 (file)
@@ -10,7 +10,6 @@
  * of the GNU General Public License, incorporated herein by reference.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 9dee6a39104c617774454f4da58a968f6a5b57b0..b05e35f7ccb18fc9df35841236b1f3da88f231bb 100644 (file)
@@ -9,7 +9,6 @@
  * of the GNU General Public License, incorporated herein by reference.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index c12efa6f842917340b870f58276ad0ffa5d6b23a..6a4373a4f1e8c7715a274eff93db299fdffa8970 100644 (file)
@@ -10,7 +10,6 @@
  * of the GNU General Public License, incorporated herein by reference.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/poll.h>
index 12b8ff29e97648a41fb85f90ba49605dc326a034..a66836cf756cfcf33df528579795d22ce0dd8bc6 100644 (file)
@@ -18,7 +18,6 @@
 #define DIVA_BUILD "local"
 #endif
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 4abe5ff10e723d0ce01920538de86bd0ab800843..93f3a5343a74eac355fe7f2202c2ad3108b8a243 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include "hisax.h"
 #include "isac.h"
index dcb308aeb50cccdac293e64aae89a7ee7631fd9d..de28cb54817dcb78c90e2276bad8b4c238d9c5b8 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include "hisax.h"
 #include "isac.h"
index 5f21b82c8c8dcba3699b3ee89d112c3439313357..9d1abfb93dde5335061f4e51901ecb4f1bbdb4f7 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include "hisax.h"
 #include "isac.h"
index 27332506f9f7911ba105c9a4d9e1b7e1423a022f..5333be5d2c4740fff12a38e52b9bb9f5583e9622 100644 (file)
@@ -17,7 +17,6 @@
 #include <linux/types.h>
 #include <linux/stddef.h>
 #include <linux/timer.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include "hisax.h"
 #include <linux/module.h>
index b0ff1cc97d7cb418bac3d3289fb0fe2b879904c4..fbb9d02e3e2940216784201d75f8bd320f1ccefb 100644 (file)
@@ -16,7 +16,6 @@
  */
 
 #include <linux/init.h>
-#include <linux/config.h>
 #include "hisax.h"
 #include "isac.h"
 #include "hscx.h"
index f8ca4b3233316de5b31c3c2b6a76af8aa726fda8..7a5cdb1dee1ea5299eacba869c9d0367bfbb6f3f 100644 (file)
@@ -19,7 +19,6 @@
  */
 
 #include <linux/init.h>
-#include <linux/config.h>
 #include "hisax.h"
 #include "arcofi.h"
 #include "isac.h"
index 898ec0916195a9b788a4679fad5bbd3b8fe50015..0279fb323cb14412404f6ea7d6a59714b461961c 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/serial.h>
 #include <linux/serial_reg.h>
 
index 3341cf1555312ee7e7672269373b7bdb42b55531..5f48761846912a6fcc1c3e0055cee6bd16e2c83f 100644 (file)
@@ -60,7 +60,6 @@
  */
 
 
-#include <linux/config.h>
 #include "hisax.h"
 #include "isac.h"
 #include "isdnl1.h"
index 60b04c6d9e7dc4da3888a0ffcc3dd7d8709d9d2c..82a1d2e86ceea242407f4182a291b46eac9f501f 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include "hisax.h"
 #include "isac.h"
index e3866b0a97fd25b244520ed30f247f0b9e67cf3e..913fd27a1f5599dad07b5785ad4750e76fe93538 100644 (file)
@@ -22,7 +22,6 @@
 
 #include <linux/module.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/interrupt.h>
 #include <linux/delay.h>
index 3622720f05053a01cb37161ab27b2ce9a2fb6f0c..fa9615747e26aa1fd7b823508403b8bf6f1e7db7 100644 (file)
@@ -16,7 +16,6 @@
  */
 
 #include <linux/init.h>
-#include <linux/config.h>
 #include "hisax.h"
 #include "hfc_pci.h"
 #include "isdnl1.h"
index 262c4412741904bb5dd16ac1252966474ada9a1d..b5e571a526943847f3bd1e0d0240d27c1041c989 100644 (file)
@@ -32,7 +32,6 @@
 #include <linux/types.h>
 #include <linux/stddef.h>
 #include <linux/timer.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/kernel_stat.h>
index 11fe537e2f6f00b1aaf0d1f5bf0d87894df35fd2..75920aa0a3c57711514ec795a3084f003c46a527 100644 (file)
@@ -6,7 +6,6 @@
  * of the GNU General Public License, incorporated herein by reference.
  *
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
 #include <linux/major.h>
index ba518a7a7fb7c92adea7418628dd0a92de0a661d..ceafecdb103742c72f12beb4bce4cad7e80b0a10 100644 (file)
@@ -22,7 +22,6 @@
 #ifndef __HISAX_DEBUG_H__
 #define __HISAX_DEBUG_H__
 
-#include <linux/config.h>
 
 #ifdef CONFIG_HISAX_DEBUG
 
index 2e9afae1254a1a42731936e7e68ef6e1d95cda8a..df5fc92a89b221a2f9853e4918f4e758eb2dc55f 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include "hisax_if.h"
 #include "hisax.h"
index c9917cd2132b74e0fb311447aaa66c1b03cdd395..281fa27d9f003cc0fd72e07efe1e9e7c40c47f5c 100644 (file)
@@ -18,7 +18,6 @@
 #include <linux/init.h>
 #include "hisax.h"
 #include "isdnl3.h"
-#include <linux/config.h>
 
 const char *l3_revision = "$Revision: 2.22.2.3 $";
 
index e96845cdd4f626897ad4521aeb5f91f0a84bfc0b..99feae8b92100db4765b5d05fda89b87b59c36a3 100644 (file)
@@ -23,7 +23,6 @@
 #include "isdnl3.h"
 #include "l3dss1.h"
 #include <linux/ctype.h>
-#include <linux/config.h>
 
 extern char *HiSax_getrev(const char *revision);
 static const char *dss1_revision = "$Revision: 2.32.2.3 $";
index 68a2159cbd1109ffd9d06d3de6ec83bcc4e53ea9..868762cf76c6ebf3aa1eb88761106c1747900020 100644 (file)
@@ -14,7 +14,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include "hisax.h"
 #include "isac.h"
index a7d3cd3f36fdabf7b4fb2f6f25366ddb7aa28ba9..1b3ac46df52c96a51954da6122d3b3e36c005722 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include "hisax.h"
 #include "isac.h"
index 1ae7cac98a877724957349f52e9c3d7066e5623b..7a6010eac60dd621efc498284a807849a029ab27 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include "hisax.h"
 #include "icc.h"
index 8c044a6a7fe3b1e6567a5926f99d71932dee4494..11ea456626b6eb53cbc70c803311133777ea24cc 100644 (file)
@@ -39,7 +39,6 @@
 */
 
 #include <linux/init.h>
-#include <linux/config.h>
 #include "hisax.h"
 #include "isac.h"
 #include "ipac.h"
index 9ffaae7c657a1e09510698229adf285588d8ab91..04416bad611d5f68b32976f8f37ad8104c011054 100644 (file)
@@ -13,7 +13,6 @@
 #ifndef _ST5481_H_
 #define _ST5481_H_
 
-#include <linux/config.h>
 
 // USB IDs, the Product Id is in the range 0x4810-0x481F
 
index 99cb0f3d59a15ff4e4a65748b9bb309858dc5d21..2716aa5c60f7008b1c2df0742af1f722e35a2655 100644 (file)
@@ -24,7 +24,6 @@
  * clean up debug
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/usb.h>
index e82ab2251b825089b9f0a28ad68b007c6dbfd0f9..a1bb73e288419f03b8acc4abf96345911ec2eb22 100644 (file)
@@ -13,7 +13,6 @@
  */
 
 #include <linux/init.h>
-#include <linux/config.h>
 #include "hisax.h"
 #include "isac.h"
 #include "hscx.h"
index 0352ee5f706ca904244839b102edb84746ca580a..00e4fa2aef51f9cbfa36d3956bdf27a69ff700a2 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include "hisax.h"
 #include "w6692.h"
index 48d134be99088166e9f711e8f6160932f49fa8f4..89fd531fbce622efbc42fe9808847dc6c844bb60 100644 (file)
@@ -14,7 +14,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/signal.h>
 #include <linux/kernel.h>
index 3a9b29b38bc4eef1afeebab6f8d42a38846c57a2..461e831592ddd28710c36c8d422ae0f286645445 100644 (file)
@@ -14,7 +14,6 @@
 #ifndef HYSDN_DEFS_H
 #define HYSDN_DEFS_H
 
-#include <linux/config.h>
 #include <linux/hysdn_if.h>
 #include <linux/interrupt.h>
 #include <linux/workqueue.h>
index b75ac5af236a1a5eb102f1ff84554b2d23b02d28..b702ed27252bd2ab0054d5c4431fdb9d31ca98db 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/poll.h>
index 133032920ff8339d6b272de59cc277f5c79bb9db..1c0d54ac12abeb8cb2686ea87adea4619b51e24f 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/signal.h>
 #include <linux/kernel.h>
index eb21063e6f63fb7939363bf1cdf527d5a38f151a..9f6c6375ff75014f3a441c0056e2d007b9de354e 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/poll.h>
index 96c115e13389cd16b2d18a34bd5bc65e19d4fd47..43da8ae1b2ada35d4b2f2bf51ef9a4f2a37f74a5 100644 (file)
@@ -22,7 +22,6 @@
  *           http://i4l.zabbadoz.net/i4l/cisco-hdlc.txt
  */
 
-#include <linux/config.h>
 #include <linux/isdn.h>
 #include <net/arp.h>
 #include <net/dst.h>
index 918742271c79f6e617bec47ab38bcca52eda3483..29e7667ec962e5dbd35abc5b9d61dc5dbd81fe20 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/isdn.h>
 #include <linux/poll.h>
 #include <linux/ppp-comp.h>
index 0a53a990c100a2662102cab27823c1b6a7e0b5a0..9ab66e8960d5ddc1082f5d23c5c86642c8c528c5 100644 (file)
@@ -11,7 +11,6 @@
  */
 #undef ISDN_TTY_STAT_DEBUG
 
-#include <linux/config.h>
 #include <linux/isdn.h>
 #include <linux/delay.h>
 #include "isdn_common.h"
index 9f0fa9501f4d40287fbf980c55a8ec0be9b5926f..692c74d6b74964fb4a9f35464f2795411bb50a42 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #define DLE 0x10
 #define ETX 0x03
index a67d31af797a78030c5653bd1bc1f6f05e29937e..fabbd461603e217befac34687aa5eb08f7ebb575 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/interrupt.h>
 #include <linux/init.h>
index c75d0ef1609cb900d0cc014620bccbe8fbff2e7c..d424b4452028f2fb466ea70bd98d7ca0ae20339c 100644 (file)
@@ -9,7 +9,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 1b1ce6523960cb1676f342a718adf2e0962c42a6..47f0ff196328d2808268a17701444b08faafee1a 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index bb7d84df0121d2eafab984d7d4cfc61fcfb056d2..cf1dcd719a282eae18e596e7673807b48ef524c5 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
index 30ced150e4cfb8d2ea687a9f9487d11d690049e8..7dcf0b92c4603efe61c7d48c864d17351988360a 100644 (file)
@@ -31,7 +31,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
index 8419e29b71f4462ca4b4b6d580882143a6958991..3b87951aa5550211b829f5ab940fb6f98262b555 100644 (file)
@@ -8,7 +8,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/device.h>
index 650cf72dc675e9f659146f9ce9e935e522b36f11..fb1edc1c9edbd5556fbf86e97a8e67ce0c3dbfb2 100644 (file)
@@ -11,7 +11,6 @@
  * published by the Free Software Foundation.
 */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
index 65bbef4a5e0911402a63eb33fa9982a75c51ea8d..126d09cc96ecf97cad158fe47315e73c13e96779 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
index c9e8cc1ec4813db2942ad49c9a16c0b07e511e59..fb2416a38303ce87aab0766dac1c9997ecca506a 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
index fbf141ef46ec3488779a54c616cdff600f38890d..179c2876b5416cf871dbb7c3c3ce08ecebe8b137 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 9f1a049dc226a4d2a3086130ab0164f7889edbd2..360f93f6fcdb55de9941c14e38349c82a59f516b 100644 (file)
@@ -16,7 +16,6 @@
  * - move bus probe to a kernel thread
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
index cbfbbe2b150ab3167623e6622a972bab41b22e29..545be1ed692783035d190b2d3a884808db11515f 100644 (file)
@@ -34,7 +34,6 @@
  * Move to syfs
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/init.h>
index e5a2bbf9939939d15fed6d1f7fd9c109980f8abb..1293876a2ebd3c60244ae12c7ceb05bf630b315f 100644 (file)
@@ -18,7 +18,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/poll.h>
index a66636116f0b4f047f1071cf54b2c5cf334e2165..6b129eef7987cac903620a44109e8b63ce213871 100644 (file)
@@ -8,7 +8,6 @@
  * This file will soon be removed in favor of an uinput userspace tool.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/proc_fs.h>
 #include <linux/sysctl.h>
index c687ac703941f514af7c352ab456e72be2fc18e2..d832e109b1b15cf0a1891c71066a73d663751ffd 100644 (file)
@@ -17,7 +17,6 @@
  *    sub-devices.
  */
  
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
index 7f7d4eaca870ac3650d4b0523355bd7bf7e22117..cae24a13526a36a83498a9e2ad02ab1499d8ab2e 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/stat.h>
 #include <asm/macio.h>
index 53c1c79094138781c2cff7e35fb71a9061b5cfb7..0acf2f7fd9d725a3348d583306464211683021ac 100644 (file)
@@ -10,7 +10,6 @@
  *  as published by the Free Software Foundation; either version
  *  2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
index f4516ca7aa3a20ee13f100e7d06fa9e18eded116..030130570e0a5da9ee35f3bfed2c5e4a97806415 100644 (file)
@@ -19,7 +19,6 @@
  *    the userland interface
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/device.h>
index 5282fec17075be859759a29c0eeb8662603f016e..7f86478bdd36683799bcf99b204858976f3edc09 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/errno.h>
index 231146f439dddd841508b049d9aeaa14a9506468..c1fe0b368f7624ff12653f0f3f87d85e571939b7 100644 (file)
@@ -97,7 +97,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/errno.h>
index c17e61f9c418c081d7e9538894679b2594fc8fb1..fc7e9b7ecaf2da93f7323cf80e4939b935d93f10 100644 (file)
@@ -93,7 +93,7 @@ static char * critical_overtemp_path = "/sbin/critical_overtemp";
  * 0. This appear to be safe enough for this first version
  * of the driver, though I would accept any clean patch
  * doing a better use of the device-tree without turning the
- * while i2c registration mecanism into a racy mess
+ * while i2c registration mechanism into a racy mess
  *
  * Note: Xserve changed this. We have some bits on the K2 bus,
  * which I arbitrarily set to 0x200. Ultimately, we really want
index 3d9dd2e166aab2562d2f85dafc165459156afbf7..c7d1c290cb0c11280ee48a4840897adafaf68a86 100644 (file)
@@ -27,7 +27,6 @@
  *   
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/errno.h>
index 2d9d79150403b17996f034a8165a45ea28a687b5..6501db50fb8350cdf7eb72880bcfc1ebcbf9dcfa 100644 (file)
@@ -9,7 +9,6 @@
  * Copyright (C) 1996 Paul Mackerras.
  */
 #include <stdarg.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
index 1ab4f16c08b92d1e34da8e6628f66930c77d463a..c1193d34ec9e3cc82f88ea5886aec345443dd9b2 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 #include <stdarg.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
index 81337cd16e80d1fc80f87ee17fb82aa88a03d00f..900aade0619871c683b2a29cf45a3638c925a957 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
index ebbd2d856256f148d9352a396e2c537d59564925..ecc56765d949ebc977ebbe5326b0dcc39197566e 100644 (file)
@@ -20,7 +20,6 @@
 #include <linux/errno.h>
 #include <linux/slab.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/timer.h>
 #include <linux/sched.h>
 #include <linux/list.h>
index 8eea0ddbf5ec7dad5d4b012bd251dfeca83cd286..1d0fafda0f761abb3630bd180f628dd7dfbbbc4d 100644 (file)
@@ -7,7 +7,6 @@
  */
 
 #include <linux/blkdev.h>
-#include <linux/config.h>
 #include <linux/ctype.h>
 #include <linux/device-mapper.h>
 #include <linux/fs.h>
index 73ab875fb1580789a0e260557caad2cea40e44de..f1db6eff48574c80d9340960ac3deb0d25831ca0 100644 (file)
@@ -12,7 +12,6 @@
 #include <asm/atomic.h>
 
 #include <linux/blkdev.h>
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/init.h>
 #include <linux/list.h>
index 2ec1b3520a0b7245344610bba7fd1763beb9d25d..2fe32c2619227721468cd1c8e0843bb4b122d0b2 100644 (file)
@@ -33,7 +33,6 @@
 */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/kthread.h>
 #include <linux/linkage.h>
 #include <linux/raid/md.h>
index 837ec4eb3d604ce4e01023ccf87d0804ceef7f88..7433871f4b3a45e866c6a7d2508bfdaaa28f30e4 100644 (file)
@@ -19,7 +19,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/highmem.h>
index 2092e6c33dd289674a51b3c58a2389cb3c77ad4f..d2905720eb746b782f034b5e2b0aa1898c16b683 100644 (file)
@@ -158,7 +158,7 @@ static int calculate_h_scale_registers(struct saa7146_dev *dev,
        }
 
        /* the horizontal scaling increment controls the UV filter
-          to reduce the bandwith to improve the display quality,
+          to reduce the bandwidth to improve the display quality,
           so set it ... */
        if ( xsci == 0x400)
                pfuv = 0x00;
index b3dd0603cd9210ff1773c7e0f6a0b36ca0213b4d..5a6c4fe249e7b5bd190c1a062e4f28320c022534 100644 (file)
@@ -8,7 +8,6 @@
 #ifndef __FLEXCOP_COMMON_H__
 #define __FLEXCOP_COMMON_H__
 
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/mutex.h>
 
index 1b895360042531722a60830aca59e455a1f93913..001c71b6be61a970a59aad312bf59b65ab706e54 100644 (file)
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/slab.h>
index 5e8bb41a088b56c59bcb7f16c8f36264e1d54374..59ac35ddd51ef693f388eb3599a133d64cdd585e 100644 (file)
@@ -570,7 +570,8 @@ static int dvb_frontend_thread(void *data)
                                        dvb_frontend_add_event(fe, s);
                                        fepriv->status = s;
                                }
-                       }
+                       } else
+                               dvb_frontend_swzigzag(fe);
                } else
                        dvb_frontend_swzigzag(fe);
        }
@@ -975,6 +976,7 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
 
        case FE_SET_FRONTEND_TUNE_MODE:
                fepriv->tune_mode_flags = (unsigned long) parg;
+               err = 0;
                break;
        };
 
index 4cf9f89c51bf91c48f1faebee796d9a2839e0932..97f8ea9624385ae828834209bcf2ee872ab2e66f 100644 (file)
@@ -8,7 +8,6 @@
 #ifndef __DVB_USB_H__
 #define __DVB_USB_H__
 
-#include <linux/config.h>
 #include <linux/input.h>
 #include <linux/usb.h>
 #include <linux/firmware.h>
index 3c7c09a362b2ac88bf517ae1e2499fa347f97f82..13ad1bfae663f0c0386960d7314b7c65d4ff6ca7 100644 (file)
@@ -134,6 +134,7 @@ static int cx22700_set_tps (struct cx22700_state *state, struct dvb_ofdm_paramet
                return -EINVAL;
 
        if (p->code_rate_LP < FEC_1_2 || p->code_rate_LP > FEC_7_8)
+               return -EINVAL;
 
        if (p->code_rate_HP == FEC_4_5 || p->code_rate_LP == FEC_4_5)
                return -EINVAL;
index f2f795cba56aec2b18fc03b0c99f8bbe32820c5d..274a87b7a5d5fe8e54acf887aaeaa155bd82def1 100644 (file)
@@ -670,10 +670,10 @@ static int cx24123_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t voltage
        switch (voltage) {
        case SEC_VOLTAGE_13:
                dprintk("%s: setting voltage 13V\n", __FUNCTION__);
-               return cx24123_writereg(state, 0x29, val | 0x80);
+               return cx24123_writereg(state, 0x29, val & 0x7f);
        case SEC_VOLTAGE_18:
                dprintk("%s: setting voltage 18V\n", __FUNCTION__);
-               return cx24123_writereg(state, 0x29, val & 0x7f);
+               return cx24123_writereg(state, 0x29, val | 0x80);
        default:
                return -EINVAL;
        };
index 7c6dc7e30900a428b5a037b0099d096dcc871156..5302e11883a24738153dfd75f1f4c6ed3c53b354 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
index 6c3be2529980b2de1b12bf3c7ae680fbb247e000..98673474a14021dd551ea887f9867e7b40ad4c79 100644 (file)
@@ -20,7 +20,6 @@
  * see Documentation/dvb/README.dibusb for more information
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
index 6e8ad176e1a1468f0bbb3bf197232e850361f0d6..9a354708bd20a24f5dc946e05a1f25972a5899a7 100644 (file)
@@ -216,7 +216,7 @@ static int lgdt330x_init(struct dvb_frontend* fe)
                AGC_DELAY0, 0x07,
                AGC_DELAY2, 0xfe,
                /* Change the value of IAGCBW[15:8]
-                  of inner AGC loop filter bandwith */
+                  of inner AGC loop filter bandwidth */
                AGC_LOOP_BANDWIDTH0, 0x08,
                AGC_LOOP_BANDWIDTH1, 0x9a
        };
index e83ff2104c9b650c2e30a52118b7e291afa581f9..9cbd164aa281dead63829e13503bbef9fd39ebe8 100644 (file)
@@ -21,7 +21,6 @@
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 6bffe85c161cd1b54cbba3758c7402879e079fb6..9b57576bfeb411738495687aa490a3460bfc3f1b 100644 (file)
@@ -18,7 +18,6 @@
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 7a5c99c200e8e2a33e913c377d0fc89adecd3344..500f15c10aaf93047902c39a9a24b0a8e1c29b5e 100644 (file)
@@ -30,7 +30,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kmod.h>
 #include <linux/delay.h>
index 6163cb03b8f418e9859263be98d668881ad97482..5f111d407730611a661c50b00028f356638efe26 100644 (file)
@@ -1141,6 +1141,15 @@ static void frontend_init(struct budget_av *budget_av)
                break;
 
        case SUBID_DVBC_KNC1:
+               budget_av->reinitialise_demod = 1;
+               fe = tda10021_attach(&philips_cu1216_config,
+                                    &budget_av->budget.i2c_adap,
+                                    read_pwm(budget_av));
+               if (fe) {
+                       fe->ops.tuner_ops.set_params = philips_cu1216_tuner_set_params;
+               }
+               break;
+
        case SUBID_DVBC_KNC1_PLUS:
        case SUBID_DVBC_CINERGY1200:
                budget_av->reinitialise_demod = 1;
@@ -1293,11 +1302,7 @@ static int budget_av_attach(struct saa7146_dev *dev, struct saa7146_pci_extensio
 
        budget_av->budget.dvb_adapter.priv = budget_av;
        frontend_init(budget_av);
-
-       if (!budget_av->has_saa7113) {
-               ciintf_init(budget_av);
-       }
-
+       ciintf_init(budget_av);
        return 0;
 }
 
index 336b2fe1a5f2e13463ba5247bdf41085103ff965..04cef3023457c34ccc7584cec6e83002844ff143 100644 (file)
@@ -43,7 +43,7 @@
     is a bit braindead (no matching channel masks or no matching filter mask),
     we won't support this - yet. it doesn't event support negative filters,
     so the best way is maybe to keep TTUSB_HWSECTIONS undef'd and just
-    parse TS data. USB bandwith will be a problem when having large
+    parse TS data. USB bandwidth will be a problem when having large
     datastreams, especially for dvb-net, but hey, that's not my problem.
 
   TTUSB_DISEQC, TTUSB_TONE:
index 9f249e7e60c9b16d2a0d9b4081d18ea28a478d20..4c82956390c1de098a28c290baba01b698fd0c5c 100644 (file)
@@ -37,7 +37,6 @@
  ***************************************************************************
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/list.h>
 #include <linux/module.h>
index ae14f5f32039cffb00016bc07ab677a340b343a1..5c5e682a30042f0528348219fbd3c4ad754a24f6 100644 (file)
@@ -18,7 +18,6 @@
  * 2003-09-01: Support w3cam by Takeo Takahashi
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/delay.h>
index e68a6d2fff2439a94aa8f2b49e393f0916b0724c..de14818d5cc462815ff503e206c4da1047391abe 100644 (file)
@@ -25,7 +25,6 @@
 
 */
 
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
@@ -3548,11 +3547,6 @@ void __devinit bttv_init_card2(struct bttv *btv)
        /* Hybrid DVB card, DOES have a tda9887 */
        if (btv->c.type == BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE)
                tda9887 = 1;
-       if((btv->tuner_type == TUNER_PHILIPS_FM1216ME_MK3) ||
-          (btv->tuner_type == TUNER_PHILIPS_FM1236_MK3) ||
-          (btv->tuner_type == TUNER_PHILIPS_FM1256_IH3) ||
-           tda9887)
-               request_module("tda9887");
        if (btv->tuner_type != UNSET)
                request_module("tuner");
 }
index d2956010f763c0cb05a58fb21c6fc629086f86dc..311c4c541e01d554f3b396248bdf18419ce99afa 100644 (file)
@@ -360,7 +360,7 @@ struct bttv {
        int mbox_csel;
 
        /* risc memory management data
-          - must aquire s_lock before changing these
+          - must acquire s_lock before changing these
           - only the irq handler is supported to touch top + bottom + vcurr */
        struct btcx_riscmem     main;
        struct bttv_buffer      *screen;    /* overlay             */
index 840fe0177121190275008fbda829019258236972..353d02b67c33014d73a3f5279f9b6ed5c0597a98 100644 (file)
@@ -12,7 +12,6 @@
  * ioctls.
  */
 
-#include <linux/config.h>
 #include <linux/compat.h>
 #include <linux/videodev.h>
 #include <linux/videodev2.h>
index 95c5aceecc5bb9566f64887d805713d4cfc28286..3b31a0dd2f0cde9645f8740753922161130654df 100644 (file)
@@ -26,7 +26,6 @@
 /* define _CPIA_DEBUG_ for verbose debug output (see cpia.h) */
 /* #define _CPIA_DEBUG_  1 */
 
-#include <linux/config.h>
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
index d129db57fcd4bab57861528b200092326bf86bc4..d09f49950f2a4be2a885bdfd130ab02825b075b1 100644 (file)
@@ -31,7 +31,6 @@
 
 #include <linux/version.h>
 
-#include <linux/config.h>
 
 #include <linux/module.h>
 #include <linux/time.h>
index 4c89bd395d3e6d275d78fda9580d16ed3a427d4a..41f4b8d17559d085eab1f3c6a3bf0f278eb71264 100644 (file)
@@ -25,7 +25,6 @@
 /* define _CPIA_DEBUG_ for verbose debug output (see cpia.h) */
 /* #define _CPIA_DEBUG_  1 */
 
-#include <linux/config.h>
 
 #include <linux/module.h>
 #include <linux/init.h>
index 4ff81582ec56ee5f71b17ec2e402c51730ce4698..349632b48e931a2dff360965703754ba0a3b1d19 100644 (file)
@@ -686,6 +686,39 @@ static struct videobuf_queue_ops blackbird_qops = {
 
 /* ------------------------------------------------------------------ */
 
+static const u32 *ctrl_classes[] = {
+       cx88_user_ctrls,
+       cx2341x_mpeg_ctrls,
+       NULL
+};
+
+static int blackbird_queryctrl(struct cx8802_dev *dev, struct v4l2_queryctrl *qctrl)
+{
+       qctrl->id = v4l2_ctrl_next(ctrl_classes, qctrl->id);
+       if (qctrl->id == 0)
+               return -EINVAL;
+
+       /* Standard V4L2 controls */
+       if (cx8800_ctrl_query(qctrl) == 0)
+               return 0;
+
+       /* MPEG V4L2 controls */
+       if (cx2341x_ctrl_query(&dev->params, qctrl))
+               qctrl->flags |= V4L2_CTRL_FLAG_DISABLED;
+       return 0;
+}
+
+static int blackbird_querymenu(struct cx8802_dev *dev, struct v4l2_querymenu *qmenu)
+{
+       struct v4l2_queryctrl qctrl;
+
+       qctrl.id = qmenu->id;
+       blackbird_queryctrl(dev, &qctrl);
+       return v4l2_ctrl_query_menu(qmenu, &qctrl, cx2341x_ctrl_get_menu(qmenu->id));
+}
+
+/* ------------------------------------------------------------------ */
+
 static int mpeg_do_ioctl(struct inode *inode, struct file *file,
                         unsigned int cmd, void *arg)
 {
@@ -866,6 +899,16 @@ static int mpeg_do_ioctl(struct inode *inode, struct file *file,
                       core->name);
                return 0;
        }
+       case VIDIOC_QUERYMENU:
+               return blackbird_querymenu(dev, arg);
+       case VIDIOC_QUERYCTRL:
+       {
+               struct v4l2_queryctrl *c = arg;
+
+               if (blackbird_queryctrl(dev, c) == 0)
+                       return 0;
+               return cx88_do_ioctl(inode, file, 0, dev->core, cmd, arg, mpeg_do_ioctl);
+       }
 
        default:
                return cx88_do_ioctl(inode, file, 0, dev->core, cmd, arg, mpeg_do_ioctl);
index f9d68f20dc88b87a77bc3c6565fcc9afcfe7936c..14bd4863d157514d526bc61735743cebe214a8e2 100644 (file)
@@ -1194,6 +1194,21 @@ struct cx88_board cx88_boards[] = {
                }},
                .dvb            = 1,
        },
+       [CX88_BOARD_GENIATECH_DVBS] = {
+               .name          = "Geniatech DVB-S",
+               .tuner_type    = TUNER_ABSENT,
+               .radio_type    = UNSET,
+               .tuner_addr    = ADDR_UNSET,
+               .radio_addr    = ADDR_UNSET,
+               .input  = {{
+                       .type  = CX88_VMUX_DVB,
+                       .vmux  = 0,
+               },{
+                       .type  = CX88_VMUX_COMPOSITE1,
+                       .vmux  = 1,
+               }},
+               .dvb      = 1,
+       },
 };
 const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);
 
@@ -1439,6 +1454,10 @@ struct cx88_subid cx88_subids[] = {
                .subvendor = 0x18ac,
                .subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
                .card      = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,
+       },{
+               .subvendor = 0x14f1,
+               .subdevice = 0x0084,
+               .card      = CX88_BOARD_GENIATECH_DVBS,
        },
 };
 const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
index dce1feddd55d16f9d6ece0457cd71c47d7a681cb..afde3789d702e2f295cc66a4d953b2c028c9ddce 100644 (file)
@@ -496,6 +496,26 @@ static int kworld_dvbs_100_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t
        return 0;
 }
 
+static int geniatech_dvbs_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
+{
+       struct cx8802_dev *dev= fe->dvb->priv;
+       struct cx88_core *core = dev->core;
+
+       if (voltage == SEC_VOLTAGE_OFF) {
+               dprintk(1,"LNB Voltage OFF\n");
+               cx_write(MO_GP0_IO, 0x0000efff);
+       }
+
+       if (core->prev_set_voltage)
+               return core->prev_set_voltage(fe, voltage);
+       return 0;
+}
+
+static struct cx24123_config geniatech_dvbs_config = {
+       .demod_address  = 0x55,
+       .set_ts_params  = cx24123_set_ts_param,
+};
+
 static struct cx24123_config hauppauge_novas_config = {
        .demod_address          = 0x55,
        .set_ts_params          = cx24123_set_ts_param,
@@ -760,6 +780,14 @@ static int dvb_register(struct cx8802_dev *dev)
                        dev->dvb.frontend->ops.set_voltage = kworld_dvbs_100_set_voltage;
                }
                break;
+       case CX88_BOARD_GENIATECH_DVBS:
+               dev->dvb.frontend = cx24123_attach(&geniatech_dvbs_config,
+                                                  &dev->core->i2c_adap);
+               if (dev->dvb.frontend) {
+                       dev->core->prev_set_voltage = dev->dvb.frontend->ops.set_voltage;
+                       dev->dvb.frontend->ops.set_voltage = geniatech_dvbs_set_voltage;
+               }
+               break;
 #endif
        default:
                printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n",
index 8d5cf474b68e817c9729d40ad3f5745092290d9c..c538d99ec9f66024cfa6352d4c075586f49f84b8 100644 (file)
@@ -327,6 +327,51 @@ static struct cx88_ctrl cx8800_ctls[] = {
 };
 static const int CX8800_CTLS = ARRAY_SIZE(cx8800_ctls);
 
+const u32 cx88_user_ctrls[] = {
+       V4L2_CID_USER_CLASS,
+       V4L2_CID_BRIGHTNESS,
+       V4L2_CID_CONTRAST,
+       V4L2_CID_SATURATION,
+       V4L2_CID_HUE,
+       V4L2_CID_AUDIO_VOLUME,
+       V4L2_CID_AUDIO_BALANCE,
+       V4L2_CID_AUDIO_MUTE,
+       0
+};
+EXPORT_SYMBOL(cx88_user_ctrls);
+
+static const u32 *ctrl_classes[] = {
+       cx88_user_ctrls,
+       NULL
+};
+
+int cx8800_ctrl_query(struct v4l2_queryctrl *qctrl)
+{
+       int i;
+
+       if (qctrl->id < V4L2_CID_BASE ||
+           qctrl->id >= V4L2_CID_LASTP1)
+               return -EINVAL;
+       for (i = 0; i < CX8800_CTLS; i++)
+               if (cx8800_ctls[i].v.id == qctrl->id)
+                       break;
+       if (i == CX8800_CTLS) {
+               *qctrl = no_ctl;
+               return 0;
+       }
+       *qctrl = cx8800_ctls[i].v;
+       return 0;
+}
+EXPORT_SYMBOL(cx8800_ctrl_query);
+
+static int cx88_queryctrl(struct v4l2_queryctrl *qctrl)
+{
+       qctrl->id = v4l2_ctrl_next(ctrl_classes, qctrl->id);
+       if (qctrl->id == 0)
+               return -EINVAL;
+       return cx8800_ctrl_query(qctrl);
+}
+
 /* ------------------------------------------------------------------- */
 /* resource management                                                 */
 
@@ -1362,20 +1407,8 @@ int cx88_do_ioctl(struct inode *inode, struct file *file, int radio,
        case VIDIOC_QUERYCTRL:
        {
                struct v4l2_queryctrl *c = arg;
-               int i;
 
-               if (c->id <  V4L2_CID_BASE ||
-                   c->id >= V4L2_CID_LASTP1)
-                       return -EINVAL;
-               for (i = 0; i < CX8800_CTLS; i++)
-                       if (cx8800_ctls[i].v.id == c->id)
-                               break;
-               if (i == CX8800_CTLS) {
-                       *c = no_ctl;
-                       return 0;
-               }
-               *c = cx8800_ctls[i].v;
-               return 0;
+               return cx88_queryctrl(c);
        }
        case VIDIOC_G_CTRL:
                return get_control(core,arg);
@@ -1893,8 +1926,6 @@ static int __devinit cx8800_initdev(struct pci_dev *pci_dev,
        /* load and configure helper modules */
        if (TUNER_ABSENT != core->tuner_type)
                request_module("tuner");
-       if (core->tda9887_conf)
-               request_module("tda9887");
 
        /* register v4l devices */
        dev->video_dev = cx88_vdev_init(core,dev->pci,
index 9a9a0fc7a41ad26a6df000c15e3a053033cdf749..e7810955dd4f845c803e954de86644eab40f4d73 100644 (file)
@@ -196,6 +196,7 @@ extern struct sram_channel cx88_sram_channels[];
 #define CX88_BOARD_PIXELVIEW_PLAYTV_P7000  49
 #define CX88_BOARD_NPGTECH_REALTV_TOP10FM  50
 #define CX88_BOARD_WINFAST_DTV2000H        51
+#define CX88_BOARD_GENIATECH_DVBS          52
 
 enum cx88_itype {
        CX88_VMUX_COMPOSITE1 = 1,
@@ -590,6 +591,8 @@ int cx8802_resume_common(struct pci_dev *pci_dev);
 extern int cx88_do_ioctl(struct inode *inode, struct file *file, int radio,
                                struct cx88_core *core, unsigned int cmd,
                                void *arg, v4l2_kioctl driver_ioctl);
+extern const u32 cx88_user_ctrls[];
+extern int cx8800_ctrl_query(struct v4l2_queryctrl *qctrl);
 
 /*
  * Local variables:
index 9286090817cd2d564d97a100fd8ceeb99789e4fe..2a461dde480c89c0dcf339920861764a709c89f9 100644 (file)
@@ -1574,8 +1574,6 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
                request_module("tvp5150");
        if (dev->has_tuner)
                request_module("tuner");
-       if (dev->tda9887_conf)
-               request_module("tda9887");
 #endif
        errCode = em28xx_config(dev);
        if (errCode) {
index f68ca7d9f5319b28a34e47e834022b6ea2a970c3..ddd62214bee5d92df37478c8d0220b23b4df38fb 100644 (file)
@@ -26,7 +26,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/sched.h>
index 0d09a0e3803c5cdfd5c4e6f911573cdae41b29a1..ea107cb5c845baf46b928bf880e1b54944257077 100644 (file)
@@ -36,7 +36,6 @@
 #define MEYE_DRIVER_VERSION __stringify(MEYE_DRIVER_MAJORVERSION) "." \
                            __stringify(MEYE_DRIVER_MINORVERSION)
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/kfifo.h>
index 4e451049013de8d87a0f20a8eb27ec8456dfe8bf..545e4ac094f2e2dd513a275a8a730db4fdbe83bb 100644 (file)
@@ -90,8 +90,8 @@ struct msp_state {
        /* thread */
        struct task_struct   *kthread;
        wait_queue_head_t    wq;
-       int                  restart:1;
-       int                  watch_stereo:1;
+       unsigned int         restart:1;
+       unsigned int         watch_stereo:1;
 };
 
 /* msp3400-driver.c */
index a988df226aabc3aa4c709c322735c33156067dcd..1b07a61c2ebb7dd98854e7d40dcea077189868cb 100644 (file)
@@ -35,7 +35,6 @@
  * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/vmalloc.h>
index fed603ad0a6721b1a39ced19bab569ca4e1c2764..02e414210dac4ab61be1baa43558c5fc32610bd8 100644 (file)
@@ -8,7 +8,7 @@ obj-pvrusb2-24xxx-$(CONFIG_VIDEO_PVRUSB2_24XXX) := \
 pvrusb2-objs   := pvrusb2-i2c-core.o pvrusb2-i2c-cmd-v4l2.o \
                   pvrusb2-audio.o pvrusb2-i2c-chips-v4l2.o \
                   pvrusb2-encoder.o pvrusb2-video-v4l.o \
-                  pvrusb2-eeprom.o pvrusb2-tuner.o pvrusb2-demod.o \
+                  pvrusb2-eeprom.o pvrusb2-tuner.o \
                   pvrusb2-main.o pvrusb2-hdw.o pvrusb2-v4l2.o \
                   pvrusb2-ctrl.o pvrusb2-std.o \
                   pvrusb2-context.o pvrusb2-io.o pvrusb2-ioread.o \
index 313d2dcf9e4bfbd90c04e5f2cd573385ce6ca25f..9846c464ec801d02be993f2955edbfb0cd405894 100644 (file)
@@ -145,8 +145,8 @@ static int get_audio_status(struct pvr2_msp3400_handler *ctxt)
 
 static void pvr2_msp3400_detach(struct pvr2_msp3400_handler *ctxt)
 {
-       ctxt->client->handler = 0;
-       ctxt->hdw->audio_stat = 0;
+       ctxt->client->handler = NULL;
+       ctxt->hdw->audio_stat = NULL;
        kfree(ctxt);
 }
 
index 40dc59871a458e298ed54a45d6cf033c09116e08..f129f316d20eb42484ed84ffd67e2544dd5e9887 100644 (file)
@@ -77,7 +77,7 @@ struct pvr2_context *pvr2_context_create(
        const struct usb_device_id *devid,
        void (*setup_func)(struct pvr2_context *))
 {
-       struct pvr2_context *mp = 0;
+       struct pvr2_context *mp = NULL;
        mp = kmalloc(sizeof(*mp),GFP_KERNEL);
        if (!mp) goto done;
        memset(mp,0,sizeof(*mp));
@@ -87,7 +87,7 @@ struct pvr2_context *pvr2_context_create(
        mp->hdw = pvr2_hdw_create(intf,devid);
        if (!mp->hdw) {
                pvr2_context_destroy(mp);
-               mp = 0;
+               mp = NULL;
                goto done;
        }
 
@@ -145,7 +145,7 @@ void pvr2_channel_init(struct pvr2_channel *cp,struct pvr2_context *mp)
 {
        cp->hdw = mp->hdw;
        cp->mc_head = mp;
-       cp->mc_next = 0;
+       cp->mc_next = NULL;
        cp->mc_prev = mp->mc_last;
        if (mp->mc_last) {
                mp->mc_last->mc_next = cp;
@@ -160,8 +160,8 @@ static void pvr2_channel_disclaim_stream(struct pvr2_channel *cp)
 {
        if (!cp->stream) return;
        pvr2_stream_kill(cp->stream->stream);
-       cp->stream->user = 0;
-       cp->stream = 0;
+       cp->stream->user = NULL;
+       cp->stream = NULL;
 }
 
 
@@ -179,7 +179,7 @@ void pvr2_channel_done(struct pvr2_channel *cp)
        } else {
                mp->mc_first = cp->mc_next;
        }
-       cp->hdw = 0;
+       cp->hdw = NULL;
 }
 
 
@@ -212,7 +212,7 @@ struct pvr2_ioread *pvr2_channel_create_mpeg_stream(
 {
        struct pvr2_ioread *cp;
        cp = pvr2_ioread_create();
-       if (!cp) return 0;
+       if (!cp) return NULL;
        pvr2_ioread_setup(cp,sp->stream);
        pvr2_ioread_set_sync_key(cp,stream_sync_key,sizeof(stream_sync_key));
        return cp;
index d5df9fbeba2ff46b97d6929416984d41fabf0c8a..fb6198f1df98629dbb04d14eeb643838300c8041 100644 (file)
@@ -158,7 +158,7 @@ int pvr2_ctrl_get_mask(struct pvr2_ctrl *cptr)
 /* Retrieve the control's name */
 const char *pvr2_ctrl_get_name(struct pvr2_ctrl *cptr)
 {
-       if (!cptr) return 0;
+       if (!cptr) return NULL;
        return cptr->info->name;
 }
 
@@ -166,7 +166,7 @@ const char *pvr2_ctrl_get_name(struct pvr2_ctrl *cptr)
 /* Retrieve the control's desc */
 const char *pvr2_ctrl_get_desc(struct pvr2_ctrl *cptr)
 {
-       if (!cptr) return 0;
+       if (!cptr) return NULL;
        return cptr->info->desc;
 }
 
@@ -488,7 +488,7 @@ int pvr2_ctrl_sym_to_value(struct pvr2_ctrl *cptr,
 
        LOCK_TAKE(cptr->hdw->big_lock); do {
                if (cptr->info->type == pvr2_ctl_int) {
-                       ret = parse_token(ptr,len,valptr,0,0);
+                       ret = parse_token(ptr,len,valptr,NULL,0);
                        if ((ret >= 0) &&
                            ((*valptr < cptr->info->def.type_int.min_value) ||
                             (*valptr > cptr->info->def.type_int.max_value))) {
index 27eadaff75a0eeb052769db0ef55abf940b084a0..c80c26be6e4d31dd048964525184d676cc96bf0d 100644 (file)
@@ -139,8 +139,8 @@ static const struct pvr2_v4l_cx2584x_ops decoder_ops[] = {
 
 static void decoder_detach(struct pvr2_v4l_cx2584x *ctxt)
 {
-       ctxt->client->handler = 0;
-       ctxt->hdw->decoder_ctrl = 0;
+       ctxt->client->handler = NULL;
+       ctxt->hdw->decoder_ctrl = NULL;
        kfree(ctxt);
 }
 
@@ -221,7 +221,7 @@ static unsigned int decoder_describe(struct pvr2_v4l_cx2584x *ctxt,
 static void decoder_reset(struct pvr2_v4l_cx2584x *ctxt)
 {
        int ret;
-       ret = pvr2_i2c_client_cmd(ctxt->client,VIDIOC_INT_RESET,0);
+       ret = pvr2_i2c_client_cmd(ctxt->client,VIDIOC_INT_RESET,NULL);
        pvr2_trace(PVR2_TRACE_CHIPS,"i2c cx25840 decoder_reset (ret=%d)",ret);
 }
 
index 586900e365ff2eaac9062028b8347efbb81dfc19..f985f00d885ad5914e80d16be6a5fd60252b287a 100644 (file)
@@ -82,7 +82,7 @@ static unsigned int debugifc_isolate_word(const char *buf,unsigned int count,
        unsigned int wlen;
        unsigned int scnt;
 
-       wptr = 0;
+       wptr = NULL;
        wlen = 0;
        scnt = debugifc_count_whitespace(buf,count);
        consume_cnt += scnt; count -= scnt; buf += scnt;
@@ -337,8 +337,8 @@ int pvr2_debugifc_print_status(struct pvr2_hdw *hdw,
 }
 
 
-int pvr2_debugifc_do1cmd(struct pvr2_hdw *hdw,const char *buf,
-                        unsigned int count)
+static int pvr2_debugifc_do1cmd(struct pvr2_hdw *hdw,const char *buf,
+                               unsigned int count)
 {
        const char *wptr;
        unsigned int wlen;
diff --git a/drivers/media/video/pvrusb2/pvrusb2-demod.c b/drivers/media/video/pvrusb2/pvrusb2-demod.c
deleted file mode 100644 (file)
index 9686569..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- *
- *  $Id$
- *
- *  Copyright (C) 2005 Mike Isely <isely@pobox.com>
- *  Copyright (C) 2004 Aurelien Alleaume <slts@free.fr>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- */
-
-#include "pvrusb2.h"
-#include "pvrusb2-util.h"
-#include "pvrusb2-demod.h"
-#include "pvrusb2-hdw-internal.h"
-#include "pvrusb2-debug.h"
-#include <linux/videodev2.h>
-#include <media/tuner.h>
-#include <media/v4l2-common.h>
-
-
-struct pvr2_demod_handler {
-       struct pvr2_hdw *hdw;
-       struct pvr2_i2c_client *client;
-       struct pvr2_i2c_handler i2c_handler;
-       int type_update_fl;
-};
-
-
-static void set_config(struct pvr2_demod_handler *ctxt)
-{
-       struct pvr2_hdw *hdw = ctxt->hdw;
-       int cfg = 0;
-
-       switch (hdw->tuner_type) {
-       case TUNER_PHILIPS_FM1216ME_MK3:
-       case TUNER_PHILIPS_FM1236_MK3:
-               cfg = TDA9887_PORT1_ACTIVE|TDA9887_PORT2_ACTIVE;
-               break;
-       default:
-               break;
-       }
-       pvr2_trace(PVR2_TRACE_CHIPS,"i2c demod set_config(0x%x)",cfg);
-       pvr2_i2c_client_cmd(ctxt->client,TDA9887_SET_CONFIG,&cfg);
-       ctxt->type_update_fl = 0;
-}
-
-
-static int demod_check(struct pvr2_demod_handler *ctxt)
-{
-       struct pvr2_hdw *hdw = ctxt->hdw;
-       if (hdw->tuner_updated) ctxt->type_update_fl = !0;
-       return ctxt->type_update_fl != 0;
-}
-
-
-static void demod_update(struct pvr2_demod_handler *ctxt)
-{
-       if (ctxt->type_update_fl) set_config(ctxt);
-}
-
-
-static void demod_detach(struct pvr2_demod_handler *ctxt)
-{
-       ctxt->client->handler = 0;
-       kfree(ctxt);
-}
-
-
-static unsigned int demod_describe(struct pvr2_demod_handler *ctxt,char *buf,unsigned int cnt)
-{
-       return scnprintf(buf,cnt,"handler: pvrusb2-demod");
-}
-
-
-const static struct pvr2_i2c_handler_functions tuner_funcs = {
-       .detach = (void (*)(void *))demod_detach,
-       .check = (int (*)(void *))demod_check,
-       .update = (void (*)(void *))demod_update,
-       .describe = (unsigned int (*)(void *,char *,unsigned int))demod_describe,
-};
-
-
-int pvr2_i2c_demod_setup(struct pvr2_hdw *hdw,struct pvr2_i2c_client *cp)
-{
-       struct pvr2_demod_handler *ctxt;
-       if (cp->handler) return 0;
-
-       ctxt = kmalloc(sizeof(*ctxt),GFP_KERNEL);
-       if (!ctxt) return 0;
-       memset(ctxt,0,sizeof(*ctxt));
-
-       ctxt->i2c_handler.func_data = ctxt;
-       ctxt->i2c_handler.func_table = &tuner_funcs;
-       ctxt->type_update_fl = !0;
-       ctxt->client = cp;
-       ctxt->hdw = hdw;
-       cp->handler = &ctxt->i2c_handler;
-       pvr2_trace(PVR2_TRACE_CHIPS,"i2c 0x%x tda9887 V4L2 handler set up",
-                  cp->client->addr);
-       return !0;
-}
-
-
-
-
-/*
-  Stuff for Emacs to see, in order to encourage consistent editing style:
-  *** Local Variables: ***
-  *** mode: c ***
-  *** fill-column: 70 ***
-  *** tab-width: 8 ***
-  *** c-basic-offset: 8 ***
-  *** End: ***
-  */
diff --git a/drivers/media/video/pvrusb2/pvrusb2-demod.h b/drivers/media/video/pvrusb2/pvrusb2-demod.h
deleted file mode 100644 (file)
index 4c4e40f..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *
- *  $Id$
- *
- *  Copyright (C) 2005 Mike Isely <isely@pobox.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- */
-#ifndef __PVRUSB2_DEMOD_H
-#define __PVRUSB2_DEMOD_H
-
-#include "pvrusb2-i2c-core.h"
-
-int pvr2_i2c_demod_setup(struct pvr2_hdw *,struct pvr2_i2c_client *);
-
-#endif /* __PVRUSB2_DEMOD_H */
-
-/*
-  Stuff for Emacs to see, in order to encourage consistent editing style:
-  *** Local Variables: ***
-  *** mode: c ***
-  *** fill-column: 70 ***
-  *** tab-width: 8 ***
-  *** c-basic-offset: 8 ***
-  *** End: ***
-  */
index 94d383ff98897f4032ae1f2c1d5af5cff2192d3c..6cff8e75f4264bde5e471a02836c80b4ce2f0cae 100644 (file)
@@ -58,7 +58,7 @@ static u8 *pvr2_eeprom_fetch(struct pvr2_hdw *hdw)
                pvr2_trace(PVR2_TRACE_ERROR_LEGS,
                           "Failed to allocate memory"
                           " required to read eeprom");
-               return 0;
+               return NULL;
        }
 
        trace_eeprom("Value for eeprom addr from controller was 0x%x",
@@ -108,7 +108,7 @@ static u8 *pvr2_eeprom_fetch(struct pvr2_hdw *hdw)
                        pvr2_trace(PVR2_TRACE_ERROR_LEGS,
                                   "eeprom fetch set offs err=%d",ret);
                        kfree(eeprom);
-                       return 0;
+                       return NULL;
                }
        }
        return eeprom;
index 2cc31695b435cadfc9053a0e4d97a77d5274e217..18a7073501c6037fd845dfdf414d70cee51aefbc 100644 (file)
@@ -65,7 +65,7 @@ static int pvr2_encoder_write_words(struct pvr2_hdw *hdw,
                }
                ret = pvr2_send_request(hdw,
                                        hdw->cmd_buffer,1+(chunkCnt*7),
-                                       0,0);
+                                       NULL,0);
                if (ret) return ret;
                data += chunkCnt;
                dlen -= chunkCnt;
@@ -322,7 +322,7 @@ int pvr2_encoder_configure(struct pvr2_hdw *hdw)
        }
 
        ret = cx2341x_update(hdw,pvr2_encoder_cmd,
-                            (hdw->enc_cur_valid ? &hdw->enc_cur_state : 0),
+                            (hdw->enc_cur_valid ? &hdw->enc_cur_state : NULL),
                             &hdw->enc_ctl_state);
        if (ret) {
                pvr2_trace(PVR2_TRACE_ERROR_LEGS,
index ba2afbfe32c5b95de7b2aa55d233728c3d43c7ea..0d6dc33ca32046db2e34cd6aef0f7502af2af968 100644 (file)
@@ -354,23 +354,6 @@ struct pvr2_hdw {
        unsigned int control_cnt;
 };
 
-int pvr2_hdw_commit_ctl_internal(struct pvr2_hdw *hdw);
-
-unsigned int pvr2_hdw_get_signal_status_internal(struct pvr2_hdw *);
-
-void pvr2_hdw_subsys_bit_chg_no_lock(struct pvr2_hdw *hdw,
-                                    unsigned long msk,unsigned long val);
-void pvr2_hdw_subsys_stream_bit_chg_no_lock(struct pvr2_hdw *hdw,
-                                           unsigned long msk,
-                                           unsigned long val);
-
-void pvr2_hdw_internal_find_stdenum(struct pvr2_hdw *hdw);
-void pvr2_hdw_internal_set_std_avail(struct pvr2_hdw *hdw);
-
-int pvr2_i2c_basic_op(struct pvr2_hdw *,u8 i2c_addr,
-                     u8 *wdata,u16 wlen,
-                     u8 *rdata,u16 rlen);
-
 #endif /* __PVRUSB2_HDW_INTERNAL_H */
 
 /*
index 643c471375da1233c9a427d78490664630f80a5a..9b48abcf60897a84e6af0202bcfb3de9beb5359a 100644 (file)
@@ -63,7 +63,6 @@ struct pvr2_string_table {
 static const char *pvr2_client_24xxx[] = {
        "cx25840",
        "tuner",
-       "tda9887",
        "wm8775",
 };
 #endif
@@ -73,7 +72,6 @@ static const char *pvr2_client_29xxx[] = {
        "msp3400",
        "saa7115",
        "tuner",
-       "tda9887",
 };
 
 static struct pvr2_string_table pvr2_client_lists[] = {
@@ -89,8 +87,8 @@ static struct pvr2_string_table pvr2_client_lists[] = {
 #endif
 };
 
-static struct pvr2_hdw *unit_pointers[PVR_NUM] = {[ 0 ... PVR_NUM-1 ] = 0};
-DECLARE_MUTEX(pvr2_unit_sem);
+static struct pvr2_hdw *unit_pointers[PVR_NUM] = {[ 0 ... PVR_NUM-1 ] = NULL};
+static DECLARE_MUTEX(pvr2_unit_sem);
 
 static int ctlchg = 0;
 static int initusbreset = 1;
@@ -263,6 +261,25 @@ static const char *control_values_subsystem[] = {
        [PVR2_SUBSYS_B_ENC_RUN] = "enc_run",
 };
 
+static int pvr2_hdw_cmd_usbstream(struct pvr2_hdw *hdw,int runFl);
+static int pvr2_hdw_commit_ctl_internal(struct pvr2_hdw *hdw);
+static int pvr2_hdw_get_eeprom_addr(struct pvr2_hdw *hdw);
+static unsigned int pvr2_hdw_get_signal_status_internal(struct pvr2_hdw *hdw);
+static void pvr2_hdw_internal_find_stdenum(struct pvr2_hdw *hdw);
+static void pvr2_hdw_internal_set_std_avail(struct pvr2_hdw *hdw);
+static void pvr2_hdw_render_useless_unlocked(struct pvr2_hdw *hdw);
+static void pvr2_hdw_subsys_bit_chg_no_lock(struct pvr2_hdw *hdw,
+                                           unsigned long msk,
+                                           unsigned long val);
+static void pvr2_hdw_subsys_stream_bit_chg_no_lock(struct pvr2_hdw *hdw,
+                                                  unsigned long msk,
+                                                  unsigned long val);
+static int pvr2_send_request_ex(struct pvr2_hdw *hdw,
+                               unsigned int timeout,int probe_fl,
+                               void *write_data,unsigned int write_len,
+                               void *read_data,unsigned int read_len);
+static int pvr2_write_u16(struct pvr2_hdw *hdw, u16 data, int res);
+static int pvr2_write_u8(struct pvr2_hdw *hdw, u8 data, int res);
 
 static int ctrl_channelfreq_get(struct pvr2_ctrl *cptr,int *vp)
 {
@@ -405,7 +422,7 @@ static unsigned int ctrl_cx2341x_getv4lflags(struct pvr2_ctrl *cptr)
        info = (struct pvr2_ctl_info *)(cptr->info);
        if (qctrl.flags & V4L2_CTRL_FLAG_READ_ONLY) {
                if (info->set_value) {
-                       info->set_value = 0;
+                       info->set_value = NULL;
                }
        } else {
                if (!(info->set_value)) {
@@ -836,14 +853,6 @@ unsigned long pvr2_hdw_get_sn(struct pvr2_hdw *hdw)
 }
 
 
-struct pvr2_hdw *pvr2_hdw_find(int unit_number)
-{
-       if (unit_number < 0) return 0;
-       if (unit_number >= PVR_NUM) return 0;
-       return unit_pointers[unit_number];
-}
-
-
 int pvr2_hdw_get_unit_number(struct pvr2_hdw *hdw)
 {
        return hdw->unit_number;
@@ -917,9 +926,9 @@ static int pvr2_locate_firmware(struct pvr2_hdw *hdw,
  * is not suitable for an usb transaction.
  *
  */
-int pvr2_upload_firmware1(struct pvr2_hdw *hdw)
+static int pvr2_upload_firmware1(struct pvr2_hdw *hdw)
 {
-       const struct firmware *fw_entry = 0;
+       const struct firmware *fw_entry = NULL;
        void  *fw_ptr;
        unsigned int pipe;
        int ret;
@@ -1015,7 +1024,7 @@ int pvr2_upload_firmware1(struct pvr2_hdw *hdw)
 
 int pvr2_upload_firmware2(struct pvr2_hdw *hdw)
 {
-       const struct firmware *fw_entry = 0;
+       const struct firmware *fw_entry = NULL;
        void  *fw_ptr;
        unsigned int pipe, fw_len, fw_done;
        int actual_length;
@@ -1166,8 +1175,9 @@ int pvr2_upload_firmware2(struct pvr2_hdw *hdw)
   reconfigure and start over.
 
 */
-void pvr2_hdw_subsys_bit_chg_no_lock(struct pvr2_hdw *hdw,
-                                    unsigned long msk,unsigned long val)
+static void pvr2_hdw_subsys_bit_chg_no_lock(struct pvr2_hdw *hdw,
+                                           unsigned long msk,
+                                           unsigned long val)
 {
        unsigned long nmsk;
        unsigned long vmsk;
@@ -1318,18 +1328,6 @@ void pvr2_hdw_subsys_bit_chg(struct pvr2_hdw *hdw,
 }
 
 
-void pvr2_hdw_subsys_bit_set(struct pvr2_hdw *hdw,unsigned long msk)
-{
-       pvr2_hdw_subsys_bit_chg(hdw,msk,msk);
-}
-
-
-void pvr2_hdw_subsys_bit_clr(struct pvr2_hdw *hdw,unsigned long msk)
-{
-       pvr2_hdw_subsys_bit_chg(hdw,msk,0);
-}
-
-
 unsigned long pvr2_hdw_subsys_get(struct pvr2_hdw *hdw)
 {
        return hdw->subsys_enabled_mask;
@@ -1342,9 +1340,9 @@ unsigned long pvr2_hdw_subsys_stream_get(struct pvr2_hdw *hdw)
 }
 
 
-void pvr2_hdw_subsys_stream_bit_chg_no_lock(struct pvr2_hdw *hdw,
-                                           unsigned long msk,
-                                           unsigned long val)
+static void pvr2_hdw_subsys_stream_bit_chg_no_lock(struct pvr2_hdw *hdw,
+                                                  unsigned long msk,
+                                                  unsigned long val)
 {
        unsigned long val2;
        msk &= PVR2_SUBSYS_ALL;
@@ -1366,7 +1364,7 @@ void pvr2_hdw_subsys_stream_bit_chg(struct pvr2_hdw *hdw,
 }
 
 
-int pvr2_hdw_set_streaming_no_lock(struct pvr2_hdw *hdw,int enableFl)
+static int pvr2_hdw_set_streaming_no_lock(struct pvr2_hdw *hdw,int enableFl)
 {
        if ((!enableFl) == !(hdw->flag_streaming_enabled)) return 0;
        if (enableFl) {
@@ -1400,8 +1398,8 @@ int pvr2_hdw_set_streaming(struct pvr2_hdw *hdw,int enable_flag)
 }
 
 
-int pvr2_hdw_set_stream_type_no_lock(struct pvr2_hdw *hdw,
-                                    enum pvr2_config config)
+static int pvr2_hdw_set_stream_type_no_lock(struct pvr2_hdw *hdw,
+                                           enum pvr2_config config)
 {
        unsigned long sm = hdw->subsys_enabled_mask;
        if (!hdw->flag_ok) return -EIO;
@@ -1741,7 +1739,7 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
            sizeof(pvr2_device_names)/sizeof(pvr2_device_names[0])) {
                pvr2_trace(PVR2_TRACE_ERROR_LEGS,
                           "Bogus device type of %u reported",hdw_type);
-               return 0;
+               return NULL;
        }
 
        hdw = kmalloc(sizeof(*hdw),GFP_KERNEL);
@@ -1922,38 +1920,38 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
                if (hdw->mpeg_ctrl_info) kfree(hdw->mpeg_ctrl_info);
                kfree(hdw);
        }
-       return 0;
+       return NULL;
 }
 
 
 /* Remove _all_ associations between this driver and the underlying USB
    layer. */
-void pvr2_hdw_remove_usb_stuff(struct pvr2_hdw *hdw)
+static void pvr2_hdw_remove_usb_stuff(struct pvr2_hdw *hdw)
 {
        if (hdw->flag_disconnected) return;
        pvr2_trace(PVR2_TRACE_INIT,"pvr2_hdw_remove_usb_stuff: hdw=%p",hdw);
        if (hdw->ctl_read_urb) {
                usb_kill_urb(hdw->ctl_read_urb);
                usb_free_urb(hdw->ctl_read_urb);
-               hdw->ctl_read_urb = 0;
+               hdw->ctl_read_urb = NULL;
        }
        if (hdw->ctl_write_urb) {
                usb_kill_urb(hdw->ctl_write_urb);
                usb_free_urb(hdw->ctl_write_urb);
-               hdw->ctl_write_urb = 0;
+               hdw->ctl_write_urb = NULL;
        }
        if (hdw->ctl_read_buffer) {
                kfree(hdw->ctl_read_buffer);
-               hdw->ctl_read_buffer = 0;
+               hdw->ctl_read_buffer = NULL;
        }
        if (hdw->ctl_write_buffer) {
                kfree(hdw->ctl_write_buffer);
-               hdw->ctl_write_buffer = 0;
+               hdw->ctl_write_buffer = NULL;
        }
        pvr2_hdw_render_useless_unlocked(hdw);
        hdw->flag_disconnected = !0;
-       hdw->usb_dev = 0;
-       hdw->usb_intf = 0;
+       hdw->usb_dev = NULL;
+       hdw->usb_intf = NULL;
 }
 
 
@@ -1963,11 +1961,11 @@ void pvr2_hdw_destroy(struct pvr2_hdw *hdw)
        pvr2_trace(PVR2_TRACE_INIT,"pvr2_hdw_destroy: hdw=%p",hdw);
        if (hdw->fw_buffer) {
                kfree(hdw->fw_buffer);
-               hdw->fw_buffer = 0;
+               hdw->fw_buffer = NULL;
        }
        if (hdw->vid_stream) {
                pvr2_stream_destroy(hdw->vid_stream);
-               hdw->vid_stream = 0;
+               hdw->vid_stream = NULL;
        }
        if (hdw->audio_stat) {
                hdw->audio_stat->detach(hdw->audio_stat->ctxt);
@@ -1981,7 +1979,7 @@ void pvr2_hdw_destroy(struct pvr2_hdw *hdw)
                if ((hdw->unit_number >= 0) &&
                    (hdw->unit_number < PVR_NUM) &&
                    (unit_pointers[hdw->unit_number] == hdw)) {
-                       unit_pointers[hdw->unit_number] = 0;
+                       unit_pointers[hdw->unit_number] = NULL;
                }
        } while (0); up(&pvr2_unit_sem);
        if (hdw->controls) kfree(hdw->controls);
@@ -2018,7 +2016,7 @@ void pvr2_hdw_disconnect(struct pvr2_hdw *hdw)
 
 // Attempt to autoselect an appropriate value for std_enum_cur given
 // whatever is currently in std_mask_cur
-void pvr2_hdw_internal_find_stdenum(struct pvr2_hdw *hdw)
+static void pvr2_hdw_internal_find_stdenum(struct pvr2_hdw *hdw)
 {
        unsigned int idx;
        for (idx = 1; idx < hdw->std_enum_cnt; idx++) {
@@ -2033,7 +2031,7 @@ void pvr2_hdw_internal_find_stdenum(struct pvr2_hdw *hdw)
 
 // Calculate correct set of enumerated standards based on currently known
 // set of available standards bits.
-void pvr2_hdw_internal_set_std_avail(struct pvr2_hdw *hdw)
+static void pvr2_hdw_internal_set_std_avail(struct pvr2_hdw *hdw)
 {
        struct v4l2_standard *newstd;
        unsigned int std_cnt;
@@ -2043,12 +2041,12 @@ void pvr2_hdw_internal_set_std_avail(struct pvr2_hdw *hdw)
 
        if (hdw->std_defs) {
                kfree(hdw->std_defs);
-               hdw->std_defs = 0;
+               hdw->std_defs = NULL;
        }
        hdw->std_enum_cnt = 0;
        if (hdw->std_enum_names) {
                kfree(hdw->std_enum_names);
-               hdw->std_enum_names = 0;
+               hdw->std_enum_names = NULL;
        }
 
        if (!std_cnt) {
@@ -2099,7 +2097,7 @@ unsigned int pvr2_hdw_get_ctrl_count(struct pvr2_hdw *hdw)
 struct pvr2_ctrl *pvr2_hdw_get_ctrl_by_index(struct pvr2_hdw *hdw,
                                             unsigned int idx)
 {
-       if (idx >= hdw->control_cnt) return 0;
+       if (idx >= hdw->control_cnt) return NULL;
        return hdw->controls + idx;
 }
 
@@ -2118,7 +2116,7 @@ struct pvr2_ctrl *pvr2_hdw_get_ctrl_by_id(struct pvr2_hdw *hdw,
                i = cptr->info->internal_id;
                if (i && (i == ctl_id)) return cptr;
        }
-       return 0;
+       return NULL;
 }
 
 
@@ -2135,7 +2133,7 @@ struct pvr2_ctrl *pvr2_hdw_get_ctrl_v4l(struct pvr2_hdw *hdw,unsigned int ctl_id
                i = cptr->info->v4l_id;
                if (i && (i == ctl_id)) return cptr;
        }
-       return 0;
+       return NULL;
 }
 
 
@@ -2149,7 +2147,7 @@ struct pvr2_ctrl *pvr2_hdw_get_ctrl_nextv4l(struct pvr2_hdw *hdw,
        int i;
 
        /* This could be made a lot more efficient, but for now... */
-       cp2 = 0;
+       cp2 = NULL;
        for (idx = 0; idx < hdw->control_cnt; idx++) {
                cptr = hdw->controls + idx;
                i = cptr->info->v4l_id;
@@ -2159,7 +2157,7 @@ struct pvr2_ctrl *pvr2_hdw_get_ctrl_nextv4l(struct pvr2_hdw *hdw,
                cp2 = cptr;
        }
        return cp2;
-       return 0;
+       return NULL;
 }
 
 
@@ -2182,7 +2180,7 @@ static const char *get_ctrl_typename(enum pvr2_ctl_type tp)
    state(s) back to their previous value before this function was called.
    Thus we can automatically reconfigure affected pieces of the driver as
    controls are changed. */
-int pvr2_hdw_commit_ctl_internal(struct pvr2_hdw *hdw)
+static int pvr2_hdw_commit_ctl_internal(struct pvr2_hdw *hdw)
 {
        unsigned long saved_subsys_mask = hdw->subsys_enabled_mask;
        unsigned long stale_subsys_mask = 0;
@@ -2321,14 +2319,6 @@ void pvr2_hdw_poll_trigger_unlocked(struct pvr2_hdw *hdw)
 }
 
 
-void pvr2_hdw_poll_trigger(struct pvr2_hdw *hdw)
-{
-       LOCK_TAKE(hdw->big_lock); do {
-               pvr2_hdw_poll_trigger_unlocked(hdw);
-       } while (0); LOCK_GIVE(hdw->big_lock);
-}
-
-
 /* Return name for this driver instance */
 const char *pvr2_hdw_get_driver_name(struct pvr2_hdw *hdw)
 {
@@ -2337,7 +2327,7 @@ const char *pvr2_hdw_get_driver_name(struct pvr2_hdw *hdw)
 
 
 /* Return bit mask indicating signal status */
-unsigned int pvr2_hdw_get_signal_status_internal(struct pvr2_hdw *hdw)
+static unsigned int pvr2_hdw_get_signal_status_internal(struct pvr2_hdw *hdw)
 {
        unsigned int msk = 0;
        switch (hdw->input_val) {
@@ -2424,7 +2414,7 @@ void pvr2_hdw_cpufw_set_enabled(struct pvr2_hdw *hdw, int enable_flag)
                        pvr2_trace(PVR2_TRACE_FIRMWARE,
                                   "Cleaning up after CPU firmware fetch");
                        kfree(hdw->fw_buffer);
-                       hdw->fw_buffer = 0;
+                       hdw->fw_buffer = NULL;
                        hdw->fw_size = 0;
                        /* Now release the CPU.  It will disconnect and
                           reconnect later. */
@@ -2519,22 +2509,6 @@ void pvr2_hdw_v4l_store_minor_number(struct pvr2_hdw *hdw,int v)
 }
 
 
-void pvr2_reset_ctl_endpoints(struct pvr2_hdw *hdw)
-{
-       if (!hdw->usb_dev) return;
-       usb_settoggle(hdw->usb_dev, PVR2_CTL_WRITE_ENDPOINT & 0xf,
-                     !(PVR2_CTL_WRITE_ENDPOINT & USB_DIR_IN), 0);
-       usb_settoggle(hdw->usb_dev, PVR2_CTL_READ_ENDPOINT & 0xf,
-                     !(PVR2_CTL_READ_ENDPOINT & USB_DIR_IN), 0);
-       usb_clear_halt(hdw->usb_dev,
-                      usb_rcvbulkpipe(hdw->usb_dev,
-                                      PVR2_CTL_READ_ENDPOINT & 0x7f));
-       usb_clear_halt(hdw->usb_dev,
-                      usb_sndbulkpipe(hdw->usb_dev,
-                                      PVR2_CTL_WRITE_ENDPOINT & 0x7f));
-}
-
-
 static void pvr2_ctl_write_complete(struct urb *urb, struct pt_regs *regs)
 {
        struct pvr2_hdw *hdw = urb->context;
@@ -2568,10 +2542,10 @@ static void pvr2_ctl_timeout(unsigned long data)
 }
 
 
-int pvr2_send_request_ex(struct pvr2_hdw *hdw,
-                        unsigned int timeout,int probe_fl,
-                        void *write_data,unsigned int write_len,
-                        void *read_data,unsigned int read_len)
+static int pvr2_send_request_ex(struct pvr2_hdw *hdw,
+                               unsigned int timeout,int probe_fl,
+                               void *write_data,unsigned int write_len,
+                               void *read_data,unsigned int read_len)
 {
        unsigned int idx;
        int status = 0;
@@ -2826,7 +2800,7 @@ int pvr2_write_register(struct pvr2_hdw *hdw, u16 reg, u32 data)
 }
 
 
-int pvr2_read_register(struct pvr2_hdw *hdw, u16 reg, u32 *data)
+static int pvr2_read_register(struct pvr2_hdw *hdw, u16 reg, u32 *data)
 {
        int ret = 0;
 
@@ -2850,7 +2824,7 @@ int pvr2_read_register(struct pvr2_hdw *hdw, u16 reg, u32 *data)
 }
 
 
-int pvr2_write_u16(struct pvr2_hdw *hdw, u16 data, int res)
+static int pvr2_write_u16(struct pvr2_hdw *hdw, u16 data, int res)
 {
        int ret;
 
@@ -2867,7 +2841,7 @@ int pvr2_write_u16(struct pvr2_hdw *hdw, u16 data, int res)
 }
 
 
-int pvr2_write_u8(struct pvr2_hdw *hdw, u8 data, int res)
+static int pvr2_write_u8(struct pvr2_hdw *hdw, u8 data, int res)
 {
        int ret;
 
@@ -2883,13 +2857,13 @@ int pvr2_write_u8(struct pvr2_hdw *hdw, u8 data, int res)
 }
 
 
-void pvr2_hdw_render_useless_unlocked(struct pvr2_hdw *hdw)
+static void pvr2_hdw_render_useless_unlocked(struct pvr2_hdw *hdw)
 {
        if (!hdw->flag_ok) return;
        pvr2_trace(PVR2_TRACE_INIT,"render_useless");
        hdw->flag_ok = 0;
        if (hdw->vid_stream) {
-               pvr2_stream_setup(hdw->vid_stream,0,0,0);
+               pvr2_stream_setup(hdw->vid_stream,NULL,0,0);
        }
        hdw->flag_streaming_enabled = 0;
        hdw->subsys_enabled_mask = 0;
@@ -2908,7 +2882,7 @@ void pvr2_hdw_device_reset(struct pvr2_hdw *hdw)
 {
        int ret;
        pvr2_trace(PVR2_TRACE_INIT,"Performing a device reset...");
-       ret = usb_lock_device_for_reset(hdw->usb_dev,0);
+       ret = usb_lock_device_for_reset(hdw->usb_dev,NULL);
        if (ret == 1) {
                ret = usb_reset_device(hdw->usb_dev);
                usb_unlock_device(hdw->usb_dev);
@@ -2957,7 +2931,7 @@ int pvr2_hdw_cmd_deep_reset(struct pvr2_hdw *hdw)
                pvr2_trace(PVR2_TRACE_INIT,"Requesting uproc hard reset");
                hdw->flag_ok = !0;
                hdw->cmd_buffer[0] = 0xdd;
-               status = pvr2_send_request(hdw,hdw->cmd_buffer,1,0,0);
+               status = pvr2_send_request(hdw,hdw->cmd_buffer,1,NULL,0);
        } while (0); LOCK_GIVE(hdw->ctl_lock);
        return status;
 }
@@ -2969,7 +2943,7 @@ int pvr2_hdw_cmd_powerup(struct pvr2_hdw *hdw)
        LOCK_TAKE(hdw->ctl_lock); do {
                pvr2_trace(PVR2_TRACE_INIT,"Requesting powerup");
                hdw->cmd_buffer[0] = 0xde;
-               status = pvr2_send_request(hdw,hdw->cmd_buffer,1,0,0);
+               status = pvr2_send_request(hdw,hdw->cmd_buffer,1,NULL,0);
        } while (0); LOCK_GIVE(hdw->ctl_lock);
        return status;
 }
@@ -2996,12 +2970,12 @@ int pvr2_hdw_cmd_decoder_reset(struct pvr2_hdw *hdw)
 }
 
 
-int pvr2_hdw_cmd_usbstream(struct pvr2_hdw *hdw,int runFl)
+static int pvr2_hdw_cmd_usbstream(struct pvr2_hdw *hdw,int runFl)
 {
        int status;
        LOCK_TAKE(hdw->ctl_lock); do {
                hdw->cmd_buffer[0] = (runFl ? 0x36 : 0x37);
-               status = pvr2_send_request(hdw,hdw->cmd_buffer,1,0,0);
+               status = pvr2_send_request(hdw,hdw->cmd_buffer,1,NULL,0);
        } while (0); LOCK_GIVE(hdw->ctl_lock);
        if (!status) {
                hdw->subsys_enabled_mask =
@@ -3094,7 +3068,7 @@ int pvr2_hdw_gpio_chg_out(struct pvr2_hdw *hdw,u32 msk,u32 val)
 }
 
 
-int pvr2_hdw_get_eeprom_addr(struct pvr2_hdw *hdw)
+static int pvr2_hdw_get_eeprom_addr(struct pvr2_hdw *hdw)
 {
        int result;
        LOCK_TAKE(hdw->ctl_lock); do {
index 63f529154431d54a09e340d928a38f18f93005d9..fd931b5da490b4bc66c8538923ac80eb98cd118a 100644 (file)
@@ -91,7 +91,6 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
 void pvr2_hdw_poll(struct pvr2_hdw *);
 
 /* Trigger a poll to take place later at a convenient time */
-void pvr2_hdw_poll_trigger(struct pvr2_hdw *);
 void pvr2_hdw_poll_trigger_unlocked(struct pvr2_hdw *);
 
 /* Register a callback used to trigger a future poll */
@@ -99,9 +98,6 @@ void pvr2_hdw_setup_poll_trigger(struct pvr2_hdw *,
                                 void (*func)(void *),
                                 void *data);
 
-/* Get pointer to structure given unit number */
-struct pvr2_hdw *pvr2_hdw_find(int unit_number);
-
 /* Destroy hardware interaction structure */
 void pvr2_hdw_destroy(struct pvr2_hdw *);
 
@@ -180,12 +176,6 @@ int pvr2_hdw_get_stdenum_value(struct pvr2_hdw *hdw,struct v4l2_standard *std,
 void pvr2_hdw_subsys_bit_chg(struct pvr2_hdw *hdw,
                             unsigned long msk,unsigned long val);
 
-/* Shortcut for pvr2_hdw_subsys_bit_chg(hdw,msk,msk) */
-void pvr2_hdw_subsys_bit_set(struct pvr2_hdw *hdw,unsigned long msk);
-
-/* Shortcut for pvr2_hdw_subsys_bit_chg(hdw,msk,0) */
-void pvr2_hdw_subsys_bit_clr(struct pvr2_hdw *hdw,unsigned long msk);
-
 /* Retrieve mask indicating which pieces of hardware are currently enabled
    / configured. */
 unsigned long pvr2_hdw_subsys_get(struct pvr2_hdw *);
@@ -225,34 +215,18 @@ void pvr2_hdw_v4l_store_minor_number(struct pvr2_hdw *,int);
 /* The following entry points are all lower level things you normally don't
    want to worry about. */
 
-/* Attempt to recover from a USB foul-up (in practice I find that if you
-   have to do this, then it's already too late). */
-void pvr2_reset_ctl_endpoints(struct pvr2_hdw *hdw);
-
 /* Issue a command and get a response from the device.  LOTS of higher
    level stuff is built on this. */
 int pvr2_send_request(struct pvr2_hdw *,
                      void *write_ptr,unsigned int write_len,
                      void *read_ptr,unsigned int read_len);
 
-/* Issue a command and get a response from the device.  This extended
-   version includes a probe flag (which if set means that device errors
-   should not be logged or treated as fatal) and a timeout in jiffies.
-   This can be used to non-lethally probe the health of endpoint 1. */
-int pvr2_send_request_ex(struct pvr2_hdw *,unsigned int timeout,int probe_fl,
-                        void *write_ptr,unsigned int write_len,
-                        void *read_ptr,unsigned int read_len);
-
 /* Slightly higher level device communication functions. */
 int pvr2_write_register(struct pvr2_hdw *, u16, u32);
-int pvr2_read_register(struct pvr2_hdw *, u16, u32 *);
-int pvr2_write_u16(struct pvr2_hdw *, u16, int);
-int pvr2_write_u8(struct pvr2_hdw *, u8, int);
 
 /* Call if for any reason we can't talk to the hardware anymore - this will
    cause the driver to stop flailing on the device. */
 void pvr2_hdw_render_useless(struct pvr2_hdw *);
-void pvr2_hdw_render_useless_unlocked(struct pvr2_hdw *);
 
 /* Set / clear 8051's reset bit */
 void pvr2_hdw_cpureset_assert(struct pvr2_hdw *,int);
@@ -271,12 +245,6 @@ int pvr2_hdw_cmd_powerup(struct pvr2_hdw *);
 /* Order decoder to reset */
 int pvr2_hdw_cmd_decoder_reset(struct pvr2_hdw *);
 
-/* Stop / start video stream transport */
-int pvr2_hdw_cmd_usbstream(struct pvr2_hdw *hdw,int runFl);
-
-/* Find I2C address of eeprom */
-int pvr2_hdw_get_eeprom_addr(struct pvr2_hdw *);
-
 /* Direct manipulation of GPIO bits */
 int pvr2_hdw_gpio_get_dir(struct pvr2_hdw *hdw,u32 *);
 int pvr2_hdw_gpio_get_out(struct pvr2_hdw *hdw,u32 *);
index 1dd4f6249b9950285d82cb4adf328f9b1e72a022..fbe6039aeb6a8a5c588c3c7f1a81b389c54f5ae0 100644 (file)
@@ -25,7 +25,6 @@
 #include "pvrusb2-i2c-cmd-v4l2.h"
 #include "pvrusb2-audio.h"
 #include "pvrusb2-tuner.h"
-#include "pvrusb2-demod.h"
 #include "pvrusb2-video-v4l.h"
 #ifdef CONFIG_VIDEO_PVRUSB2_24XXX
 #include "pvrusb2-cx2584x-v4l.h"
@@ -89,11 +88,6 @@ void pvr2_i2c_probe(struct pvr2_hdw *hdw,struct pvr2_i2c_client *cp)
                        return;
                }
        }
-       if (id == I2C_DRIVERID_TDA9887) {
-               if (pvr2_i2c_demod_setup(hdw,cp)) {
-                       return;
-               }
-       }
 }
 
 
index 9f81aff2b38ac9e535f72b9b6f22cc23e06780a5..8a9933dec9123213ed092a04991f9e8b76b3e387 100644 (file)
@@ -196,7 +196,7 @@ const struct pvr2_i2c_op pvr2_i2c_op_v4l2_size = {
 static void do_log(struct pvr2_hdw *hdw)
 {
        pvr2_trace(PVR2_TRACE_CHIPS,"i2c v4l2 do_log()");
-       pvr2_i2c_core_cmd(hdw,VIDIOC_LOG_STATUS,0);
+       pvr2_i2c_core_cmd(hdw,VIDIOC_LOG_STATUS,NULL);
 
 }
 
@@ -217,7 +217,7 @@ const struct pvr2_i2c_op pvr2_i2c_op_v4l2_log = {
 void pvr2_v4l2_cmd_stream(struct pvr2_i2c_client *cp,int fl)
 {
        pvr2_i2c_client_cmd(cp,
-                           (fl ? VIDIOC_STREAMON : VIDIOC_STREAMOFF),0);
+                           (fl ? VIDIOC_STREAMON : VIDIOC_STREAMOFF),NULL);
 }
 
 
index c8d0bdee3ff1955bb4348e3acd1fb2f68d5bab70..7fca47982277a2ea68a013030a53cf0f584b3dcc 100644 (file)
@@ -37,6 +37,10 @@ static unsigned int i2c_scan = 0;
 module_param(i2c_scan, int, S_IRUGO|S_IWUSR);
 MODULE_PARM_DESC(i2c_scan,"scan i2c bus at insmod time");
 
+static unsigned int pvr2_i2c_client_describe(struct pvr2_i2c_client *cp,
+                                            unsigned int detail,
+                                            char *buf,unsigned int maxlen);
+
 static int pvr2_i2c_write(struct pvr2_hdw *hdw, /* Context */
                          u8 i2c_addr,      /* I2C address we're talking to */
                          u8 *data,         /* Data to write */
@@ -165,12 +169,12 @@ static int pvr2_i2c_read(struct pvr2_hdw *hdw, /* Context */
 
 /* This is the common low level entry point for doing I2C operations to the
    hardware. */
-int pvr2_i2c_basic_op(struct pvr2_hdw *hdw,
-                     u8 i2c_addr,
-                     u8 *wdata,
-                     u16 wlen,
-                     u8 *rdata,
-                     u16 rlen)
+static int pvr2_i2c_basic_op(struct pvr2_hdw *hdw,
+                            u8 i2c_addr,
+                            u8 *wdata,
+                            u16 wlen,
+                            u8 *rdata,
+                            u16 rlen)
 {
        if (!rdata) rlen = 0;
        if (!wdata) wlen = 0;
@@ -267,7 +271,7 @@ static int i2c_hack_cx25840(struct pvr2_hdw *hdw,
                           "WARNING: Disabling further access to the device"
                           " to prevent other foul-ups.");
                // This blocks all further communication with the part.
-               hdw->i2c_func[0x44] = 0;
+               hdw->i2c_func[0x44] = NULL;
                pvr2_hdw_render_useless(hdw);
                goto fail;
        }
@@ -294,7 +298,7 @@ static int pvr2_i2c_xfer(struct i2c_adapter *i2c_adap,
                         int num)
 {
        int ret = -ENOTSUPP;
-       pvr2_i2c_func funcp = 0;
+       pvr2_i2c_func funcp = NULL;
        struct pvr2_hdw *hdw = (struct pvr2_hdw *)(i2c_adap->algo_data);
 
        if (!num) {
@@ -319,7 +323,7 @@ static int pvr2_i2c_xfer(struct i2c_adapter *i2c_adap,
                        u16 tcnt,bcnt,offs;
                        if (!msgs[0].len) {
                                /* Length == 0 read.  This is a probe. */
-                               if (funcp(hdw,msgs[0].addr,0,0,0,0)) {
+                               if (funcp(hdw,msgs[0].addr,NULL,0,NULL,0)) {
                                        ret = -EIO;
                                        goto done;
                                }
@@ -336,7 +340,7 @@ static int pvr2_i2c_xfer(struct i2c_adapter *i2c_adap,
                                if (bcnt > sizeof(hdw->cmd_buffer)-1) {
                                        bcnt = sizeof(hdw->cmd_buffer)-1;
                                }
-                               if (funcp(hdw,msgs[0].addr,0,0,
+                               if (funcp(hdw,msgs[0].addr,NULL,0,
                                          msgs[0].buf+offs,bcnt)) {
                                        ret = -EIO;
                                        goto done;
@@ -350,7 +354,7 @@ static int pvr2_i2c_xfer(struct i2c_adapter *i2c_adap,
                        /* Simple write */
                        ret = 1;
                        if (funcp(hdw,msgs[0].addr,
-                                 msgs[0].buf,msgs[0].len,0,0)) {
+                                 msgs[0].buf,msgs[0].len,NULL,0)) {
                                ret = -EIO;
                        }
                        goto done;
@@ -705,9 +709,9 @@ int pvr2_i2c_core_check_stale(struct pvr2_hdw *hdw)
        return (hdw->i2c_pend_types & PVR2_I2C_PEND_ALL) != 0;
 }
 
-unsigned int pvr2_i2c_client_describe(struct pvr2_i2c_client *cp,
-                                     unsigned int detail,
-                                     char *buf,unsigned int maxlen)
+static unsigned int pvr2_i2c_client_describe(struct pvr2_i2c_client *cp,
+                                            unsigned int detail,
+                                            char *buf,unsigned int maxlen)
 {
        unsigned int ccnt,bcnt;
        int spcfl = 0;
@@ -871,7 +875,7 @@ static void do_i2c_scan(struct pvr2_hdw *hdw)
        msg[0].addr = 0;
        msg[0].flags = I2C_M_RD;
        msg[0].len = 0;
-       msg[0].buf = 0;
+       msg[0].buf = NULL;
        printk("%s: i2c scan beginning\n",hdw->name);
        for (i = 0; i < 128; i++) {
                msg[0].addr = i;
index e8af5b0ed3ce3c04311edcf87609807a48261b1d..6d7e252475760fd2dbb5f20986d11ab7991f1b85 100644 (file)
@@ -75,9 +75,6 @@ unsigned int pvr2_i2c_report(struct pvr2_hdw *,char *buf,unsigned int maxlen);
        PVR2_I2C_DETAIL_DEBUG |\
        PVR2_I2C_DETAIL_HANDLER |\
        PVR2_I2C_DETAIL_CTLMASK)
-unsigned int pvr2_i2c_client_describe(struct pvr2_i2c_client *,
-                                     unsigned int detail_mask,
-                                     char *buf,unsigned int maxlen);
 
 void pvr2_i2c_probe(struct pvr2_hdw *,struct pvr2_i2c_client *);
 const struct pvr2_i2c_op *pvr2_i2c_get_op(unsigned int idx);
index a984c91f571c2eab5bdc941b95cb7c417c335d72..681f79c8064e68ce0a51d9553eb3b1804f7a5368 100644 (file)
@@ -93,7 +93,7 @@ struct pvr2_buffer {
        struct urb *purb;
 };
 
-const char *pvr2_buffer_state_decode(enum pvr2_buffer_state st)
+static const char *pvr2_buffer_state_decode(enum pvr2_buffer_state st)
 {
        switch (st) {
        case pvr2_buffer_state_none: return "none";
@@ -104,7 +104,8 @@ const char *pvr2_buffer_state_decode(enum pvr2_buffer_state st)
        return "unknown";
 }
 
-void pvr2_buffer_describe(struct pvr2_buffer *bp,const char *msg)
+#ifdef SANITY_CHECK_BUFFERS
+static void pvr2_buffer_describe(struct pvr2_buffer *bp,const char *msg)
 {
        pvr2_trace(PVR2_TRACE_INFO,
                   "buffer%s%s %p state=%s id=%d status=%d"
@@ -115,10 +116,11 @@ void pvr2_buffer_describe(struct pvr2_buffer *bp,const char *msg)
                   (bp ? pvr2_buffer_state_decode(bp->state) : "(invalid)"),
                   (bp ? bp->id : 0),
                   (bp ? bp->status : 0),
-                  (bp ? bp->stream : 0),
-                  (bp ? bp->purb : 0),
+                  (bp ? bp->stream : NULL),
+                  (bp ? bp->purb : NULL),
                   (bp ? bp->signature : 0));
 }
+#endif  /*  SANITY_CHECK_BUFFERS  */
 
 static void pvr2_buffer_remove(struct pvr2_buffer *bp)
 {
@@ -284,7 +286,7 @@ static void pvr2_buffer_done(struct pvr2_buffer *bp)
        pvr2_buffer_wipe(bp);
        pvr2_buffer_set_none(bp);
        bp->signature = 0;
-       bp->stream = 0;
+       bp->stream = NULL;
        if (bp->purb) usb_free_urb(bp->purb);
        pvr2_trace(PVR2_TRACE_BUF_POOL,"/*---TRACE_FLOW---*/"
                   " bufferDone     %p",bp);
@@ -339,13 +341,13 @@ static int pvr2_stream_buffer_count(struct pvr2_stream *sp,unsigned int cnt)
                        struct pvr2_buffer *bp;
                        bp = sp->buffers[sp->buffer_total_count - 1];
                        /* Paranoia */
-                       sp->buffers[sp->buffer_total_count - 1] = 0;
+                       sp->buffers[sp->buffer_total_count - 1] = NULL;
                        (sp->buffer_total_count)--;
                        pvr2_buffer_done(bp);
                        kfree(bp);
                }
                if (scnt < sp->buffer_slot_count) {
-                       struct pvr2_buffer **nb = 0;
+                       struct pvr2_buffer **nb = NULL;
                        if (scnt) {
                                nb = kmalloc(scnt * sizeof(*nb),GFP_KERNEL);
                                if (!nb) return -ENOMEM;
@@ -513,10 +515,6 @@ void pvr2_stream_set_callback(struct pvr2_stream *sp,
 }
 
 /* Query / set the nominal buffer count */
-int pvr2_stream_get_buffer_count(struct pvr2_stream *sp)
-{
-       return sp->buffer_target_count;
-}
 
 int pvr2_stream_set_buffer_count(struct pvr2_stream *sp,unsigned int cnt)
 {
@@ -532,21 +530,21 @@ int pvr2_stream_set_buffer_count(struct pvr2_stream *sp,unsigned int cnt)
 struct pvr2_buffer *pvr2_stream_get_idle_buffer(struct pvr2_stream *sp)
 {
        struct list_head *lp = sp->idle_list.next;
-       if (lp == &sp->idle_list) return 0;
+       if (lp == &sp->idle_list) return NULL;
        return list_entry(lp,struct pvr2_buffer,list_overhead);
 }
 
 struct pvr2_buffer *pvr2_stream_get_ready_buffer(struct pvr2_stream *sp)
 {
        struct list_head *lp = sp->ready_list.next;
-       if (lp == &sp->ready_list) return 0;
+       if (lp == &sp->ready_list) return NULL;
        return list_entry(lp,struct pvr2_buffer,list_overhead);
 }
 
 struct pvr2_buffer *pvr2_stream_get_buffer(struct pvr2_stream *sp,int id)
 {
-       if (id < 0) return 0;
-       if (id >= sp->buffer_total_count) return 0;
+       if (id < 0) return NULL;
+       if (id >= sp->buffer_total_count) return NULL;
        return sp->buffers[id];
 }
 
@@ -555,17 +553,6 @@ int pvr2_stream_get_ready_count(struct pvr2_stream *sp)
        return sp->r_count;
 }
 
-int pvr2_stream_get_idle_count(struct pvr2_stream *sp)
-{
-       return sp->i_count;
-}
-
-void pvr2_stream_flush(struct pvr2_stream *sp)
-{
-       mutex_lock(&sp->mutex); do {
-               pvr2_stream_internal_flush(sp);
-       } while(0); mutex_unlock(&sp->mutex);
-}
 
 void pvr2_stream_kill(struct pvr2_stream *sp)
 {
@@ -620,20 +607,6 @@ int pvr2_buffer_queue(struct pvr2_buffer *bp)
        return ret;
 }
 
-int pvr2_buffer_idle(struct pvr2_buffer *bp)
-{
-       struct pvr2_stream *sp;
-       if (!bp) return -EINVAL;
-       sp = bp->stream;
-       mutex_lock(&sp->mutex); do {
-               pvr2_buffer_wipe(bp);
-               pvr2_buffer_set_idle(bp);
-               if (sp->buffer_total_count != sp->buffer_target_count) {
-                       pvr2_stream_achieve_buffer_count(sp);
-               }
-       } while(0); mutex_unlock(&sp->mutex);
-       return 0;
-}
 
 int pvr2_buffer_set_buffer(struct pvr2_buffer *bp,void *ptr,unsigned int cnt)
 {
@@ -673,10 +646,6 @@ int pvr2_buffer_get_status(struct pvr2_buffer *bp)
        return bp->status;
 }
 
-enum pvr2_buffer_state pvr2_buffer_get_state(struct pvr2_buffer *bp)
-{
-       return bp->state;
-}
 
 int pvr2_buffer_get_id(struct pvr2_buffer *bp)
 {
index 65e11385b2b33380236963bd1642f16d17bf19d9..96285ad234a6ba1e20a4ebe7285bbcce14dd8570 100644 (file)
@@ -36,8 +36,6 @@ enum pvr2_buffer_state {
 struct pvr2_stream;
 struct pvr2_buffer;
 
-const char *pvr2_buffer_state_decode(enum pvr2_buffer_state);
-
 /* Initialize / tear down stream structure */
 struct pvr2_stream *pvr2_stream_create(void);
 void pvr2_stream_destroy(struct pvr2_stream *);
@@ -49,7 +47,6 @@ void pvr2_stream_set_callback(struct pvr2_stream *,
                              void *data);
 
 /* Query / set the nominal buffer count */
-int pvr2_stream_get_buffer_count(struct pvr2_stream *);
 int pvr2_stream_set_buffer_count(struct pvr2_stream *,unsigned int);
 
 /* Get a pointer to a buffer that is either idle, ready, or is specified
@@ -59,12 +56,8 @@ struct pvr2_buffer *pvr2_stream_get_ready_buffer(struct pvr2_stream *);
 struct pvr2_buffer *pvr2_stream_get_buffer(struct pvr2_stream *sp,int id);
 
 /* Find out how many buffers are idle or ready */
-int pvr2_stream_get_idle_count(struct pvr2_stream *);
 int pvr2_stream_get_ready_count(struct pvr2_stream *);
 
-/* Kill all pending operations */
-void pvr2_stream_flush(struct pvr2_stream *);
-
 /* Kill all pending buffers and throw away any ready buffers as well */
 void pvr2_stream_kill(struct pvr2_stream *);
 
@@ -77,18 +70,12 @@ unsigned int pvr2_buffer_get_count(struct pvr2_buffer *);
 /* Retrieve completion code for given ready buffer */
 int pvr2_buffer_get_status(struct pvr2_buffer *);
 
-/* Retrieve state of given buffer */
-enum pvr2_buffer_state pvr2_buffer_get_state(struct pvr2_buffer *);
-
 /* Retrieve ID of given buffer */
 int pvr2_buffer_get_id(struct pvr2_buffer *);
 
 /* Start reading into given buffer (kill it if needed) */
 int pvr2_buffer_queue(struct pvr2_buffer *);
 
-/* Move buffer back to idle pool (kill it if needed) */
-int pvr2_buffer_idle(struct pvr2_buffer *);
-
 #endif /* __PVRUSB2_IO_H */
 
 /*
index 49da062e32710067369f85e1325b09e09202f264..f7a2e225a002543287f171d00a91589b0877bcb6 100644 (file)
@@ -54,7 +54,7 @@ static int pvr2_ioread_init(struct pvr2_ioread *cp)
 {
        unsigned int idx;
 
-       cp->stream = 0;
+       cp->stream = NULL;
        mutex_init(&cp->mutex);
 
        for (idx = 0; idx < BUFFER_COUNT; idx++) {
@@ -77,7 +77,7 @@ static void pvr2_ioread_done(struct pvr2_ioread *cp)
 {
        unsigned int idx;
 
-       pvr2_ioread_setup(cp,0);
+       pvr2_ioread_setup(cp,NULL);
        for (idx = 0; idx < BUFFER_COUNT; idx++) {
                if (!(cp->buffer_storage[idx])) continue;
                kfree(cp->buffer_storage[idx]);
@@ -88,12 +88,12 @@ struct pvr2_ioread *pvr2_ioread_create(void)
 {
        struct pvr2_ioread *cp;
        cp = kmalloc(sizeof(*cp),GFP_KERNEL);
-       if (!cp) return 0;
+       if (!cp) return NULL;
        pvr2_trace(PVR2_TRACE_STRUCT,"pvr2_ioread_create id=%p",cp);
        memset(cp,0,sizeof(*cp));
        if (pvr2_ioread_init(cp) < 0) {
                kfree(cp);
-               return 0;
+               return NULL;
        }
        return cp;
 }
@@ -105,7 +105,7 @@ void pvr2_ioread_destroy(struct pvr2_ioread *cp)
        pvr2_trace(PVR2_TRACE_STRUCT,"pvr2_ioread_destroy id=%p",cp);
        if (cp->sync_key_ptr) {
                kfree(cp->sync_key_ptr);
-               cp->sync_key_ptr = 0;
+               cp->sync_key_ptr = NULL;
        }
        kfree(cp);
 }
@@ -124,7 +124,7 @@ void pvr2_ioread_set_sync_key(struct pvr2_ioread *cp,
        if (sync_key_len != cp->sync_key_len) {
                if (cp->sync_key_ptr) {
                        kfree(cp->sync_key_ptr);
-                       cp->sync_key_ptr = 0;
+                       cp->sync_key_ptr = NULL;
                }
                cp->sync_key_len = 0;
                if (sync_key_len) {
@@ -144,8 +144,8 @@ static void pvr2_ioread_stop(struct pvr2_ioread *cp)
        pvr2_trace(PVR2_TRACE_START_STOP,
                   "/*---TRACE_READ---*/ pvr2_ioread_stop id=%p",cp);
        pvr2_stream_kill(cp->stream);
-       cp->c_buf = 0;
-       cp->c_data_ptr = 0;
+       cp->c_buf = NULL;
+       cp->c_data_ptr = NULL;
        cp->c_data_len = 0;
        cp->c_data_offs = 0;
        cp->enabled = 0;
@@ -179,8 +179,8 @@ static int pvr2_ioread_start(struct pvr2_ioread *cp)
                }
        }
        cp->enabled = !0;
-       cp->c_buf = 0;
-       cp->c_data_ptr = 0;
+       cp->c_buf = NULL;
+       cp->c_data_ptr = NULL;
        cp->c_data_len = 0;
        cp->c_data_offs = 0;
        cp->stream_running = 0;
@@ -214,7 +214,7 @@ int pvr2_ioread_setup(struct pvr2_ioread *cp,struct pvr2_stream *sp)
                        pvr2_ioread_stop(cp);
                        pvr2_stream_kill(cp->stream);
                        pvr2_stream_set_buffer_count(cp->stream,0);
-                       cp->stream = 0;
+                       cp->stream = NULL;
                }
                if (sp) {
                        pvr2_trace(PVR2_TRACE_START_STOP,
@@ -251,12 +251,8 @@ int pvr2_ioread_set_enabled(struct pvr2_ioread *cp,int fl)
        return ret;
 }
 
-int pvr2_ioread_get_enabled(struct pvr2_ioread *cp)
-{
-       return cp->enabled != 0;
-}
 
-int pvr2_ioread_get_buffer(struct pvr2_ioread *cp)
+static int pvr2_ioread_get_buffer(struct pvr2_ioread *cp)
 {
        int stat;
 
@@ -274,8 +270,8 @@ int pvr2_ioread_get_buffer(struct pvr2_ioread *cp)
                                pvr2_ioread_stop(cp);
                                return 0;
                        }
-                       cp->c_buf = 0;
-                       cp->c_data_ptr = 0;
+                       cp->c_buf = NULL;
+                       cp->c_data_ptr = NULL;
                        cp->c_data_len = 0;
                        cp->c_data_offs = 0;
                }
@@ -307,7 +303,7 @@ int pvr2_ioread_get_buffer(struct pvr2_ioread *cp)
        return !0;
 }
 
-void pvr2_ioread_filter(struct pvr2_ioread *cp)
+static void pvr2_ioread_filter(struct pvr2_ioread *cp)
 {
        unsigned int idx;
        if (!cp->enabled) return;
index 6b002597f5de56e7a421077da2fceaa3cd77d25b..1d362f83358866aafc8fb57b5934201b4fa6223a 100644 (file)
@@ -33,7 +33,6 @@ void pvr2_ioread_set_sync_key(struct pvr2_ioread *,
                              const char *sync_key_ptr,
                              unsigned int sync_key_len);
 int pvr2_ioread_set_enabled(struct pvr2_ioread *,int fl);
-int pvr2_ioread_get_enabled(struct pvr2_ioread *);
 int pvr2_ioread_read(struct pvr2_ioread *,void __user *buf,unsigned int cnt);
 int pvr2_ioread_avail(struct pvr2_ioread *);
 
index b95248274ed0961ee05e1031340b54266df40b3a..8f1a5afdd34e25104466a6dff2b76a952f8c22f4 100644 (file)
@@ -54,7 +54,7 @@ module_param_named(debug,pvrusb2_debug,int,S_IRUGO|S_IWUSR);
 MODULE_PARM_DESC(debug, "Debug trace mask");
 
 #ifdef CONFIG_VIDEO_PVRUSB2_SYSFS
-static struct pvr2_sysfs_class *class_ptr = 0;
+static struct pvr2_sysfs_class *class_ptr = NULL;
 #endif /* CONFIG_VIDEO_PVRUSB2_SYSFS */
 
 static void pvr_setup_attach(struct pvr2_context *pvr)
@@ -104,10 +104,10 @@ static void pvr_disconnect(struct usb_interface *intf)
 }
 
 static struct usb_driver pvr_driver = {
-       name:           "pvrusb2",
-       id_table:       pvr2_device_table,
-       probe:          pvr_probe,
-       disconnect:     pvr_disconnect
+       .name =         "pvrusb2",
+       .id_table =     pvr2_device_table,
+       .probe =        pvr_probe,
+       .disconnect =   pvr_disconnect
 };
 
 /*
index 13406369364385f5661478087e7b99b49f0c64e0..f95c598ff627a263fa019e472e92d5ea7d743d44 100644 (file)
@@ -121,7 +121,7 @@ static const struct std_name *find_std_name(const struct std_name *arrPtr,
                if (strlen(p->name) != bufSize) continue;
                if (!memcmp(bufPtr,p->name,bufSize)) return p;
        }
-       return 0;
+       return NULL;
 }
 
 
@@ -289,7 +289,7 @@ static struct v4l2_standard *match_std(v4l2_std_id id)
                        return generic_standards + idx;
                }
        }
-       return 0;
+       return NULL;
 }
 
 static int pvr2_std_fill(struct v4l2_standard *std,v4l2_std_id id)
@@ -364,7 +364,7 @@ struct v4l2_standard *pvr2_std_create_enum(unsigned int *countptr,
 
        pvr2_trace(PVR2_TRACE_INIT,"Setting up %u unique standard(s)",
                   std_cnt);
-       if (!std_cnt) return 0; // paranoia
+       if (!std_cnt) return NULL; // paranoia
 
        stddefs = kmalloc(sizeof(struct v4l2_standard) * std_cnt,
                          GFP_KERNEL);
index c6e6523d74b43dd3df9ecc5ab50405198b9c43f9..6af55a8b6f055cb3b2e1e961bf00b3a78e8c817a 100644 (file)
@@ -504,7 +504,7 @@ static void pvr2_sysfs_add_control(struct pvr2_sysfs *sfp,int ctl_id)
        cip->cptr = cptr;
 
        cip->chptr = sfp;
-       cip->item_next = 0;
+       cip->item_next = NULL;
        if (sfp->item_last) {
                sfp->item_last->item_next = cip;
        } else {
@@ -625,7 +625,7 @@ static void pvr2_sysfs_tear_down_debugifc(struct pvr2_sysfs *sfp)
                                 &sfp->debugifc->attr_debuginfo);
        class_device_remove_file(sfp->class_dev,&sfp->debugifc->attr_debugcmd);
        kfree(sfp->debugifc);
-       sfp->debugifc = 0;
+       sfp->debugifc = NULL;
 }
 #endif /* CONFIG_VIDEO_PVRUSB2_DEBUGIFC */
 
@@ -678,9 +678,9 @@ static void class_dev_destroy(struct pvr2_sysfs *sfp)
        class_device_remove_file(sfp->class_dev,&sfp->attr_v4l_minor_number);
        class_device_remove_file(sfp->class_dev,&sfp->attr_unit_number);
        pvr2_sysfs_trace("Destroying class_dev id=%p",sfp->class_dev);
-       sfp->class_dev->class_data = 0;
+       sfp->class_dev->class_data = NULL;
        class_device_unregister(sfp->class_dev);
-       sfp->class_dev = 0;
+       sfp->class_dev = NULL;
 }
 
 
@@ -739,13 +739,13 @@ static void class_dev_create(struct pvr2_sysfs *sfp,
        sfp->attr_v4l_minor_number.attr.name = "v4l_minor_number";
        sfp->attr_v4l_minor_number.attr.mode = S_IRUGO;
        sfp->attr_v4l_minor_number.show = v4l_minor_number_show;
-       sfp->attr_v4l_minor_number.store = 0;
+       sfp->attr_v4l_minor_number.store = NULL;
        class_device_create_file(sfp->class_dev,&sfp->attr_v4l_minor_number);
        sfp->attr_unit_number.attr.owner = THIS_MODULE;
        sfp->attr_unit_number.attr.name = "unit_number";
        sfp->attr_unit_number.attr.mode = S_IRUGO;
        sfp->attr_unit_number.show = unit_number_show;
-       sfp->attr_unit_number.store = 0;
+       sfp->attr_unit_number.store = NULL;
        class_device_create_file(sfp->class_dev,&sfp->attr_unit_number);
 
        pvr2_sysfs_add_controls(sfp);
@@ -806,7 +806,7 @@ struct pvr2_sysfs_class *pvr2_sysfs_class_create(void)
                pvr2_sysfs_trace(
                        "Registration failed for pvr2_sysfs_class id=%p",clp);
                kfree(clp);
-               clp = 0;
+               clp = NULL;
        }
        return clp;
 }
index f4aba8144ce058ee0f1b064fefc1e3b85acf38fb..af9f246f8d3f08dc6bd29d0330218fa3309e495e 100644 (file)
@@ -69,7 +69,7 @@ static void tuner_update(struct pvr2_tuner_handler *ctxt)
 
 static void pvr2_tuner_detach(struct pvr2_tuner_handler *ctxt)
 {
-       ctxt->client->handler = 0;
+       ctxt->client->handler = NULL;
        kfree(ctxt);
 }
 
index 961951010c27f9648def6668d08094324bfd11c2..0caf70b8c0de94ca873e760a56c8224085f5ed74 100644 (file)
@@ -81,7 +81,7 @@ static int video_nr[PVR_NUM] = {[0 ... PVR_NUM-1] = -1};
 module_param_array(video_nr, int, NULL, 0444);
 MODULE_PARM_DESC(video_nr, "Offset for device's minor");
 
-struct v4l2_capability pvr_capability ={
+static struct v4l2_capability pvr_capability ={
        .driver         = "pvrusb2",
        .card           = "Hauppauge WinTV pvr-usb2",
        .bus_info       = "usb",
@@ -111,7 +111,7 @@ static struct v4l2_tuner pvr_v4l2_tuners[]= {
        }
 };
 
-struct v4l2_fmtdesc pvr_fmtdesc [] = {
+static struct v4l2_fmtdesc pvr_fmtdesc [] = {
        {
                .index          = 0,
                .type           = V4L2_BUF_TYPE_VIDEO_CAPTURE,
@@ -127,7 +127,7 @@ struct v4l2_fmtdesc pvr_fmtdesc [] = {
 #define PVR_FORMAT_PIX  0
 #define PVR_FORMAT_VBI  1
 
-struct v4l2_format pvr_format [] = {
+static struct v4l2_format pvr_format [] = {
        [PVR_FORMAT_PIX] = {
                .type   = V4L2_BUF_TYPE_VIDEO_CAPTURE,
                .fmt    = {
@@ -701,9 +701,8 @@ static int pvr2_v4l2_do_ioctl(struct inode *inode, struct file *file,
 
 static void pvr2_v4l2_dev_destroy(struct pvr2_v4l2_dev *dip)
 {
-       pvr2_trace(PVR2_TRACE_INIT,
-                  "unregistering device video%d [%s]",
-                  dip->vdev->minor,pvr2_config_get_name(dip->config));
+       printk(KERN_INFO "pvrusb2: unregistering device video%d [%s]\n",
+              dip->vdev->minor,pvr2_config_get_name(dip->config));
        if (dip->ctxt_idx >= 0) {
                mutex_lock(&device_lock);
                devices[dip->ctxt_idx] = NULL;
@@ -725,7 +724,7 @@ static void pvr2_v4l2_destroy_no_lock(struct pvr2_v4l2 *vp)
 }
 
 
-void pvr2_v4l2_internal_check(struct pvr2_channel *chp)
+static void pvr2_v4l2_internal_check(struct pvr2_channel *chp)
 {
        struct pvr2_v4l2 *vp;
        vp = container_of(chp,struct pvr2_v4l2,channel);
@@ -735,8 +734,8 @@ void pvr2_v4l2_internal_check(struct pvr2_channel *chp)
 }
 
 
-int pvr2_v4l2_ioctl(struct inode *inode, struct file *file,
-                   unsigned int cmd, unsigned long arg)
+static int pvr2_v4l2_ioctl(struct inode *inode, struct file *file,
+                          unsigned int cmd, unsigned long arg)
 {
 
 /* Temporary hack : use ivtv api until a v4l2 one is available. */
@@ -747,7 +746,7 @@ int pvr2_v4l2_ioctl(struct inode *inode, struct file *file,
 }
 
 
-int pvr2_v4l2_release(struct inode *inode, struct file *file)
+static int pvr2_v4l2_release(struct inode *inode, struct file *file)
 {
        struct pvr2_v4l2_fh *fhp = file->private_data;
        struct pvr2_v4l2 *vp = fhp->vhead;
@@ -761,9 +760,9 @@ int pvr2_v4l2_release(struct inode *inode, struct file *file)
                hdw = fhp->channel.mc_head->hdw;
                pvr2_hdw_set_streaming(hdw,0);
                sp = pvr2_ioread_get_stream(fhp->rhp);
-               if (sp) pvr2_stream_set_callback(sp,0,0);
+               if (sp) pvr2_stream_set_callback(sp,NULL,NULL);
                pvr2_ioread_destroy(fhp->rhp);
-               fhp->rhp = 0;
+               fhp->rhp = NULL;
        }
        v4l2_prio_close(&vp->prio, &fhp->prio);
        file->private_data = NULL;
@@ -779,9 +778,9 @@ int pvr2_v4l2_release(struct inode *inode, struct file *file)
                } else {
                        vp->vfirst = fhp->vnext;
                }
-               fhp->vnext = 0;
-               fhp->vprev = 0;
-               fhp->vhead = 0;
+               fhp->vnext = NULL;
+               fhp->vprev = NULL;
+               fhp->vhead = NULL;
                pvr2_channel_done(&fhp->channel);
                pvr2_trace(PVR2_TRACE_STRUCT,
                           "Destroying pvr_v4l2_fh id=%p",fhp);
@@ -794,9 +793,9 @@ int pvr2_v4l2_release(struct inode *inode, struct file *file)
 }
 
 
-int pvr2_v4l2_open(struct inode *inode, struct file *file)
+static int pvr2_v4l2_open(struct inode *inode, struct file *file)
 {
-       struct pvr2_v4l2_dev *dip = 0; /* Our own context pointer */
+       struct pvr2_v4l2_dev *dip = NULL; /* Our own context pointer */
        struct pvr2_v4l2_fh *fhp;
        struct pvr2_v4l2 *vp;
        struct pvr2_hdw *hdw;
@@ -854,7 +853,7 @@ int pvr2_v4l2_open(struct inode *inode, struct file *file)
        pvr2_context_enter(vp->channel.mc_head); do {
                pvr2_trace(PVR2_TRACE_STRUCT,"Creating pvr_v4l2_fh id=%p",fhp);
                pvr2_channel_init(&fhp->channel,vp->channel.mc_head);
-               fhp->vnext = 0;
+               fhp->vnext = NULL;
                fhp->vprev = vp->vlast;
                if (vp->vlast) {
                        vp->vlast->vnext = fhp;
@@ -897,7 +896,7 @@ static int pvr2_v4l2_iosetup(struct pvr2_v4l2_fh *fh)
 
        fh->rhp = pvr2_channel_create_mpeg_stream(fh->dev_info->stream);
        if (!fh->rhp) {
-               pvr2_channel_claim_stream(&fh->channel,0);
+               pvr2_channel_claim_stream(&fh->channel,NULL);
                return -ENOMEM;
        }
 
@@ -1078,9 +1077,8 @@ static void pvr2_v4l2_dev_init(struct pvr2_v4l2_dev *dip,
            (video_register_device(dip->vdev, v4l_type, -1) < 0)) {
                err("Failed to register pvrusb2 v4l video device");
        } else {
-               pvr2_trace(PVR2_TRACE_INIT,
-                          "registered device video%d [%s]",
-                          dip->vdev->minor,pvr2_config_get_name(dip->config));
+               printk(KERN_INFO "pvrusb2: registered device video%d [%s]\n",
+                      dip->vdev->minor,pvr2_config_get_name(dip->config));
        }
 
        if ((dip->vdev->minor < sizeof(devices)/sizeof(devices[0])) &&
index e4ec7f25194c5611f0ded98adaf2efecc83f0a0b..05f2cddeb47bbe86e594a26215a74d850fabbc60 100644 (file)
@@ -126,8 +126,8 @@ static const struct pvr2_v4l_decoder_ops decoder_ops[] = {
 
 static void decoder_detach(struct pvr2_v4l_decoder *ctxt)
 {
-       ctxt->client->handler = 0;
-       ctxt->hdw->decoder_ctrl = 0;
+       ctxt->client->handler = NULL;
+       ctxt->hdw->decoder_ctrl = NULL;
        kfree(ctxt);
 }
 
index fcad346e395503b835bccea817d8913971aa3731..2413e5198e1676f1d8d2b99a8da9724a83440941 100644 (file)
@@ -89,7 +89,7 @@ static unsigned int wm8775_describe(struct pvr2_v4l_wm8775 *ctxt,
 
 static void wm8775_detach(struct pvr2_v4l_wm8775 *ctxt)
 {
-       ctxt->client->handler = 0;
+       ctxt->client->handler = NULL;
        kfree(ctxt);
 }
 
index 041227f6524691d5f42971acbe00bf9acdd7df0c..43028e74e9e059f58643d180c118ac202707f4a8 100644 (file)
@@ -30,7 +30,6 @@
 #ifndef PWC_UNCOMPRESS_H
 #define PWC_UNCOMPRESS_H
 
-#include <linux/config.h>
 
 #include <media/pwc-ioctl.h>
 
index 629f79e44fb6ac940d4dad4ccd4aad11988bcd9b..7e9c4237d1e8ad145835c88d4a9e0625e8eb3ed5 100644 (file)
@@ -25,7 +25,6 @@
 #ifndef PWC_H
 #define PWC_H
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/usb.h>
 #include <linux/spinlock.h>
index da3007d2f4115df49b6a53ba01dec178a7292529..535172f643b9273389427159ba7e1ee999300daa 100644 (file)
@@ -20,7 +20,6 @@
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/list.h>
 #include <linux/module.h>
@@ -942,8 +941,6 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev,
        /* load i2c helpers */
        if (TUNER_ABSENT != dev->tuner_type)
                request_module("tuner");
-       if (dev->tda9887_conf)
-               request_module("tda9887");
        if (card_is_empress(dev)) {
                request_module("saa6752hs");
                request_module_depend("saa7134-empress",&need_empress);
index a846ebc78cd7b8e910208d8378210b25d0939735..67987baee77ae8e8c5767598d9c2ef32d248c6c5 100644 (file)
@@ -27,7 +27,6 @@
 
 static const char version[] = "0.24";
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/vmalloc.h>
index 351b182d921f22856edb5f48236db02185cf4f9d..2ba2991a214ff3026858a13929468869d9da2cf4 100644 (file)
@@ -58,7 +58,6 @@
  *                        Fixed proc entry removal bug.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/vmalloc.h>
index 2fadabf99688c766dc3aa170b4b0ead3afdea435..8dab481d384aa58b292de4dd26fd6155c8fda1ac 100644 (file)
@@ -590,8 +590,8 @@ int tda9887_tuner_init(struct i2c_client *c)
        t->set_tv_freq = tda9887_set_freq;
        t->set_radio_freq = tda9887_set_freq;
        t->standby = tda9887_standby;
-       t->tuner_status=tda9887_tuner_status;
-       t->get_afc=tda9887_get_afc;
+       t->tuner_status = tda9887_tuner_status;
+       t->get_afc = tda9887_get_afc;
 
        return 0;
 }
index 011413cf34a8ad9fcdec570d636d2819edde0c77..f7eb402d5f2b0254af18639e93b27f6a167967fd 100644 (file)
@@ -416,7 +416,7 @@ static void tuner_status(struct i2c_client *client)
 
 /* ---------------------------------------------------------------------- */
 
-/* static var Used only in tuner_attach and tuner_probe */
+/* static vars: used only in tuner_attach and tuner_probe */
 static unsigned default_mode_mask;
 
 /* During client attach, set_type is called by adapter's attach_inform callback.
@@ -608,13 +608,13 @@ static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg)
                tuner_dbg("VIDIOCSAUDIO not implemented.\n");
                break;
        case TDA9887_SET_CONFIG:
-       {
-               int *i = arg;
+               if (t->type == TUNER_TDA9887) {
+                       int *i = arg;
 
-               t->tda9887_config = *i;
-               set_freq(client, t->tv_freq);
+                       t->tda9887_config = *i;
+                       set_freq(client, t->tv_freq);
+               }
                break;
-       }
        /* --- v4l ioctls --- */
        /* take care: bttv does userspace copying, we'll get a
           kernel pointer here... */
index 6da6f82b8c885960b671a0aadf3b4f6140496073..d071c5cbf0131ba2517e9422773c9197b3ed8b28 100644 (file)
@@ -7,6 +7,7 @@
 #include <linux/i2c.h>
 #include <linux/videodev.h>
 #include <media/tuner.h>
+#include <media/v4l2-common.h>
 
 static int offset = 0;
 module_param(offset, int, 0666);
@@ -128,6 +129,7 @@ static void default_set_tv_freq(struct i2c_client *c, unsigned int freq)
        u8 buffer[4];
        int rc, IFPCoff, i, j;
        enum param_type desired_type;
+       struct tuner_params *params;
 
        tun = &tuners[t->type];
 
@@ -169,19 +171,20 @@ static void default_set_tv_freq(struct i2c_client *c, unsigned int freq)
                          IFPCoff,t->type);
                j = 0;
        }
+       params = &tun->params[j];
 
-       for (i = 0; i < tun->params[j].count; i++) {
-               if (freq > tun->params[j].ranges[i].limit)
+       for (i = 0; i < params->count; i++) {
+               if (freq > params->ranges[i].limit)
                        continue;
                break;
        }
-       if (i == tun->params[j].count) {
+       if (i == params->count) {
                tuner_dbg("TV frequency out of range (%d > %d)",
-                               freq, tun->params[j].ranges[i - 1].limit);
-               freq = tun->params[j].ranges[--i].limit;
+                               freq, params->ranges[i - 1].limit);
+               freq = params->ranges[--i].limit;
        }
-       config = tun->params[j].ranges[i].config;
-       cb     = tun->params[j].ranges[i].cb;
+       config = params->ranges[i].config;
+       cb     = params->ranges[i].cb;
        /*  i == 0 -> VHF_LO
         *  i == 1 -> VHF_HI
         *  i == 2 -> UHF     */
@@ -281,7 +284,7 @@ static void default_set_tv_freq(struct i2c_client *c, unsigned int freq)
                break;
        }
 
-       if (tuners[t->type].params->cb_first_if_lower_freq && div < t->last_div) {
+       if (params->cb_first_if_lower_freq && div < t->last_div) {
                buffer[0] = config;
                buffer[1] = cb;
                buffer[2] = (div>>8) & 0x7f;
@@ -293,6 +296,43 @@ static void default_set_tv_freq(struct i2c_client *c, unsigned int freq)
                buffer[3] = cb;
        }
        t->last_div = div;
+       if (params->has_tda9887) {
+               int config = 0;
+               int is_secam_l = (t->std & (V4L2_STD_SECAM_L | V4L2_STD_SECAM_LC)) &&
+                       !(t->std & ~(V4L2_STD_SECAM_L | V4L2_STD_SECAM_LC));
+
+               if (t->std == V4L2_STD_SECAM_LC) {
+                       if (params->port1_active ^ params->port1_invert_for_secam_lc)
+                               config |= TDA9887_PORT1_ACTIVE;
+                       if (params->port2_active ^ params->port2_invert_for_secam_lc)
+                               config |= TDA9887_PORT2_ACTIVE;
+               }
+               else {
+                       if (params->port1_active)
+                               config |= TDA9887_PORT1_ACTIVE;
+                       if (params->port2_active)
+                               config |= TDA9887_PORT2_ACTIVE;
+               }
+               if (params->intercarrier_mode)
+                       config |= TDA9887_INTERCARRIER;
+               if (is_secam_l) {
+                       if (i == 0 && params->default_top_secam_low)
+                               config |= TDA9887_TOP(params->default_top_secam_low);
+                       else if (i == 1 && params->default_top_secam_mid)
+                               config |= TDA9887_TOP(params->default_top_secam_mid);
+                       else if (params->default_top_secam_high)
+                               config |= TDA9887_TOP(params->default_top_secam_high);
+               }
+               else {
+                       if (i == 0 && params->default_top_low)
+                               config |= TDA9887_TOP(params->default_top_low);
+                       else if (i == 1 && params->default_top_mid)
+                               config |= TDA9887_TOP(params->default_top_mid);
+                       else if (params->default_top_high)
+                               config |= TDA9887_TOP(params->default_top_high);
+               }
+               i2c_clients_command(c->adapter, TDA9887_SET_CONFIG, &config);
+       }
        tuner_dbg("tv 0x%02x 0x%02x 0x%02x 0x%02x\n",
                  buffer[0],buffer[1],buffer[2],buffer[3]);
 
@@ -339,6 +379,7 @@ static void default_set_radio_freq(struct i2c_client *c, unsigned int freq)
        u16 div;
        int rc, j;
        enum param_type desired_type = TUNER_PARAM_TYPE_RADIO;
+       struct tuner_params *params;
 
        tun = &tuners[t->type];
 
@@ -352,7 +393,8 @@ static void default_set_radio_freq(struct i2c_client *c, unsigned int freq)
                j = 0;
 
        div = (20 * freq / 16000) + (int)(20*10.7); /* IF 10.7 MHz */
-       buffer[2] = (tun->params[j].ranges[0].config & ~TUNER_RATIO_MASK) | TUNER_RATIO_SELECT_50; /* 50 kHz step */
+       params = &tun->params[j];
+       buffer[2] = (params->ranges[0].config & ~TUNER_RATIO_MASK) | TUNER_RATIO_SELECT_50; /* 50 kHz step */
 
        switch (t->type) {
        case TUNER_TENA_9533_DI:
@@ -384,7 +426,7 @@ static void default_set_radio_freq(struct i2c_client *c, unsigned int freq)
        }
        buffer[0] = (div>>8) & 0x7f;
        buffer[1] = div      & 0xff;
-       if (tuners[t->type].params->cb_first_if_lower_freq && div < t->last_div) {
+       if (params->cb_first_if_lower_freq && div < t->last_div) {
                buffer[0] = buffer[2];
                buffer[1] = buffer[3];
                buffer[2] = (div>>8) & 0x7f;
@@ -398,6 +440,18 @@ static void default_set_radio_freq(struct i2c_client *c, unsigned int freq)
               buffer[0],buffer[1],buffer[2],buffer[3]);
        t->last_div = div;
 
+       if (params->has_tda9887) {
+               int config = 0;
+               if (params->port1_active && !params->port1_fm_high_sensitivity)
+                       config |= TDA9887_PORT1_ACTIVE;
+               if (params->port2_active && !params->port2_fm_high_sensitivity)
+                       config |= TDA9887_PORT2_ACTIVE;
+               if (params->intercarrier_mode)
+                       config |= TDA9887_INTERCARRIER;
+/*             if (params->port1_set_for_fm_mono)
+                       config &= ~TDA9887_PORT1_ACTIVE;*/
+               i2c_clients_command(c->adapter, TDA9887_SET_CONFIG, &config);
+       }
        if (4 != (rc = i2c_master_send(c,buffer,4)))
                tuner_warn("i2c i/o error: rc == %d (should be 4)\n",rc);
 }
index 9d9226cb6393c389d481c502d09e32fb179582b4..a167e17c6dcd030d3d773c922146a364dd3aea4e 100644 (file)
@@ -380,6 +380,10 @@ static struct tuner_params tuner_philips_fq1216me_params[] = {
                .type   = TUNER_PARAM_TYPE_PAL,
                .ranges = tuner_lg_pal_ranges,
                .count  = ARRAY_SIZE(tuner_lg_pal_ranges),
+               .has_tda9887 = 1,
+               .port1_active = 1,
+               .port2_active = 1,
+               .port2_invert_for_secam_lc = 1,
        },
 };
 
@@ -542,6 +546,14 @@ static struct tuner_params tuner_fm1216me_mk3_params[] = {
                .ranges = tuner_fm1216me_mk3_pal_ranges,
                .count  = ARRAY_SIZE(tuner_fm1216me_mk3_pal_ranges),
                .cb_first_if_lower_freq = 1,
+               .has_tda9887 = 1,
+               .port1_active = 1,
+               .port2_active = 1,
+               .port2_invert_for_secam_lc = 1,
+               .port1_fm_high_sensitivity = 1,
+               .default_top_mid = -2,
+               .default_top_secam_mid = -2,
+               .default_top_secam_high = -2,
        },
 };
 
@@ -612,6 +624,10 @@ static struct tuner_params tuner_fm1236_mk3_params[] = {
                .ranges = tuner_fm1236_mk3_ntsc_ranges,
                .count  = ARRAY_SIZE(tuner_fm1236_mk3_ntsc_ranges),
                .cb_first_if_lower_freq = 1,
+               .has_tda9887 = 1,
+               .port1_active = 1,
+               .port2_active = 1,
+               .port1_fm_high_sensitivity = 1,
        },
 };
 
@@ -632,6 +648,8 @@ static struct tuner_params tuner_microtune_4049_fm5_params[] = {
                .type   = TUNER_PARAM_TYPE_PAL,
                .ranges = tuner_temic_4009f_5_pal_ranges,
                .count  = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
+               .has_tda9887 = 1,
+               .port1_invert_for_secam_lc = 1,
        },
 };
 
@@ -648,6 +666,8 @@ static struct tuner_params tuner_panasonic_vp27_params[] = {
                .type   = TUNER_PARAM_TYPE_NTSC,
                .ranges = tuner_panasonic_vp27_ntsc_ranges,
                .count  = ARRAY_SIZE(tuner_panasonic_vp27_ntsc_ranges),
+               .has_tda9887 = 1,
+               .intercarrier_mode = 1,
        },
 };
 
@@ -782,6 +802,13 @@ static struct tuner_params tuner_philips_fq1216ame_mk4_params[] = {
                .type   = TUNER_PARAM_TYPE_PAL,
                .ranges = tuner_philips_fq12_6a___mk4_pal_ranges,
                .count  = ARRAY_SIZE(tuner_philips_fq12_6a___mk4_pal_ranges),
+               .has_tda9887 = 1,
+               .port1_active = 1,
+               .port2_invert_for_secam_lc = 1,
+               .default_top_mid = -2,
+               .default_top_secam_low = -2,
+               .default_top_secam_mid = -2,
+               .default_top_secam_high = -2,
        },
 };
 
@@ -870,6 +897,12 @@ static struct tuner_params tuner_philips_fmd1216me_mk3_params[] = {
                .type   = TUNER_PARAM_TYPE_PAL,
                .ranges = tuner_philips_fmd1216me_mk3_pal_ranges,
                .count  = ARRAY_SIZE(tuner_philips_fmd1216me_mk3_pal_ranges),
+               .has_tda9887 = 1,
+               .port1_active = 1,
+               .port2_active = 1,
+               .port2_fm_high_sensitivity = 1,
+               .port2_invert_for_secam_lc = 1,
+               .port1_set_for_fm_mono = 1,
        },
 };
 
@@ -1005,6 +1038,7 @@ static struct tuner_params tuner_samsung_tcpn_2121p30a_params[] = {
                .type   = TUNER_PARAM_TYPE_NTSC,
                .ranges = tuner_samsung_tcpn_2121p30a_ntsc_ranges,
                .count  = ARRAY_SIZE(tuner_samsung_tcpn_2121p30a_ntsc_ranges),
+               .has_tda9887 = 1,
        },
 };
 
@@ -1037,6 +1071,10 @@ static struct tuner_params tuner_samsung_tcpg_6121p30a_params[] = {
                .type   = TUNER_PARAM_TYPE_PAL,
                .ranges = tuner_samsung_tcpg_6121p30a_pal_ranges,
                .count  = ARRAY_SIZE(tuner_samsung_tcpg_6121p30a_pal_ranges),
+               .has_tda9887 = 1,
+               .port1_active = 1,
+               .port2_active = 1,
+               .port2_invert_for_secam_lc = 1,
        },
 };
 
index c2b756107548ff56625b4d5c608381ffbf01746b..936e3f746fba59ca3f4f0cbf892408022ac80a23 100644 (file)
@@ -14,7 +14,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index 30f8d80ddcaa9c688ec817befb8872fcd156e5fd..d95529e8e51376dbadeea8e89f94ab770769cf6d 100644 (file)
@@ -73,14 +73,14 @@ static struct HAUPPAUGE_TUNER_FMT
 }
 hauppauge_tuner_fmt[] =
 {
-       { V4L2_STD_UNKNOWN," UNKNOWN" },
-       { V4L2_STD_UNKNOWN," FM" },
-       { V4L2_STD_PAL_BG, " PAL(B/G)" },
-       { V4L2_STD_NTSC_M, " NTSC(M)" },
-       { V4L2_STD_PAL_I,  " PAL(I)" },
-       { V4L2_STD_SECAM_L," SECAM(L/L')" },
-       { V4L2_STD_PAL_DK, " PAL(D/D1/K)" },
-       { V4L2_STD_ATSC,   " ATSC/DVB Digital" },
+       { V4L2_STD_UNKNOWN,                   " UNKNOWN" },
+       { V4L2_STD_UNKNOWN,                   " FM" },
+       { V4L2_STD_B|V4L2_STD_GH,             " PAL(B/G)" },
+       { V4L2_STD_MN,                        " NTSC(M)" },
+       { V4L2_STD_PAL_I,                     " PAL(I)" },
+       { V4L2_STD_SECAM_L|V4L2_STD_SECAM_LC, " SECAM(L/L')" },
+       { V4L2_STD_DK,                        " PAL(D/D1/K)" },
+       { V4L2_STD_ATSC,                      " ATSC/DVB Digital" },
 };
 
 /* This is the full list of possible tuners. Many thanks to Hauppauge for
@@ -219,7 +219,7 @@ hauppauge_tuner[] =
        { TUNER_ABSENT,        "Thompson DTT75105"},
        { TUNER_ABSENT,        "Conexant_CX24109"},
        { TUNER_TCL_2002N,     "TCL M2523_5N_E"},
-       { TUNER_ABSENT,        "TCL M2523_3DB_E"},
+       { TUNER_TCL_2002MB,    "TCL M2523_3DB_E"},
        { TUNER_ABSENT,        "Philips 8275A"},
        { TUNER_ABSENT,        "Microtune MT2060"},
        { TUNER_ABSENT,        "Philips FM1236 MK5"},
index 49dbee5f5628b49a38a299385e0da4d64b17eccd..051775d4c72611c89a1a6aeda4ba8260d90e81c0 100644 (file)
@@ -16,7 +16,6 @@
 #ifndef usbvideo_h
 #define        usbvideo_h
 
-#include <linux/config.h>
 #include <linux/videodev.h>
 #include <media/v4l2-common.h>
 #include <linux/usb.h>
index 19d3c20dc7efd73a4f1cf3b58376dbf953584011..d83a2c84d2334a279c7febcd070f6f7ef7a27899 100644 (file)
@@ -16,7 +16,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #include <linux/init.h>
 #include <linux/module.h>
index 97f946db85978ae23e816b82b17d7ac84aa67e18..f06dc19e504a89652ae55c81c6911c4cd2438cc3 100644 (file)
@@ -44,7 +44,6 @@
  * Added Gerd Knorrs v4l1 enhancements (Justin Schoeman)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 8f271de57fd6c8e0fe246b49cf692e6f02d4b510..2ae3fb250630be9dd7f51dfa82e6b61e36375ae1 100644 (file)
@@ -36,7 +36,6 @@
 #include <linux/slab.h>
 
 // kernel config is here (procfs flag)
-#include <linux/config.h>
 
 #ifdef CONFIG_PROC_FS
 #include <linux/proc_fs.h>
index 8c233720b6a50d3a56508ccdfb1c31ff5bcd941a..97a3bbeda5056acfa1a9fed0f05b836d6ce08269 100644 (file)
@@ -222,14 +222,14 @@ M                       zr36055[1] 0001 0000c001 00000000 (zr36050[1])
 /* ========================= */
 
 struct vfe_polarity {
-       int vsync_pol:1;
-       int hsync_pol:1;
-       int field_pol:1;
-       int blank_pol:1;
-       int subimg_pol:1;
-       int poe_pol:1;
-       int pvalid_pol:1;
-       int vclk_pol:1;
+       unsigned int vsync_pol:1;
+       unsigned int hsync_pol:1;
+       unsigned int field_pol:1;
+       unsigned int blank_pol:1;
+       unsigned int subimg_pol:1;
+       unsigned int poe_pol:1;
+       unsigned int pvalid_pol:1;
+       unsigned int vclk_pol:1;
 };
 
 struct vfe_settings {
index 2836b45ec2068bd34e519637ee891a483d74b1f3..ec7696e8f1fac3eaf3b47725c37db3ec1dde8154 100644 (file)
@@ -28,7 +28,6 @@
 #include <linux/spinlock.h>
 #include <linux/list.h>
 #include <linux/wait.h>
-#include <linux/config.h>
 #include <linux/param.h>
 #include <linux/types.h>
 #include <linux/rwsem.h>
index 958c1e6fc8529a7a9e6b8d53111ac707ef692c62..33b32f3cf84e190eb5129e366ba13ab555e591eb 100644 (file)
@@ -29,7 +29,6 @@
 
 #include <linux/delay.h>
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index 02168d9c218796a8c74b7f3cdf3baf921e31078b..3cbac2e8aed393b8f8acfb9e916a479f38330ae2 100644 (file)
@@ -27,7 +27,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index 9711f6248ef75a0ba5001dabec60a58cf8207e86..d9a5876eb386f6ac411905e022a273fc9d8fe7bd 100644 (file)
@@ -44,7 +44,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/version.h>
 #include <linux/init.h>
 #include <linux/module.h>
index f4ffe79bdc5b710fd446694ad3b2fc9e7f77df7b..c7f6f6488360a191c8fa1eb713c76fd0c79ee88d 100644 (file)
@@ -27,7 +27,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index c87113d6cc6085d6501b4237a7a6127fc6958e98..416eaa93b8a4a85f0524685d85a95c916c32fac6 100644 (file)
@@ -18,7 +18,6 @@
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/pci.h>
 #include <linux/slab.h>
index 12dd8d493ee2aa4e6981e61222cb18cad2bb86b9..2544fc7af0f6fde84b1f0e2860c8ef7523c88ce0 100644 (file)
@@ -46,7 +46,6 @@
 */
 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/errno.h>
@@ -5592,7 +5591,7 @@ mpt_HardResetHandler(MPT_ADAPTER *ioc, int sleepFlag)
 
        /* The SCSI driver needs to adjust timeouts on all current
         * commands prior to the diagnostic reset being issued.
-        * Prevents timeouts occuring during a diagnostic reset...very bad.
+        * Prevents timeouts occurring during a diagnostic reset...very bad.
         * For all other protocol drivers, this is a no-op.
         */
        {
index 4720f9ae86aadda67b4847824b448b8e13e0ed84..32ae4d6645453c302c2e637f1c22cf3b16d8c959 100644 (file)
@@ -49,7 +49,6 @@
 #define MPTBASE_H_INCLUDED
 /*{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 
index 5a6cca8e8c45df6cf9ff6db950f95523f14f2618..8abe45e49ad717091e1def8e0a3354e8e933369a 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
index c8426a9bf27333bb40264f980eea4585278c92e0..6fe2ff5a63db08ebd859750bc31e6a202922328c 100644 (file)
@@ -16,7 +16,6 @@
  *  Note that all locks are private to this file.  Nothing else may
  *  touch them.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
index 79fd062ccb34bee7e02804f4271a82d6291a2950..02776814443e24df9218fed9b703542e6d66c614 100644 (file)
@@ -17,7 +17,6 @@
  * pin should provide pulses even when the LCD is blanked, otherwise
  * a pen touch needed to unblank the LCD will never be read.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
index 6aba419544488c58571d115f264368d30b3bed67..634d538ccd14eb3c3e062b12316f7b3ef3385132 100644 (file)
@@ -29,7 +29,6 @@
 #include <linux/wait.h>
 #include <linux/spinlock.h>
 #include <linux/slab.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/interrupt.h>
 #include <linux/device.h>
index 3228516b7d19abee647a3af61c2ea1a36c9e0447..075a2a07924e5394bf022b42702a43295840b814 100644 (file)
@@ -53,7 +53,6 @@
      Gets the status of the write protect pin, if available.
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
index 5dc4bee7abebfb9c8685e61306ae54bdff754060..41069908f4a7ea301660c0e6953b20399cac2e9a 100644 (file)
@@ -34,7 +34,6 @@
  * So we use the timer to check the status manually.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
index 5c62f4e6ad062fd5419f21133c9f422824b13765..7ca9e95bdf89b89c03237b3f4e1eb9f6ffa2124f 100644 (file)
@@ -25,7 +25,6 @@
  *             deficiencies
  *
  */
-#include <linux/config.h>
 
 #ifdef CONFIG_MMC_DEBUG
 #define DEBUG
index 6201f3086a0226d1810aab52067d0a33e22206fe..247ff2f23ac9999495b7167c607b057e1826be40 100644 (file)
@@ -9,7 +9,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
index 8576a65ca1c3383fbdf2c74ff895fbc8b75e7ba7..9dfb34a857e3cb92865aef8715ee3f029473df20 100644 (file)
@@ -7,7 +7,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
index c25244b3657bb532458fab1dae08874cf0aedc7f..7a4840ec53b7e87d77ed535d3c01a0d02257b4fb 100644 (file)
@@ -11,7 +11,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
index b49368fd96b82b051d59fe85ec00c9127ca05390..ef350908478c75217ff2474dca8824cdb9cd99e9 100644 (file)
@@ -16,7 +16,6 @@
  *     1 and 3 byte data transfers not supported
  *     max block length up to 1023
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/ioport.h>
index 8167332d4013d3e7701f108d2aea0dcd241ea700..3fcd86c08ebd8fe2d224065e39038777ff2dd495 100644 (file)
@@ -21,7 +21,6 @@
  * - On APIC systems the FIFO empty interrupt is sometimes lost.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
index 1e01ad38b26e91d0f17c60e74d6987c6833afba1..9885726a16e466d22e38bf58195f216dd3f7e2a6 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 4bf9f8cac0dd96746a6c1a9cca9afa4d8161449d..60e11a0ada97b4d6ae9b1792eec64a45e6865da8 100644 (file)
@@ -4,7 +4,6 @@
    $Id: cfi_probe.c,v 1.86 2005/11/29 14:48:31 gleixner Exp $
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index c2127840a183007b57976d9a611ab96789656c36..2174c97549f0e868290799970d71697560bdf4bb 100644 (file)
@@ -6,7 +6,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kmod.h>
 #include <linux/spinlock.h>
index 517ea33e7260feea4f25a79e536b7924bc3a5900..8f39d0a3143839be7fe136da7588657b009cc36e 100644 (file)
@@ -8,7 +8,6 @@
    Occasionally maintained by Thayne Harbaugh tharbaugh at lnxi dot com
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
index be3f1c136d0211340a5b890b0f5648dd07c10777..ede3561be87090e4c21caecdf83b1111bfea14b3 100644 (file)
@@ -8,7 +8,6 @@
  *
  * Licence: GPL
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/fs.h>
 #include <linux/blkdev.h>
index 593bb033a3fafac6b40cc5b5369b7299264900ae..78872c3f3760d63f191deed477a7307bb5d4c505 100644 (file)
@@ -40,7 +40,6 @@
 */
 #define DOC_SINGLE_DRIVER
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <asm/errno.h>
index 04271d02b6b6d990c1c32d363bea309792dbde4a..5db71604592789492a5718150d9659d1d0455b77 100644 (file)
@@ -9,7 +9,6 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
 */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index b4438eacfd80d47c7dfc7e59146f9b806e8ae6e6..e427c82d5f4cb046ff4234e4ce8919062569fda3 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/ioport.h>
index 30f07b473ae2ad55b026c4f2ea23d30520c03957..6f9bbf6fee4d090237be6d418edb5323c1e3583b 100644 (file)
@@ -82,7 +82,6 @@
  *       * Comb the init routine.  It's still a bit cludgy on a few things.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
index 1e21a2c3dd29eba442cd621deed1cf8f57788a8a..4116535805f1dbec9f81b75a1e5ace9103706f56 100644 (file)
@@ -24,7 +24,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/delay.h>
index b933a2a27b18c3b795aa3b060488564ad84baff5..7fc8097e41d224bbf690f9b72d7fc109495b68a3 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/types.h>
index a505870052635b6acc253b42c565e41099cc7ec6..447955be18af771b32df85d3678d6b8c9ab596cc 100644 (file)
@@ -14,7 +14,6 @@
 #include <linux/mtd/map.h>
 #include <linux/mtd/cfi.h>
 #include <linux/mtd/flashchip.h>
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/pci_ids.h>
 #include <linux/list.h>
index 5a95ab370a970cf6150d857de460a02bfeba29df..0402c21e291d40c750bd9a047dcf7f13bc811d7e 100644 (file)
@@ -14,7 +14,6 @@
  * $Id: ceiva.c,v 1.11 2004/09/16 23:27:12 gleixner Exp $
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/ioport.h>
index a370953c1513a2a6c1a24a9f551d7300ea52b47b..aa56defb94c805dfd4b93d2b13ac85ee53bf9af0 100644 (file)
@@ -38,7 +38,6 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
 #include <linux/mtd/partitions.h>
-#include <linux/config.h>
 #include <linux/delay.h>
 
 #if defined(CONFIG_MIPS_ITE8172) || defined(CONFIG_MIPS_IVR)
index 85c2a9e22b1e28ee6186da35ae51ae3ac9301278..92a9c7fac99328adbb0208cc69503685b84882cc 100644 (file)
@@ -12,7 +12,6 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
 #include <linux/mtd/partitions.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 
 /* partition_info gives details on the logical partitions that the split the
index 8b3784e2de891d0f0f8b3b2d6c84b6d3ed3019cf..b32bb9347d713045bf9db02cdc08470e70b3165f 100644 (file)
@@ -7,7 +7,6 @@
  *
  * $Id: dc21285.c,v 1.24 2005/11/07 11:14:26 gleixner Exp $
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index c299d10b33e6ee10de83511acb61ad8c9897626c..b1104fe1f20723a4dfaca7400efc6d0e85bdab0b 100644 (file)
@@ -25,7 +25,6 @@
  * and http://www.ssv-embedded.de/ssv/pc104/p170.htm
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 2bb3c0f0f97048b4ac9485794b97193052c2250f..a43c49905cac812d2d6790ac0ca1666141d7a880 100644 (file)
@@ -16,7 +16,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
index 60a6e51d662f33a80760738d57da53a85bdc0e2e..641e1dd8479e4fccc2e55484fba23b9f78acbcd1 100644 (file)
@@ -20,7 +20,6 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
 #include <linux/mtd/partitions.h>
-#include <linux/config.h>
 #include <asm/io.h>
 #include <asm/ibm44x.h>
 #include <platforms/4xx/ebony.h>
index b48a3473ffc16103f65947f471e5d35169118966..1c5b97c8968540703130e7e6817f5c4a32e71d1f 100644 (file)
@@ -17,7 +17,6 @@
 #include <asm/io.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
-#include <linux/config.h>
 
 #ifdef CONFIG_MTD_PARTITIONS
 #include <linux/mtd/partitions.h>
index 0667101ccbe1df53ef15e8baf88655b1bdf0496f..6dde3182d64a6966d1b6247bc52dd5ee25c8c78b 100644 (file)
@@ -8,7 +8,6 @@
  *     2003 Thomas Gleixner <tglx@linutronix.de>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 16732794edf31b8ebb522528f3bb330a97f7ea22..db4b570d874ab1885f0f103dbb9ee3334a97cf0d 100644 (file)
@@ -14,7 +14,6 @@
 #include <linux/mtd/map.h>
 #include <linux/mtd/cfi.h>
 #include <linux/mtd/flashchip.h>
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/pci_ids.h>
 #include <linux/list.h>
index ba7f40311a7e359352156b2d9e51738b6cd7e55c..a0b4dc7155dc66ffc6fd02a5582f860f0381794b 100644 (file)
@@ -17,7 +17,6 @@
 #include <asm/io.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
-#include <linux/config.h>
 
 #ifdef CONFIG_MTD_PARTITIONS
 #include <linux/mtd/partitions.h>
index a3ba52fbd86835968bc01a3c9ffe053641265d25..c8db01b3e45f2d68f4a6612f47d67cd5c9153e6b 100644 (file)
@@ -26,7 +26,6 @@
 
 ======================================================================*/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index b8ccb0a9578984221c5ad3caad30ee3caa9d03d3..f27c132794c3efa365e6408b7fa40196ec661ecb 100644 (file)
@@ -8,7 +8,6 @@
  * $Id: ipaq-flash.c,v 1.5 2005/11/07 11:14:27 gleixner Exp $
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 851bf957605205c66ed3a7fe0d0777e83b44e4f6..6b784ef5ee702a165c54ecea554b71d96cdc47bb 100644 (file)
@@ -13,7 +13,6 @@
 #include <asm/io.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
-#include <linux/config.h>
 
 #define PIIXE_IOBASE_RESOURCE  11
 
index c658d4045ef287a1a22b93dabe0563a3d31e56bc..1c13d2dc0cdff37968ee826ea1cc3607b71a89ae 100644 (file)
@@ -19,7 +19,6 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
 #include <linux/mtd/partitions.h>
-#include <linux/config.h>
 #include <asm/lasat/lasat.h>
 
 static struct mtd_info *lasat_mtd;
index 4685e8e134601d0ffa02f5916d8473a102f60d9d..45a00fac88acbcf0f8804afd3e92b6a2ea3b0722 100644 (file)
@@ -15,7 +15,6 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
 #include <linux/mtd/partitions.h>
-#include <linux/config.h>
 
 static struct mtd_info *flash_mtd;
 static struct mtd_partition *parsed_parts;
index 5c25d4e552c61053cc11daf0d32fcda1144f1cb6..d884f2be28f6574fb45f19a7cd423bee4a81a1de 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/init.h>
index a21fcd195ab40ddd1b2692c889bdc473131f711c..2f07602ba9408f251b4622cc30e6fbef38ed4b51 100644 (file)
@@ -18,7 +18,6 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
 #include <linux/mtd/partitions.h>
-#include <linux/config.h>
 #include <asm/io.h>
 #include <asm/ibm44x.h>
 #include <platforms/4xx/ocotea.h>
index dc37652700570e3c6899fb881f1269fc17e8d270..e6e391efbeb6925c30398e5eb8bc2879337aee9b 100644 (file)
@@ -8,7 +8,6 @@
  * $Id: omap-toto-flash.c,v 1.5 2005/11/07 11:14:27 gleixner Exp $
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index d6301f08906dffd0b769643a55a3281b13f2dcb6..7799a25a7f2ae9c55242b6e83682e19b3981723c 100644 (file)
@@ -18,7 +18,6 @@
 #include <linux/platform_device.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
-#include <linux/config.h>
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/physmap.h>
 #include <asm/io.h>
index 50b14033613f665554af3fc93168cfd126ab3709..ec8fdae1dd99c87fca4e2078a1ca7b1a81a08588 100644 (file)
@@ -13,7 +13,6 @@
  * or implied.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 5cefb015633ce896e2a08dc75269c93169496573..950bf1c578417f0d2ba3d5b035fd0adb8e5b99ac 100644 (file)
@@ -5,7 +5,6 @@
  *
  * $Id: sa1100-flash.c,v 1.51 2005/11/07 11:14:28 gleixner Exp $
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/ioport.h>
index 350286dc1d2eeaa0d8eedf39f3a095b51f38f231..7d0fcf8f4f338bcbd0667b9ddf064c6e07e644c0 100644 (file)
@@ -18,7 +18,6 @@
  * Both parts are JEDEC compatible.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index e8c130e1efd320aeb784d2f7fa50df9a1f7eff8e..9b50cfc355b113b411040b6d473a518ec5e92ccb 100644 (file)
@@ -25,7 +25,6 @@
  * For details see http://www.amd.com/products/epd/desiging/evalboards/18.elansc520/520_cdp_brief/index.html
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 97a8dfd69258188a29bea7afd3c64c08a594fbbe..dcfb85840d1e4c5d5fd355dc783b7f55aef75464 100644 (file)
@@ -53,7 +53,6 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
 #include <linux/mtd/cfi.h>
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/pci_ids.h>
 
index 331a15859d710df20354f143e5f34a98ae17e22e..7391fd544e86fc7351e46fb4efa209afe31fbb25 100644 (file)
@@ -8,7 +8,6 @@
 */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index c53c2c369c9d5dcc2df5aec29b26c48c3e6157ee..d76ceef453ce66169c6b02754ed19f26aa05db59 100644 (file)
@@ -16,7 +16,6 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
 #include <linux/mtd/partitions.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 
 static struct mtd_info *flash_mtd;
index c7ae9a515c1aa1a1d3161933db1e4cae904a9c07..58e5912bd381463ea971cbb53c9b7d0f0719ace8 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/types.h>
index a43517053e7cfe4819a51f0c1974ffc767ef8251..19578ba84ee8d934e0354fdb0adf80f61beaa8c0 100644 (file)
@@ -22,7 +22,6 @@
  * Thus, we choose CONFIG_MTD_CFI_I2 & CONFIG_MTD_CFI_B4 at
  * kernel configuration.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index a7422c200567d8afd583b201745b13db2c81a102..b47270e850bc78754ed876e2704f9355e0d87fec 100644 (file)
@@ -26,7 +26,6 @@
  * $Id: ts5500_flash.c,v 1.5 2005/11/07 11:14:28 gleixner Exp $
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index f7264dc2ac9bc0dab0c9c62e904f28e380d0dfdd..389fea28b9a6da2e05de4a0bf6be59a4c0fdfe1f 100644 (file)
@@ -10,7 +10,6 @@
 
 /****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/init.h>
index f46bec66150fe4ea89713e24405d33f45e06e26a..ec80eec376bfce79c6d383844a60865e07a2aec3 100644 (file)
@@ -20,7 +20,6 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
 #include <linux/mtd/partitions.h>
-#include <linux/config.h>
 #include <asm/io.h>
 #include <asm/ibm4xx.h>
 #include <platforms/4xx/walnut.h>
index 60c197ec455b87cf40b6ee20303fdb0fe3046610..ac5b8105b6efe69ca210571ffc2b098a7997b762 100644 (file)
@@ -17,7 +17,6 @@
 #include <asm/io.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
-#include <linux/config.h>
 #include <linux/mtd/partitions.h>
 
 #include <asm/immap_cpm2.h>
index e5c78463ebfd5361c38429c171720b0f1cef281b..04ed34694b147f4c691b046680d0d995186d496f 100644 (file)
@@ -7,7 +7,6 @@
  * (C) 1999-2003 David Woodhouse <dwmw2@infradead.org>
  */
 
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 9a4b59d925252a554c4840455b6e00455e6aa7df..fb8b4f7e48d3a14a295f5661b9014908f1110dd4 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/device.h>
 #include <linux/fs.h>
 #include <linux/init.h>
index 16a952dd486a90277580d0eb30493a7bb5fda458..168d3ba063c3637ca48373312271e59f897f4fb4 100644 (file)
@@ -6,7 +6,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 77a7123a5c56514b75de1e519a22916add1dd228..06a930372b7a5eb174d03872763612ecc0753adb 100644 (file)
@@ -16,7 +16,6 @@
 #include <linux/kernel.h>
 #include <linux/slab.h>
 #include <linux/list.h>
-#include <linux/config.h>
 #include <linux/kmod.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
index ebd64abc8be809ead329761205798c3a48fb60da..545ff252d81eb675dfa7c5bf349b212461ee8240 100644 (file)
@@ -25,7 +25,6 @@
  * $Id: nandsim.c,v 1.8 2005/03/19 15:33:56 dedekind Exp $
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/module.h>
index dc7573501d8c0ded5812f355741c369f72bffdf2..dd5cea8b4a7a2dc31b1429ce6a7ebe07c143ec7b 100644 (file)
@@ -11,7 +11,6 @@
 
 #define PRERELEASE
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <asm/errno.h>
index dc845f36fe49e001ceb5e8580916f7aa89d64b12..cbdae54f715f297d1de8bee584401d0d77d60dc5 100644 (file)
@@ -68,7 +68,6 @@
 /* Maximum events (Rx packets, etc.) to handle at each interrupt. */
 static int max_interrupt_work = 10;
 
-#include <linux/config.h>
 #include <linux/module.h>
 #ifdef CONFIG_MCA
 #include <linux/mca.h>
index 91d1c4c24d9b9616799fa3cc7c171ad51f139e76..ac60f3f62db8edfb80ad399f7c920af1f8d88e20 100644 (file)
@@ -57,7 +57,6 @@ static int max_interrupt_work = 20;
 #define RX_RING_SIZE   16
 #define PKT_BUF_SZ             1536    /* Size of each temporary Rx buffer. */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/isapnp.h>
 #include <linux/kernel.h>
index d2f808979a2b5a9a598f45310f6fdd9ef5905b95..45125db44177810ff04f7ac255de0a29f3ed2d37 100644 (file)
@@ -236,7 +236,6 @@ static int vortex_debug = VORTEX_DEBUG;
 static int vortex_debug = 1;
 #endif
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index d26dd6a7062dcd2e72cb05a973fe1e78962fb7b4..1d7af760c2b13b70ea57dacf9841f52d2d050eb5 100644 (file)
@@ -52,7 +52,6 @@
 #define DRV_RELDATE            "Mar 22, 2004"
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index ed2e3c03bc880678307b42a73b4fa61b005655c9..d21e98f5adbc8039de6fcd2aef4e4a12e830f7c1 100644 (file)
@@ -93,7 +93,6 @@
 #define DRV_VERSION    "0.9.27"
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/compiler.h>
index 8a9f7d61b9b1e51b161a61d3e176b108df403a10..7e2ca9571467c8e4d9f441c0147537b69371ec35 100644 (file)
@@ -40,7 +40,6 @@
 
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 51e39dcd06030846dc885ea0a63fe4866161bbca..a9a58f518f45cc28cdef4c71ba7c6d6b6708860f 100644 (file)
@@ -7,7 +7,6 @@
 #ifndef _8390_h
 #define _8390_h
 
-#include <linux/config.h>
 #include <linux/if_ether.h>
 #include <linux/ioport.h>
 #include <linux/skbuff.h>
index 60304f7e7e5b9703a6973a733cb452ff44517b18..a8c245a822611d39bbfc92ef60200d28e1bf3a7c 100644 (file)
@@ -27,7 +27,6 @@
  *             as published by the Free Software Foundation; either version
  *             2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
 #include <linux/trdevice.h>
index 71165ac0257a4deba97110e011f7fee23e0e247b..519390c033c3728ac6070ab543a1fec0d29e2086 100644 (file)
@@ -48,7 +48,6 @@
 #include <linux/skbuff.h>
 #include <linux/slab.h>
 #include <linux/string.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/crc32.h>
 #include <linux/zorro.h>
index 23ff22ba5d31ade17265123ed2444302e402de7b..c290b5ae63b2093ea2a453f2e31b9bc5dc0de619 100644 (file)
@@ -50,7 +50,6 @@
  *   Grant Grundler <grundler@cup.hp.com>: PCI write posting fixes.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/version.h>
index a97107023495656ddeff4e2e20070a5f0d346f26..62ec8ceee698f954ff8ab225ba0bf3d0aa141822 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef _ACENIC_H_
 #define _ACENIC_H_
 
-#include <linux/config.h>
 
 /*
  * Generate TX index update each time, when TX ring is closed.
index d7882dd783c80010a459fbc28be86cd0c1353dfb..ec146f60d77bb9a82190c1c3602f3fd85db2a9f0 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 /*
  * Declare these here even if Tigon I support is disabled to avoid
  * the compiler complaining about undefined symbols.
index d9ba8be72af804462735ef7a6facad667f3da765..c017c4f6b3b5a4c4b38445a7de1e204c93d2fdca 100644 (file)
@@ -69,7 +69,6 @@ Revision History:
 */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 9edaa183227a36afb5f15737055e015631055d12..1d01ac0000e46c0fe79b73d3664d6ceb1c758e39 100644 (file)
@@ -48,7 +48,6 @@ static const char *version =
  *       the driver figure it out.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 31cf8c9c947ff3d15468b6ce81675b795f7d23ff..b02005087c1b4b2212f3185cbfeb468a6c6c6e40 100644 (file)
@@ -24,7 +24,6 @@
  *      - Jay Schulist <jschlst@samba.org>
  */
 
-#include <linux/config.h>
 
 #ifdef CONFIG_COPS_DAYNA
 
index 4afb8e18ba654ed9e523831d5f9f94cdd898f407..c699b1ad31da1298f823f109eaab6da4da56d8ae 100644 (file)
@@ -23,7 +23,6 @@
  *      - Jay Schulist <jschlst@samba.org>
  */
  
-#include <linux/config.h>
 
 #ifdef CONFIG_COPS_TANGENT
 
index 1a44a79ed0644b19c68183beb7818e1c008cbf20..7f7dd450226a8f853224a987302a21b2bf24acc2 100644 (file)
@@ -23,7 +23,6 @@
  *      of the GNU General Public License, incorporated herein by reference.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index fabc0607b0f1d15a500b1abd6989507ac2777561..5a95005253fa1a104adb1b1321f147751f0c049e 100644 (file)
@@ -44,7 +44,6 @@
 #define VERSION "arcnet: v3.93 BETA 2000/04/29 - by Avery Pennarun et al.\n"
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/delay.h>
 #include <linux/netdevice.h>
index 613005a0285d6552e3955ed714bd611e3b2c5345..85493b7b924f5f7528538ffaf80e3bdf5ec0c5fb 100644 (file)
@@ -19,7 +19,6 @@
 
 #include <linux/module.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/mii.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
index e613cc289749d6a89ee595eb24b8285a95b41163..5d7929c79bce8743acf4cebdef6079358898d713 100644 (file)
@@ -35,7 +35,6 @@
        response to inb()s from other device probes!
 */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
index 038d5fcb15e67439bc23ce782eaf3b4beabe1751..55f6e3f65b535d1bd82f574df311487717ac7fd0 100644 (file)
@@ -35,7 +35,6 @@
  * 
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index bbca8ae8018c3718e0e41dd723f61d1712489791..6fad83f24c4f5d08880baecc266c3f9f2c2732b7 100644 (file)
@@ -7,7 +7,6 @@
  * May 1999, Al Viro: proper release of /proc/net/bmac entry, switched to
  * dynamic procfs inode.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
index 7635736cc791f6151c8f5f236050a51f430ebe9a..7e32d4ea71e22ff27473091079c9472fd0335f92 100644 (file)
@@ -9,7 +9,6 @@
  * Written by: Michael Chan  (mchan@broadcom.com)
  */
 
-#include <linux/config.h>
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
@@ -57,8 +56,8 @@
 
 #define DRV_MODULE_NAME                "bnx2"
 #define PFX DRV_MODULE_NAME    ": "
-#define DRV_MODULE_VERSION     "1.4.42"
-#define DRV_MODULE_RELDATE     "June 12, 2006"
+#define DRV_MODULE_VERSION     "1.4.43"
+#define DRV_MODULE_RELDATE     "June 28, 2006"
 
 #define RUN_AT(x) (jiffies + (x))
 
@@ -1676,7 +1675,7 @@ bnx2_tx_int(struct bnx2 *bp)
 
                tx_free_bd += last + 1;
 
-               dev_kfree_skb_irq(skb);
+               dev_kfree_skb(skb);
 
                hw_cons = bp->hw_tx_cons =
                        sblk->status_tx_quick_consumer_index0;
@@ -1824,7 +1823,7 @@ reuse_rx:
                if ((len > (bp->dev->mtu + ETH_HLEN)) &&
                        (ntohs(skb->protocol) != 0x8100)) {
 
-                       dev_kfree_skb_irq(skb);
+                       dev_kfree_skb(skb);
                        goto next_rx;
 
                }
@@ -3643,7 +3642,7 @@ bnx2_free_tx_skbs(struct bnx2 *bp)
                                skb_shinfo(skb)->frags[j].size,
                                PCI_DMA_TODEVICE);
                }
-               dev_kfree_skb_any(skb);
+               dev_kfree_skb(skb);
                i += j + 1;
        }
 
@@ -3669,7 +3668,7 @@ bnx2_free_rx_skbs(struct bnx2 *bp)
 
                rx_buf->skb = NULL;
 
-               dev_kfree_skb_any(skb);
+               dev_kfree_skb(skb);
        }
 }
 
@@ -3999,7 +3998,7 @@ bnx2_run_loopback(struct bnx2 *bp, int loopback_mode)
        udelay(5);
 
        pci_unmap_single(bp->pdev, map, pkt_size, PCI_DMA_TODEVICE);
-       dev_kfree_skb_irq(skb);
+       dev_kfree_skb(skb);
 
        if (bp->status_blk->status_tx_quick_consumer_index0 != bp->tx_prod) {
                goto loopback_test_done;
@@ -4541,7 +4540,7 @@ bnx2_close(struct net_device *dev)
        bnx2_netif_stop(bp);
        del_timer_sync(&bp->timer);
        if (bp->flags & NO_WOL_FLAG)
-               reset_code = BNX2_DRV_MSG_CODE_UNLOAD;
+               reset_code = BNX2_DRV_MSG_CODE_UNLOAD_LNK_DN;
        else if (bp->wol)
                reset_code = BNX2_DRV_MSG_CODE_SUSPEND_WOL;
        else
@@ -5128,6 +5127,16 @@ bnx2_set_rx_csum(struct net_device *dev, u32 data)
        return 0;
 }
 
+static int
+bnx2_set_tso(struct net_device *dev, u32 data)
+{
+       if (data)
+               dev->features |= NETIF_F_TSO | NETIF_F_TSO_ECN;
+       else
+               dev->features &= ~(NETIF_F_TSO | NETIF_F_TSO_ECN);
+       return 0;
+}
+
 #define BNX2_NUM_STATS 46
 
 static struct {
@@ -5445,7 +5454,7 @@ static struct ethtool_ops bnx2_ethtool_ops = {
        .set_sg                 = ethtool_op_set_sg,
 #ifdef BCM_TSO
        .get_tso                = ethtool_op_get_tso,
-       .set_tso                = ethtool_op_set_tso,
+       .set_tso                = bnx2_set_tso,
 #endif
        .self_test_count        = bnx2_self_test_count,
        .self_test              = bnx2_self_test,
@@ -5926,7 +5935,7 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
        dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
 #endif
 #ifdef BCM_TSO
-       dev->features |= NETIF_F_TSO;
+       dev->features |= NETIF_F_TSO | NETIF_F_TSO_ECN;
 #endif
 
        netif_carrier_off(bp->dev);
@@ -5968,7 +5977,7 @@ bnx2_suspend(struct pci_dev *pdev, pm_message_t state)
        netif_device_detach(dev);
        del_timer_sync(&bp->timer);
        if (bp->flags & NO_WOL_FLAG)
-               reset_code = BNX2_DRV_MSG_CODE_UNLOAD;
+               reset_code = BNX2_DRV_MSG_CODE_UNLOAD_LNK_DN;
        else if (bp->wol)
                reset_code = BNX2_DRV_MSG_CODE_SUSPEND_WOL;
        else
index 5845e334941b4f8e71ca80ad5c674bf7a7ffd5e9..658c5ee95c73ecdea4bd4c34c74e68e2b82b54bb 100644 (file)
@@ -4174,6 +4174,7 @@ struct fw_info {
 #define BNX2_DRV_MSG_CODE_PULSE                         0x06000000
 #define BNX2_DRV_MSG_CODE_DIAG                  0x07000000
 #define BNX2_DRV_MSG_CODE_SUSPEND_NO_WOL        0x09000000
+#define BNX2_DRV_MSG_CODE_UNLOAD_LNK_DN                 0x0b000000
 
 #define BNX2_DRV_MSG_DATA                       0x00ff0000
 #define BNX2_DRV_MSG_DATA_WAIT0                         0x00010000
index 8171cae066888c23d0ec22d0019bdda9353c840f..8b951238f3a278b4299cf88977bceb883b729c45 100644 (file)
@@ -33,7 +33,6 @@
 
 //#define BONDING_DEBUG 1
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 5a9bd95884bef0ebd35f85518c3a6c4f63acef05..cfe4dc3a93a3b8c1264ee03dd4516f3aa44dfbd4 100644 (file)
@@ -20,7 +20,6 @@
  * file called LICENSE.
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 565a54f1d06a1852bac76a8c317906bd04dbcac9..b89c7bb2c591a74ca700460d938183022018dece 100644 (file)
@@ -66,7 +66,6 @@
  * by default, the selective clear mask is set up to process rx packets.  
  */
 
-#include <linux/config.h>
 
 #include <linux/module.h>
 #include <linux/kernel.h>
index bf3e7b6a7a1898290635cfb134f6bce0016992ef..5d9dd14427c5f30ac27d777c684e0b7c3d5d0d66 100644 (file)
@@ -39,7 +39,6 @@
 #ifndef _CXGB_COMMON_H_
 #define _CXGB_COMMON_H_
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/netdevice.h>
 #include <linux/types.h>
index 7fe2638ae06d9b64748a0997cdf66f157a7280b3..c490a862e79c029350dcfc765dfb89199ae8bca6 100644 (file)
@@ -37,7 +37,6 @@
  ****************************************************************************/
 
 #include "common.h"
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/pci.h>
index 53efff6da78485352d41801da8833349c17e2766..87f94d939ff832a198a98bd9d26fc285238e8b2e 100644 (file)
@@ -39,7 +39,6 @@
 
 #include "common.h"
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/pci.h>
index 64105e4eaf31fec7aa643ff55338748fc05eb5ac..d3654fd71604408c3c4845ad515454cd8af94ef5 100644 (file)
  *
  */
 
-#include <linux/config.h>
 
 #include <linux/module.h>
 
index ef54ebeb29b85196ea8626a4597ec46437076912..47eecce35fa446e3a2bb91fd279ca855598896ca 100644 (file)
 
 /* Always include 'config.h' first in case the user wants to turn on
    or override something. */
-#include <linux/config.h>
 #include <linux/module.h>
 
 /*
index bd954aaa636f2490850e29aec57b9fb265f2dca8..968fe11a0bf0e061e610d3249d22ecfeb4e7f404 100644 (file)
@@ -14,7 +14,6 @@
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
    */
 
-#include <linux/config.h>
 
 #define PP_ChipID 0x0000       /* offset   0h -> Corp -ID              */
                                /* offset   2h -> Model/Product Number  */
index d3d958e7ac56bc55dce349c303244f48d006515f..2038ca7e49ceb7dc6ad702c6ce75acbe2d0959d8 100644 (file)
@@ -42,7 +42,6 @@
  *              bits. macro
  */
 
-#include <linux/config.h>
 #include <linux/crc32.h>
 #include <linux/delay.h>
 #include <linux/errno.h>
index e946c43d3b10ad23ec9a0deae5c536a53cc2cbaf..b1cbe99249c15afbfbd7ea4fe58fb505611e2f81 100644 (file)
     =========================================================================
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 038447fb5c5ee82ef17110189497e029c01d42fd..29778055223bf8e838c7fa9ece389d6db1a63731 100644 (file)
@@ -390,7 +390,7 @@ parse_eeprom (struct net_device *dev)
        for (i = 0; i < 6; i++)
                dev->dev_addr[i] = psrom->mac_addr[i];
 
-       /* Parse Software Infomation Block */
+       /* Parse Software Information Block */
        i = 0x30;
        psib = (u8 *) sromdata;
        do {
index dd8c15ac5c77b8cf5448feb9f2518a59ab8d5bfa..36d511729f7116549bdf560ee1df3c149f4b737c 100644 (file)
@@ -28,7 +28,6 @@
                        Alan Cox, 30th May 1994
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
index 93a286570923c523e118022a8024ddec68755843..a1d676a0df7c62bfd71397ba10f50320317318dd 100644 (file)
  *     - Stratus87247: protect MDI control register manipulations
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index 2bc34fbfa69c0ee93b7b17f277c6fd14e67d4712..3042d33e2d4d9458dbd6ab6ab869063c6eded0bd 100644 (file)
@@ -34,7 +34,6 @@
 #define _E1000_H_
 
 #include <linux/stddef.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <asm/byteorder.h>
index ecf5ad85a6847e32ac7ecb3d1eee398033cffc66..1e2fbbbb966e3baa6956a17654d4d7962e5c0ecb 100644 (file)
@@ -87,7 +87,6 @@ static int options[] = {-1, -1, -1, -1, -1, -1, -1, -1};
 /* Size of an pre-allocated Rx buffer: <Ethernet MTU> + slack.*/
 #define PKT_BUF_SZ             1536
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index a74b20715755d4ff5dd63f98aa57e53248c41b1e..33291bcf6d4cc917289184c73e77c4a15f6667ca 100644 (file)
@@ -97,7 +97,6 @@
 #define LOCKUP16 0
 #endif
   
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index ee34a16eb4e24b8feb2667b774d5627e8168a139..b160abed8dd7ec1b14f014ddeea0c18dd998a6c8 100644 (file)
@@ -114,7 +114,6 @@ static int rx_copybreak;
 #define TX_FIFO_THRESH 256
 #define RX_FIFO_THRESH 1               /* 0-3, 0==32, 64,96, or 3==128 bytes  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index db694c83298961ad4630e2764cf0f7f8833098e2..9b403003174410812b07d7acbf189a676130ac0a 100644 (file)
@@ -25,7 +25,6 @@
  * Copyright (c) 2004-2006 Macq Electronique SA.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 29c275e1d566f5c25c0d3adac39836a13d6bb540..790d9dbe42ddf127b4e9f6794d8b26cb60cdbb6c 100644 (file)
@@ -2,7 +2,6 @@
  * FEC instantatiation file for NETTA
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/sched.h>
index 7e433809713968b4f719ff280df017f436e073c7..282b1452c39a6fe795fd965da351a3d5d895939b 100644 (file)
@@ -10,7 +10,6 @@
  * Released under the GPL
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 3b44ac1a7bfe7b66d1ce5383d4e760086fa8603c..d3c16b85d9a41fa405b1f2da83ff144f08b521fd 100644 (file)
@@ -10,7 +10,6 @@
  * Released under the GPL
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 196298f33db8b31bb950ac30c855aa70204564bd..e96a93c94941c94ca56a89fe8284907c67f12db9 100644 (file)
@@ -15,7 +15,6 @@
  * kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 0cd07150bf4aeee6e3add86d7e6e5e23544c3288..b7e6e21725cbcdfff6f6029b32153173b380155a 100644 (file)
@@ -16,7 +16,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 95e2bb8dd7b415cacb3a770dc1dfc9e135e566d9..64e20982c1fedc66a136eeb72893a1055cc0fa2c 100644 (file)
@@ -12,7 +12,6 @@
  * kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 3dad69dfdb2ccd90c407837906d085fdca42cbf2..e09547077529c917bbdb318e0e455ddde363bb45 100644 (file)
@@ -12,7 +12,6 @@
  * kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index a772b286f96d842e8c3391a6b50f10254e976d0b..eaa24fab645fb5b3e906af00943fabd26005d6ec 100644 (file)
@@ -12,7 +12,6 @@
  * kind, whether express or implied.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 24a5e2e23d18ab8b0225a7fc3b33062bb99e2a3f..48f9cf83ab6f4e857aa0fbf30daa47f8ace08898 100644 (file)
@@ -13,7 +13,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index b3e192d612e5e83a85542051ada458f3b3553c8b..ae4a9c3bb393abc82aacfbed4ceb50040de4476f 100644 (file)
@@ -13,7 +13,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 218d31764c525414afc152d027569c10dd81c5e1..ebbbd6ca6204e28ba605cd980d8b6d5e1a408047 100644 (file)
@@ -64,7 +64,6 @@
  *  The driver then cleans up the buffer.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index 127c98cf33362b199c51c4a470f3a488ccdcdf28..f87bbc408dae33898680c3d118d6cc7e25220052 100644 (file)
@@ -22,7 +22,6 @@
 #ifndef __GIANFAR_H
 #define __GIANFAR_H
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index d69698c695ef5ed15e69d69a9d9b0efce41d3bc9..e0f505285e5088535d0d809a0e302324de827985 100644 (file)
@@ -15,7 +15,6 @@
  *  by reference.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index c6b725529af508352698a32bca989999bc977457..c92e65984fd03dabc618792d1e769669ce03c9cc 100644 (file)
@@ -16,7 +16,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index a6d5c43199cbfa6eeff4336e6d34db6df3ce292d..e8a18f18d08ce30eec37dd98e8042bfce1d43e9c 100644 (file)
@@ -19,7 +19,6 @@
  * Sysfs file creation and management
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index 395869c5ed3edc4e4751377615ea8a1f2db2806a..2a8331938b841f6af25006e544f2f2a639b268e1 100644 (file)
@@ -27,7 +27,6 @@
 #ifndef _GT96100ETH_H
 #define _GT96100ETH_H
 
-#include <linux/config.h>
 #include <asm/galileo-boards/gt96100.h>
 
 #define dbg(lvl, format, arg...) \
index d12605f0ac7c6e0f4b01ed0558d61a47c4037008..86b3bb9bec2d38727922fda410b58f73f9019fde 100644 (file)
@@ -12,7 +12,6 @@
  *             Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/system.h>
 #include <asm/uaccess.h>
index cb43a9d28774fa8886dbfed420cc69c13312df74..0641f54fc6389d622c4e971a4da0a4083943928e 100644 (file)
@@ -54,7 +54,6 @@
  *     BPQ   004       Joerg(DL1BKE)           Fixed to not lock up on ifconfig.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
index 3ebbbe56b6e94be8c9fd7ec3be2b7d3486f7c51d..d8715b200c17bfcdef02ee8aa5c8f2358a4bcecb 100644 (file)
@@ -16,7 +16,6 @@
  * Copyright (C) 2004, 05 Ralf Baechle DL5RB <ralf@linux-mips.org>
  * Copyright (C) 2004, 05 Thomas Osterried DL9SAU <thomas@x-berg.in-berlin.de>
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/system.h>
 #include <linux/bitops.h>
index 5927784df3f9373a035e4003c3758c9d56d44b3c..b9b10caa031cbd3cc75575e1d301e393a4e17ff0 100644 (file)
 
 /* ----------------------------------------------------------------------- */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
index b49884048caa29df1cb6f09764e1528a0d99c79b..dd2f11c98530e4d5b8e39be445bec4d2c4007b31 100644 (file)
@@ -42,7 +42,6 @@
 
 /*****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/net.h>
index c2dae6092c4c44a67703d4b0bdc486cc642a26f1..97ed22bb4320c0e593fae8e02da5d06aabc1b653 100644 (file)
@@ -20,7 +20,6 @@
 #ifndef __IBM_EMAC_H_
 #define __IBM_EMAC_H_
 
-#include <linux/config.h>
 #include <linux/types.h>
 
 /* This is a simple check to prevent use of this driver on non-tested SoCs */
index 7e49522b8b3c6a10cc5c75070edb378d1c935658..82468e2dc7991dfc386ccae6d96ccfba8aa36f65 100644 (file)
@@ -19,7 +19,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index f61273b2e94fea4031187c98dc1d6b16209d4c49..dabb94afeb98a63a9ef0fd080b4dbf3b8a43e3a3 100644 (file)
@@ -20,7 +20,6 @@
 #ifndef __IBM_EMAC_CORE_H_
 #define __IBM_EMAC_CORE_H_
 
-#include <linux/config.h>
 #include <linux/netdevice.h>
 #include <linux/dma-mapping.h>
 #include <asm/ocp.h>
index c7e1ecfa08fe34aec91cac603dd34fbcedd2cdad..c3645908034db3af5ea0c1235e15a8322242a942 100644 (file)
@@ -12,7 +12,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index e85fbe0a8da9e5c66b4a7c0625f959b66b5f516e..5761389495d008c8cf750aad0fc0dc3d7ed379c7 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef __IBM_EMAC_DEBUG_H_
 #define __IBM_EMAC_DEBUG_H_
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include "ibm_emac_core.h"
 #include "ibm_emac_mal.h"
index da88d43081cc1e10348dee7372f5ecef5b50bef6..af50e7b2e0d7f998bcb9cf5f42d728366bc384e8 100644 (file)
@@ -19,7 +19,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 2a2d3b24b0370c099d7c1a67850220853fb54ffa..f73f10a0a56217c13f378dd5466209f33e2d73d4 100644 (file)
@@ -19,7 +19,6 @@
 #ifndef __IBM_EMAC_MAL_H_
 #define __IBM_EMAC_MAL_H_
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/list.h>
 #include <linux/netdevice.h>
index 67935dd33a6578788b0062122b69473cbc6e1fc8..4a97024061e530f84f3c2cac3d4015d8925e2086 100644 (file)
@@ -12,7 +12,6 @@
  * (c) 2004-2005, Eugene Surovegin <ebs@ebshome.net>
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index f0b1ffb2dbbf1638e8f2fdbb14837a77ec4fa30f..53d281cb9a16a3eb67c48a90611ddf57b8185584 100644 (file)
@@ -16,7 +16,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/ethtool.h>
 #include <asm/io.h>
index 7f03d536c9a3e7f7d1f934eaec93f1cb93dbd2e7..94abde55e2e9fde1a930de8fe748568503b9aa59 100644 (file)
@@ -21,7 +21,6 @@
 #ifndef _IBM_EMAC_RGMII_H_
 #define _IBM_EMAC_RGMII_H_
 
-#include <linux/config.h>
 
 /* RGMII bridge */
 struct rgmii_regs {
index af08afc22f9f4385f7eb5966d44d116aa6b97c91..e287b451bb44f66a4449ec1bcb36b3e9e067d106 100644 (file)
@@ -13,7 +13,6 @@
  * Free Software Foundation;  either version 2 of the  License, or (at your
  * option) any later version.
  */
-#include <linux/config.h>
 #include <asm/io.h>
 
 #include "ibm_emac_core.h"
index 9299b5dd7eb1d3c0f699bead79abe016deaa9b1a..38153945a2402dde37939983dad98bd7372a5a27 100644 (file)
@@ -17,7 +17,6 @@
 #ifndef _IBM_EMAC_TAH_H
 #define _IBM_EMAC_TAH_H
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/ocp.h>
 
index e129e0aaa045512f26e84a18def908225e1843b7..37dc8f3428688896df77719162c836e37e344bc1 100644 (file)
@@ -16,7 +16,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/ethtool.h>
 #include <asm/io.h>
index 92c8544107537d34d59ad595272463d87e0ba10f..972e3a44a09ffe7dfbfbd5d25c0e3f7d8c2c18d9 100644 (file)
@@ -19,7 +19,6 @@
 #ifndef _IBM_EMAC_ZMII_H_
 #define _IBM_EMAC_ZMII_H_
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <asm/ocp.h>
 
index 4c2e7279ba347eaab36af160de623cda697d17cf..0464e78f733ad86ccecea99f3a18306544f1cffe 100644 (file)
@@ -33,7 +33,6 @@
   - possibly remove procfs support
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/errno.h>
index 2e222ef91e224892c675766831fddc851e40f017..3a42afab50362983fc2b393b191757d59f5d5c21 100644 (file)
@@ -27,7 +27,6 @@
 */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
index e76e6e7be0b1b20c46990df26d55b81bc0f4bf9b..dbf67750d89918849298e82fb4e4b3cec4368ec0 100644 (file)
@@ -30,7 +30,6 @@
 #define IOC3_NAME      "ioc3-eth"
 #define IOC3_VERSION   "2.6.3-3"
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/delay.h>
 #include <linux/kernel.h>
index d2ce4896abff24605d8b4ab37cf221f6e78f8107..e9e6d99a9add263619e2278f756b59ab29709aa4 100644 (file)
@@ -350,7 +350,7 @@ config TOSHIBA_FIR
 
 config AU1000_FIR
        tristate "Alchemy Au1000 SIR/FIR"
-       depends on MIPS_AU1000 && IRDA
+       depends on SOC_AU1000 && IRDA
 
 config SMC_IRCC_FIR
        tristate "SMSC IrCC (EXPERIMENTAL)"
index e6b1985767c2f85498b87926a209bc27f62e3151..7b2b4135bb237d3a9392fb91d63badc8e8c46862 100644 (file)
@@ -18,7 +18,6 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/init.h>
index 754297fc8f224f086fd52fe8597969576bb34001..47f6f64d604c980b2c5a553a5500a01fca4b1b78 100644 (file)
@@ -101,7 +101,7 @@ static int transceiver_type = MCS_TSC_VISHAY;
 module_param(transceiver_type, int, 0444);
 MODULE_PARM_DESC(transceiver_type, "IR transceiver type, see mcs7780.h.");
 
-struct usb_driver mcs_driver = {
+static struct usb_driver mcs_driver = {
        .name = "mcs7780",
        .probe = mcs_probe,
        .disconnect = mcs_disconnect,
index e1aa9910503bf08bf844f8327f26a5419eb9b939..afb19e8d95c8dbcd5b040ac1cbf5623959d0011e 100644 (file)
@@ -12,7 +12,6 @@
  * Infra-red driver (SIR/FIR) for the PXA2xx embedded microprocessor
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/init.h>
index f530686bd09f80fc374a2d4c5d2bcb95e7c44a09..8d5a288d7976a249cc97c8a6d7f725191a19d9b2 100644 (file)
@@ -18,7 +18,6 @@
  *     power_leve:level        - set the transmitter power level
  *     tx_lpm:0|1              - set transmit low power mode
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/types.h>
index d70b9e8d6e6054208216efb7ff9f88b1e50d7970..b9f28b14b3aee58877b872d8aedd3e7faca304b5 100644 (file)
@@ -21,7 +21,6 @@
  *
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
  
 #define DRIVER_NAME            "vlsi_ir"
index 93394d76587ab749bdd1adb7b22b03fb3e9aaec0..cdc14401cdbeb6531941afcca376da99bb1769ca 100644 (file)
@@ -56,7 +56,6 @@
  * number of packets outstanding to a remote partition at a time.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/errno.h>
index a83ef28dadb0c0832ee68e3fd7b3854fe94f4dc9..82b67af54c941ab5224a6c0ff7cbae2b700f40e1 100644 (file)
@@ -30,7 +30,6 @@
 #define _IXGB_H_
 
 #include <linux/stddef.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <asm/byteorder.h>
index 3595e107df22ae0e408ddfe0aea27049e602d409..7dea5b95012c303a42a16a5d17fca66ceb42efb2 100644 (file)
@@ -9,7 +9,6 @@
  * (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/delay.h>
 #include <asm/io.h>
index b67f586d7392ab199e29181517d18af00cc9a8e1..d3f4235c585d42d8c7b5ac2cc7684a59b6aee8c6 100644 (file)
@@ -9,7 +9,6 @@
  * (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
index 48a3a891d3a42affde88c395c947efe4b07459df..9ec38eebfb5629fed388f25347cd2501bfe1f5e7 100644 (file)
@@ -11,7 +11,6 @@
  * License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <asm/hardware.h>
index fbc2d21020f4ee9ac2cca49a5b3b3d7764a9a9fe..99229a0456d95b552ba3e5e80c3bb4bca19ef644 100644 (file)
@@ -9,7 +9,6 @@
  * (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
index 5224651c9aac30e3ab308286c7d01f93c987ee79..e08d3f9863b8d28fd0d797941da479bcd2453e71 100644 (file)
@@ -9,7 +9,6 @@
  * (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/delay.h>
 #include <linux/netdevice.h>
index 77792b28602787e342f8b9e1ea7bfc1aed5f9db6..f2c0bf89f0c74e5d894e43c6bef918b479f71bea 100644 (file)
@@ -5,7 +5,6 @@
  * Copyright (C) 1996 Paul Mackerras.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
index 4262c1da6d4a883d1fc761f39e06b5629570e2d0..33c5fafdbbd3f2cfae431b9fa03d15f172df0a9b 100644 (file)
@@ -258,7 +258,7 @@ struct pkt_info {
        struct sk_buff *return_info;    /* User resource return information */
 };
 
-/* Ethernet port specific infomation */
+/* Ethernet port specific information */
 
 struct mv643xx_mib_counters {
        u64 good_octets_received;
index d9f616fea3d9a3c9ad637f0904d327e1fb7efbde..19981065efb437507048c91b9eeac514f4604c3f 100644 (file)
@@ -7,7 +7,6 @@ static char version[] =
         "myri_sbus.c:v2.0 June 23, 2006 David S. Miller (davem@davemloft.net)\n";
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 5657049c216041faea5c59f61e37898643f14447..438c63f940b9a27e129005f445d179d92aaf78ce 100644 (file)
        * big endian support with CFG:BEM instead of cpu_to_le32
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 706aed7d717f5ec5200a0287476c446cc7e8a901..deedd7b2af5d372bc6c581a5b68daa5b56e0e862 100644 (file)
@@ -96,7 +96,6 @@
 //#define dprintk              printk
 #define dprintk(x...)          do { } while (0)
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/types.h>
index a7bb54df75a89e3bb5d2b0bf9fa348ae3a352f34..978b95afc7216d6dc83c5af971b536085a14fe2d 100644 (file)
@@ -85,7 +85,6 @@ IVc. Errata
 
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
index 441de824ab6baeb0b7b1cfffd4f1981f5b1a3774..48434d7924ebaa2943d0475f49028dc30c9b95cb 100644 (file)
@@ -387,7 +387,10 @@ static int com20020_resume(struct pcmcia_device *link)
 }
 
 static struct pcmcia_device_id com20020_ids[] = {
-       PCMCIA_DEVICE_PROD_ID12("Contemporary Control Systems, Inc.", "PCM20 Arcnet Adapter", 0x59991666, 0x95dfffaf),
+       PCMCIA_DEVICE_PROD_ID12("Contemporary Control Systems, Inc.",
+                       "PCM20 Arcnet Adapter", 0x59991666, 0x95dfffaf),
+       PCMCIA_DEVICE_PROD_ID12("SoHard AG",
+                       "SH ARC PCMCIA", 0xf8991729, 0x69dff0c7),
        PCMCIA_DEVICE_NULL
 };
 MODULE_DEVICE_TABLE(pcmcia, com20020_ids);
index 7d8d534255c07f3a53955361b1a1791848362ee3..3efb715c28dcc6f3c45417bba10d71cbf6bab354 100644 (file)
@@ -13,7 +13,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index 5e9002e444c52ddc35838e717091388da7d433eb..aa7983f55838b5c844cebccb6f4a8bb5bfe4257f 100644 (file)
@@ -13,7 +13,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index 3f702c503afe9377aeddb835c9c9eb7c8707665a..69d2325f848c7ee55690f3dc7074cd7bd9142726 100644 (file)
@@ -13,7 +13,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index a2d6386d13bcb187e2473ebeb9856108d7fb704d..0ad253282d0d0c8388503efcf7d7e6e9304fbb60 100644 (file)
@@ -13,7 +13,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index 1b236bdf6b928d0dafa81c64ddcd3ac679c32e6c..1dde390c164d9952e0324582a1f5e6c80bd64b6d 100644 (file)
@@ -13,7 +13,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index 33cec2dab942559f1a4e731f630688bf2ab11a1c..44bcd3eb2b8370126407c1692cea340757e4cd56 100644 (file)
@@ -14,7 +14,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index 7da0e3dd5fe3ee44c5830761a77f7a1979e4a203..1bc1e032c5d6c9654912b8b6cdef51658b88cb7d 100644 (file)
@@ -14,7 +14,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index 65d995b02b25249d1fcdc18f6e3dd3c636c27266..2b50e1739aa54deaa3ebae7105d3ea866769b377 100644 (file)
@@ -13,7 +13,6 @@
  * option) any later version.
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
index 425ff5b117f1c3e2da4338ee44e9dbce25f318fe..0ec6e9d57b9499d438c9cf1838a212238e261a09 100644 (file)
@@ -22,7 +22,6 @@
  * ==FILEVERSION 20041108==
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/kmod.h>
index 1985d1b57c45360b8a889430792c6934a0120e51..51ff9a9d1bb5fb8ad43c12f19660115d7aeb013a 100644 (file)
@@ -43,7 +43,6 @@
  *                    deprecated in 2.6
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/version.h>
index 19c2df9c86fe9bc6902dc306ae0ef691505e746f..757c542ac40a27da6a32a522f1be4a329407abf4 100644 (file)
@@ -28,7 +28,6 @@
 #define RX_DMA_SKBUFF 1
 #define PKT_COPY_THRESHOLD 512
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/errno.h>
index 10baae55953a40afdb45bd71d1e75bb2972aff6f..2c3c91ebd99f01c95d7d827460f5225c0fe401b0 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef _RRUNNER_H_
 #define _RRUNNER_H_
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 
 #if ((BITS_PER_LONG != 32) && (BITS_PER_LONG != 64))
index 3defe5d4f7d3ea19004b21d39081e2a9c0b10572..001344c0763ed3eadba132cc37e6e6996145d0ef 100644 (file)
@@ -44,7 +44,6 @@
  *     aggregated as a single large packet
  ************************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/errno.h>
@@ -3960,7 +3959,7 @@ static int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
        txdp->Control_2 = 0;
 #ifdef NETIF_F_TSO
        mss = skb_shinfo(skb)->gso_size;
-       if (skb_shinfo(skb)->gso_type == SKB_GSO_TCPV4) {
+       if (skb_shinfo(skb)->gso_type & (SKB_GSO_TCPV4 | SKB_GSO_TCPV6)) {
                txdp->Control_1 |= TXD_TCP_LSO_EN;
                txdp->Control_1 |= TXD_TCP_LSO_MSS(mss);
        }
@@ -3980,7 +3979,7 @@ static int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
        }
 
        frg_len = skb->len - skb->data_len;
-       if (skb_shinfo(skb)->gso_type == SKB_GSO_UDPV4) {
+       if (skb_shinfo(skb)->gso_type == SKB_GSO_UDP) {
                int ufo_size;
 
                ufo_size = skb_shinfo(skb)->gso_size;
@@ -4009,7 +4008,7 @@ static int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
        txdp->Host_Control = (unsigned long) skb;
        txdp->Control_1 |= TXD_BUFFER0_SIZE(frg_len);
 
-       if (skb_shinfo(skb)->gso_type == SKB_GSO_UDPV4)
+       if (skb_shinfo(skb)->gso_type == SKB_GSO_UDP)
                txdp->Control_1 |= TXD_UFO_EN;
 
        frg_cnt = skb_shinfo(skb)->nr_frags;
@@ -4024,12 +4023,12 @@ static int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
                    (sp->pdev, frag->page, frag->page_offset,
                     frag->size, PCI_DMA_TODEVICE);
                txdp->Control_1 = TXD_BUFFER0_SIZE(frag->size);
-               if (skb_shinfo(skb)->gso_type == SKB_GSO_UDPV4)
+               if (skb_shinfo(skb)->gso_type == SKB_GSO_UDP)
                        txdp->Control_1 |= TXD_UFO_EN;
        }
        txdp->Control_1 |= TXD_GATHER_CODE_LAST;
 
-       if (skb_shinfo(skb)->gso_type == SKB_GSO_UDPV4)
+       if (skb_shinfo(skb)->gso_type == SKB_GSO_UDP)
                frg_cnt++; /* as Txd0 was used for inband header */
 
        tx_fifo = mac_control->tx_FIFO_start[queue];
@@ -4043,7 +4042,7 @@ static int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
        if (mss)
                val64 |= TX_FIFO_SPECIAL_FUNC;
 #endif
-       if (skb_shinfo(skb)->gso_type == SKB_GSO_UDPV4)
+       if (skb_shinfo(skb)->gso_type == SKB_GSO_UDP)
                val64 |= TX_FIFO_SPECIAL_FUNC;
        writeq(val64, &tx_fifo->List_Control);
 
@@ -7020,6 +7019,9 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
                dev->features |= NETIF_F_HIGHDMA;
 #ifdef NETIF_F_TSO
        dev->features |= NETIF_F_TSO;
+#endif
+#ifdef NETIF_F_TSO6
+       dev->features |= NETIF_F_TSO6;
 #endif
        if (sp->device_type & XFRAME_II_DEVICE) {
                dev->features |= NETIF_F_UFO;
index 3203732a668d81357353dd0e1c19511dadeef02c..c43f5217970833278ce36f80894fff52cf6cd2c3 100644 (file)
@@ -652,7 +652,7 @@ typedef struct fifo_info {
        nic_t *nic;
 }fifo_info_t;
 
-/* Infomation related to the Tx and Rx FIFOs and Rings of Xena
+/* Information related to the Tx and Rx FIFOs and Rings of Xena
  * is maintained in this structure.
  */
 typedef struct mac_info {
index f2be9f83f09172b7a02ab530f3dc7d4b518ffe27..c7b5f0004e54fd5983ba135c0f8a183dfea21a0f 100644 (file)
@@ -31,7 +31,6 @@
 #include <linux/etherdevice.h>
 #include <linux/skbuff.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/bitops.h>
 #include <asm/processor.h>             /* Processor type for cache alignment. */
 #include <asm/io.h>
index 88e212043a43969cd0b9ea1447fe7265f10deb58..c7832e69f1776b02e0958f4a06a300f07ade5edd 100644 (file)
@@ -69,7 +69,6 @@
  *                              2000/03 Andi Kleen
  */
  
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/fcntl.h>
index 17786056c66a9ebbc10b0322b3903fc86e8986df..1e662aaebf84a3c32c624d67f18b49bbc053a9ba 100644 (file)
@@ -22,7 +22,7 @@
  ******************************************************************************/
 
 /*
-       Please refer skvpd.txt for infomation how to include this module
+       Please refer skvpd.txt for information how to include this module
  */
 static const char SysKonnectFileId[] =
        "@(#)$Id: skvpd.c,v 1.37 2003/01/13 10:42:45 rschmidt Exp $ (C) SK";
index df716cd5784a8028feac830603b4d3b177b6ed8e..638cf0283bc402be20f1499aed914751c3d84591 100644 (file)
@@ -13,7 +13,7 @@
  ******************************************************************************/
 
 /*
- * Synchronous Bandwith Allocation (SBA) structs
+ * Synchronous Bandwidth Allocation (SBA) structs
  */
  
 #ifndef _SBA_
index 1608efab4e3de39c914dfb964dfbd767a2ccea4b..82df13be3d4070be79dbcb414f4a34db11e0d45a 100644 (file)
@@ -24,7 +24,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/in.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index e122007e16da08b599d5644a503f34b2f359758f..3f1b0fef13e7ca274b68a112f21bdd09af2c8b64 100644 (file)
@@ -23,7 +23,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/crc32.h>
 #include <linux/kernel.h>
 #include <linux/version.h>
index c6fbb1ede0ed23e66dbd6a1941a145689622cef6..3a1b7131681cd5fa5c9313cdde005d0b0faa76fa 100644 (file)
@@ -50,7 +50,6 @@
  *     driver code belonging close to PPP and SLIP
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index b2e18d28850d6b45e27916553408ff5b23c580a9..1588cb7f6c835ecd2bed3c9204fe7230cfe9a09e 100644 (file)
@@ -55,7 +55,6 @@
  */
 
 #define SL_CHECK_TRANSMIT
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 
index ab3efe66a642d0c363912251f4650a0fe0246dd1..29d87dd45a24ea3e77cc4b72503f66d7832667ac 100644 (file)
@@ -22,7 +22,6 @@
 #ifndef _LINUX_SLIP_H
 #define _LINUX_SLIP_H
 
-#include <linux/config.h>
 
 #if defined(CONFIG_INET) && defined(CONFIG_SLIP_COMPRESSED)
 # define SL_INCLUDE_CSLIP
index 5b4e8529d4ab756f19d46de14cb755a23801a03a..45449353a95808161aa35aeb30609e52b21cda07 100644 (file)
@@ -57,7 +57,6 @@
 static const char version[] =
        "smc-ultra.c:v2.02 2/3/98 Donald Becker (becker@cesdis.gsfc.nasa.gov)\n";
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 0e9833adf9feafe09303db8c73f38adde2a69ea9..3d8dcb6c8758f32eff96fcaf905374a6105d6427 100644 (file)
@@ -66,7 +66,6 @@ static const char version[] =
 #endif
 
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index cede969a8baae88fcfc0a8083a049999d84cb11d..7f5c4ebcc17a4ab4ced55fc0b814bf03fa61f469 100644 (file)
@@ -22,7 +22,6 @@
 #ifndef SONIC_H
 #define SONIC_H
 
-#include <linux/config.h>
 
 /*
  * SONIC register offsets
index 394339d5e87c0494c300fad7f60eaf9984e8c78f..e0b72676922c14bf5131388b68fdf685b7b47299 100644 (file)
@@ -21,7 +21,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/compiler.h>
 #include <linux/crc32.h>
 #include <linux/delay.h>
index c158eedc78135d60fd1b01456f10aaa394238bf2..f91be95356a4bac7430bf48cf216126bb9ddf35c 100644 (file)
@@ -146,7 +146,6 @@ TODO:       - fix forced speed/duplexing code (broken a long time ago, when
 #define DRV_VERSION    "1.03+LK1.4.2.1"
 #define DRV_RELDATE    "October 3, 2005"
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
index b6dfdf8f44dac25b83f9c5cd82775cb4bb96853b..74228348995d2425b9c6dbca7fb594b64baae40b 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 1999 kaz Kojima
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 9282b4b0c0229e0f86b6f779c02d52189e34f8e8..278c7cb222162dc939c28a9594ef58615db90ca7 100644 (file)
@@ -19,7 +19,6 @@
  *    of darwin, still need to reverse engineer that
  */
 
-#include <linux/config.h>
 
 #include <linux/module.h>
 
index c33ead3470db718886007204291a5fdc0861ad2b..d85b83204f6b7c6acf0e534e207229ce980c5b16 100644 (file)
@@ -13,7 +13,6 @@
  *     argument : macaddr=0x00,0x10,0x20,0x30,0x40,0x50
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
@@ -2523,7 +2522,7 @@ static struct ethtool_ops hme_ethtool_ops = {
 static int hme_version_printed;
 
 #ifdef CONFIG_SBUS
-void __init quattro_get_ranges(struct quattro *qp)
+void __devinit quattro_get_ranges(struct quattro *qp)
 {
        struct sbus_dev *sdev = qp->quattro_dev;
        int err;
@@ -2539,7 +2538,7 @@ void __init quattro_get_ranges(struct quattro *qp)
        qp->nranges = (err / sizeof(struct linux_prom_ranges));
 }
 
-static void __init quattro_apply_ranges(struct quattro *qp, struct happy_meal *hp)
+static void __devinit quattro_apply_ranges(struct quattro *qp, struct happy_meal *hp)
 {
        struct sbus_dev *sdev = hp->happy_dev;
        int rng;
@@ -2566,7 +2565,7 @@ static void __init quattro_apply_ranges(struct quattro *qp, struct happy_meal *h
  *
  * Return NULL on failure.
  */
-static struct quattro * __init quattro_sbus_find(struct sbus_dev *goal_sdev)
+static struct quattro * __devinit quattro_sbus_find(struct sbus_dev *goal_sdev)
 {
        struct sbus_dev *sdev;
        struct quattro *qp;
@@ -2618,7 +2617,7 @@ static void __init quattro_sbus_register_irqs(void)
        }
 }
 
-static void __devexit quattro_sbus_free_irqs(void)
+static void quattro_sbus_free_irqs(void)
 {
        struct quattro *qp;
 
@@ -2662,7 +2661,7 @@ static struct quattro * __init quattro_pci_find(struct pci_dev *pdev)
 #endif /* CONFIG_PCI */
 
 #ifdef CONFIG_SBUS
-static int __init happy_meal_sbus_probe_one(struct sbus_dev *sdev, int is_qfe)
+static int __devinit happy_meal_sbus_probe_one(struct sbus_dev *sdev, int is_qfe)
 {
        struct device_node *dp = sdev->ofdev.node;
        struct quattro *qp = NULL;
index 9b7ccaeeee89f2bc87229c0d70186946b4049297..90f446db9ba21cac02d0f2fec0c5bf8ad8c3e650 100644 (file)
@@ -8,7 +8,6 @@
 #ifndef _SUNHME_H
 #define _SUNHME_H
 
-#include <linux/config.h>
 #include <linux/pci.h>
 
 /* Happy Meal global registers. */
index 2c239ab63a80e1877df202cb88fd8116a2bd9d87..5b0b60f4d20ecf452fcc2b7ecb82718ee8343fb2 100644 (file)
@@ -71,7 +71,6 @@
 
 static char lancestr[] = "LANCE";
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 35f931638750cd333d376e0928ad5fd844e39866..953255e926339b5509176a9bf339b39dc0e3afd3 100644 (file)
@@ -15,7 +15,6 @@
  *     notice is accompanying it.
  */
 
-#include <linux/config.h>
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
@@ -69,8 +68,8 @@
 
 #define DRV_MODULE_NAME                "tg3"
 #define PFX DRV_MODULE_NAME    ": "
-#define DRV_MODULE_VERSION     "3.60"
-#define DRV_MODULE_RELDATE     "June 17, 2006"
+#define DRV_MODULE_VERSION     "3.61"
+#define DRV_MODULE_RELDATE     "June 29, 2006"
 
 #define TG3_DEF_MAC_MODE       0
 #define TG3_DEF_RX_MODE                0
@@ -3195,7 +3194,7 @@ static int tg3_vlan_rx(struct tg3 *tp, struct sk_buff *skb, u16 vlan_tag)
  */
 static int tg3_rx(struct tg3 *tp, int budget)
 {
-       u32 work_mask;
+       u32 work_mask, rx_std_posted = 0;
        u32 sw_idx = tp->rx_rcb_ptr;
        u16 hw_idx;
        int received;
@@ -3222,6 +3221,7 @@ static int tg3_rx(struct tg3 *tp, int budget)
                                                  mapping);
                        skb = tp->rx_std_buffers[desc_idx].skb;
                        post_ptr = &tp->rx_std_ptr;
+                       rx_std_posted++;
                } else if (opaque_key == RXD_OPAQUE_RING_JUMBO) {
                        dma_addr = pci_unmap_addr(&tp->rx_jumbo_buffers[desc_idx],
                                                  mapping);
@@ -3309,6 +3309,15 @@ static int tg3_rx(struct tg3 *tp, int budget)
 
 next_pkt:
                (*post_ptr)++;
+
+               if (unlikely(rx_std_posted >= tp->rx_std_max_post)) {
+                       u32 idx = *post_ptr % TG3_RX_RING_SIZE;
+
+                       tw32_rx_mbox(MAILBOX_RCV_STD_PROD_IDX +
+                                    TG3_64BIT_REG_LOW, idx);
+                       work_mask &= ~RXD_OPAQUE_RING_STD;
+                       rx_std_posted = 0;
+               }
 next_pkt_nopost:
                sw_idx++;
                sw_idx %= TG3_RX_RCB_RING_SIZE(tp);
@@ -3870,6 +3879,40 @@ out_unlock:
        return NETDEV_TX_OK;
 }
 
+#if TG3_TSO_SUPPORT != 0
+static int tg3_start_xmit_dma_bug(struct sk_buff *, struct net_device *);
+
+/* Use GSO to workaround a rare TSO bug that may be triggered when the
+ * TSO header is greater than 80 bytes.
+ */
+static int tg3_tso_bug(struct tg3 *tp, struct sk_buff *skb)
+{
+       struct sk_buff *segs, *nskb;
+
+       /* Estimate the number of fragments in the worst case */
+       if (unlikely(TX_BUFFS_AVAIL(tp) <= (skb_shinfo(skb)->gso_segs * 3))) {
+               netif_stop_queue(tp->dev);
+               return NETDEV_TX_BUSY;
+       }
+
+       segs = skb_gso_segment(skb, tp->dev->features & ~NETIF_F_TSO);
+       if (unlikely(IS_ERR(segs)))
+               goto tg3_tso_bug_end;
+
+       do {
+               nskb = segs;
+               segs = segs->next;
+               nskb->next = NULL;
+               tg3_start_xmit_dma_bug(nskb, tp->dev);
+       } while (segs);
+
+tg3_tso_bug_end:
+       dev_kfree_skb(skb);
+
+       return NETDEV_TX_OK;
+}
+#endif
+
 /* hard_start_xmit for devices that have the 4G bug and/or 40-bit bug and
  * support TG3_FLG2_HW_TSO_1 or firmware TSO only.
  */
@@ -3906,7 +3949,7 @@ static int tg3_start_xmit_dma_bug(struct sk_buff *skb, struct net_device *dev)
        mss = 0;
        if (skb->len > (tp->dev->mtu + ETH_HLEN) &&
            (mss = skb_shinfo(skb)->gso_size) != 0) {
-               int tcp_opt_len, ip_tcp_len;
+               int tcp_opt_len, ip_tcp_len, hdr_len;
 
                if (skb_header_cloned(skb) &&
                    pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) {
@@ -3917,11 +3960,16 @@ static int tg3_start_xmit_dma_bug(struct sk_buff *skb, struct net_device *dev)
                tcp_opt_len = ((skb->h.th->doff - 5) * 4);
                ip_tcp_len = (skb->nh.iph->ihl * 4) + sizeof(struct tcphdr);
 
+               hdr_len = ip_tcp_len + tcp_opt_len;
+               if (unlikely((ETH_HLEN + hdr_len) > 80) &&
+                            (tp->tg3_flags2 & TG3_FLG2_HW_TSO_1_BUG))
+                       return (tg3_tso_bug(tp, skb));
+
                base_flags |= (TXD_FLAG_CPU_PRE_DMA |
                               TXD_FLAG_CPU_POST_DMA);
 
                skb->nh.iph->check = 0;
-               skb->nh.iph->tot_len = htons(mss + ip_tcp_len + tcp_opt_len);
+               skb->nh.iph->tot_len = htons(mss + hdr_len);
                if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) {
                        skb->h.th->check = 0;
                        base_flags &= ~TXD_FLAG_TCPUDP_CSUM;
@@ -5981,7 +6029,13 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
        }
 
        /* Setup replenish threshold. */
-       tw32(RCVBDI_STD_THRESH, tp->rx_pending / 8);
+       val = tp->rx_pending / 8;
+       if (val == 0)
+               val = 1;
+       else if (val > tp->rx_std_max_post)
+               val = tp->rx_std_max_post;
+
+       tw32(RCVBDI_STD_THRESH, val);
 
        /* Initialize TG3_BDINFO's at:
         *  RCVDBDI_STD_BD:     standard eth size rx ring
@@ -6141,8 +6195,12 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
 #endif
 
        /* Receive/send statistics. */
-       if ((rdmac_mode & RDMAC_MODE_FIFO_SIZE_128) &&
-           (tp->tg3_flags2 & TG3_FLG2_TSO_CAPABLE)) {
+       if (tp->tg3_flags2 & TG3_FLG2_5750_PLUS) {
+               val = tr32(RCVLPC_STATS_ENABLE);
+               val &= ~RCVLPC_STATSENAB_DACK_FIX;
+               tw32(RCVLPC_STATS_ENABLE, val);
+       } else if ((rdmac_mode & RDMAC_MODE_FIFO_SIZE_128) &&
+                  (tp->tg3_flags2 & TG3_FLG2_TSO_CAPABLE)) {
                val = tr32(RCVLPC_STATS_ENABLE);
                val &= ~RCVLPC_STATSENAB_LNGBRST_RFIX;
                tw32(RCVLPC_STATS_ENABLE, val);
@@ -8738,6 +8796,9 @@ static void tg3_vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
 {
        struct tg3 *tp = netdev_priv(dev);
 
+       if (netif_running(dev))
+               tg3_netif_stop(tp);
+
        tg3_full_lock(tp, 0);
 
        tp->vlgrp = grp;
@@ -8746,16 +8807,25 @@ static void tg3_vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
        __tg3_set_rx_mode(dev);
 
        tg3_full_unlock(tp);
+
+       if (netif_running(dev))
+               tg3_netif_start(tp);
 }
 
 static void tg3_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
 {
        struct tg3 *tp = netdev_priv(dev);
 
+       if (netif_running(dev))
+               tg3_netif_stop(tp);
+
        tg3_full_lock(tp, 0);
        if (tp->vlgrp)
                tp->vlgrp->vlan_devices[vid] = NULL;
        tg3_full_unlock(tp);
+
+       if (netif_running(dev))
+               tg3_netif_start(tp);
 }
 #endif
 
@@ -10160,8 +10230,14 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
                    GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787) {
                        tp->tg3_flags2 |= TG3_FLG2_HW_TSO_2;
                        tp->tg3_flags2 |= TG3_FLG2_1SHOT_MSI;
-               } else
-                       tp->tg3_flags2 |= TG3_FLG2_HW_TSO_1;
+               } else {
+                       tp->tg3_flags2 |= TG3_FLG2_HW_TSO_1 |
+                                         TG3_FLG2_HW_TSO_1_BUG;
+                       if (GET_ASIC_REV(tp->pci_chip_rev_id) ==
+                               ASIC_REV_5750 &&
+                           tp->pci_chip_rev_id >= CHIPREV_ID_5750_C2)
+                               tp->tg3_flags2 &= ~TG3_FLG2_HW_TSO_1_BUG;
+               }
        }
 
        if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5705 &&
@@ -10533,6 +10609,16 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
            (tp->tg3_flags & TG3_FLAG_PCIX_MODE) != 0)
                tp->rx_offset = 0;
 
+       tp->rx_std_max_post = TG3_RX_RING_SIZE;
+
+       /* Increment the rx prod index on the rx std ring by at most
+        * 8 for these chips to workaround hw errata.
+        */
+       if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750 ||
+           GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752 ||
+           GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755)
+               tp->rx_std_max_post = 8;
+
        /* By default, disable wake-on-lan.  User can change this
         * using ETHTOOL_SWOL.
         */
index 8209da5dd15fee447c2b989a11215b2f75a8e21b..ba2c98711c88dc9d524f35204652e823b9d4c177 100644 (file)
 #define  CHIPREV_ID_5750_A0             0x4000
 #define  CHIPREV_ID_5750_A1             0x4001
 #define  CHIPREV_ID_5750_A3             0x4003
+#define  CHIPREV_ID_5750_C2             0x4202
 #define  CHIPREV_ID_5752_A0_HW          0x5000
 #define  CHIPREV_ID_5752_A0             0x6000
 #define  CHIPREV_ID_5752_A1             0x6001
 #define  RCVLPC_STATSCTRL_ENABLE        0x00000001
 #define  RCVLPC_STATSCTRL_FASTUPD       0x00000002
 #define RCVLPC_STATS_ENABLE            0x00002018
+#define  RCVLPC_STATSENAB_DACK_FIX      0x00040000
 #define  RCVLPC_STATSENAB_LNGBRST_RFIX  0x00400000
 #define RCVLPC_STATS_INCMASK           0x0000201c
 /* 0x2020 --> 0x2100 unused */
@@ -2137,6 +2139,7 @@ struct tg3 {
        struct tg3_rx_buffer_desc       *rx_std;
        struct ring_info                *rx_std_buffers;
        dma_addr_t                      rx_std_mapping;
+       u32                             rx_std_max_post;
 
        struct tg3_rx_buffer_desc       *rx_jumbo;
        struct ring_info                *rx_jumbo_buffers;
@@ -2191,7 +2194,7 @@ struct tg3 {
 #define TG3_FLAG_INIT_COMPLETE         0x80000000
        u32                             tg3_flags2;
 #define TG3_FLG2_RESTART_TIMER         0x00000001
-/*                                     0x00000002 available */
+#define TG3_FLG2_HW_TSO_1_BUG          0x00000002
 #define TG3_FLG2_NO_ETH_WIRE_SPEED     0x00000004
 #define TG3_FLG2_IS_5788               0x00000008
 #define TG3_FLG2_MAX_RXPEND_64         0x00000010
index 41e0cd8f478670215bfa71792cecc00625500ee8..77bb298129d7caa057a18198457caaef1468d997 100644 (file)
@@ -42,7 +42,6 @@
 
 #define XL_DEBUG 0
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index c58a4c31d0dda6c7caa5e747c2e49fa4fb2582c2..30dcdaebf41af52b2950467da70d519e5109a279 100644 (file)
 
 #define STREAMER_IOCTL 0
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index c3cb8d26cfe305241efd33ad5c00594d23f349fb..d7a30d99ae8fcaaad679e3aab0288f9e0a777d31 100644 (file)
@@ -80,7 +80,6 @@
 #define OLYMPIC_DEBUG 0
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 67d2b596ce22ec7df5757cc83772688e42afb668..f2807ab5a2be17185f70b3770149d1c399def940 100644 (file)
@@ -29,7 +29,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/fcntl.h>
index 48994b043b7cf0e06e29b2f4424257edfae107b5..292e50ddf01a58c095a8285647ca6d951ff59c18 100644 (file)
@@ -17,7 +17,6 @@
  *  - Jay Schulist <jschlst@samba.org>
  */
 
-#include <linux/config.h>
 
 #if defined(CONFIG_SMCTR) || defined(CONFIG_SMCTR_MODULE)
 
index fc2468ecce0b1db743e8158d07468c15f1eca80c..354294c6271e1513d9acae610797fe8de36d00e7 100644 (file)
@@ -31,7 +31,6 @@
 #define DRV_VERSION            "0.7"
 #define DRV_RELDATE            "Mar 17, 2004"
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
index da8bd0d62a3fcaf57540558ba487f78500a45076..2647a5bc52113cc58960753ab09ca7a642bf686a 100644 (file)
     =========================================================================
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index da4f7593c50f54111b0242f9497c9afc7a0bfa3f..99ccf2ebb342ed3f19d4607507288fd7502948a8 100644 (file)
@@ -16,7 +16,6 @@
 
 #include <linux/pci.h>
 #include "tulip.h"
-#include <linux/config.h>
 #include <linux/etherdevice.h>
 
 int tulip_rx_copybreak;
index d25020da679879ab8e1539fa8f8c2b0be63ea6e9..3bcfbf3d23ed4763750ff193946c417098c97cde 100644 (file)
@@ -16,7 +16,6 @@
 #ifndef __NET_TULIP_H__
 #define __NET_TULIP_H__
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/spinlock.h>
index 53fd9b56d0bd7967b51cbf794128c1c15918979b..8f4f4840fc12fb657f7424c3d762bad43a4582c8 100644 (file)
@@ -14,7 +14,6 @@
 
 */
 
-#include <linux/config.h>
 
 #define DRV_NAME       "tulip"
 #ifdef CONFIG_TULIP_NAPI
index 887d7245fe7b436231eee334d6aefc1f7de969c6..aecafdabbc91a459db7d20a875ba559855ed0401 100644 (file)
@@ -98,7 +98,6 @@ static int csr0 = 0x00A00000 | 0x4800;
 /* PCI registers */
 #define PCI_POWERMGMT  0x40
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index 732c5edec2e5edd3cab20c8d0aa43233b8fab8c8..329d9feb9b8934717bf817c06822bb8f6f9345ce 100644 (file)
@@ -39,7 +39,6 @@
 #define DRV_DESCRIPTION        "Universal TUN/TAP device driver"
 #define DRV_COPYRIGHT  "(C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>"
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
index 09e05fe40c381b437e8c121bb49d94ca1db0f5f4..857d71c3c017de3058b028b1fa9ed167db12d5dc 100644 (file)
@@ -47,7 +47,6 @@
 
 #include <linux/module.h>
 #include <linux/types.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/errno.h>
@@ -65,7 +64,6 @@
 #include <linux/wait.h>
 #include <asm/io.h>
 #include <linux/if.h>
-#include <linux/config.h>
 #include <asm/uaccess.h>
 #include <linux/proc_fs.h>
 #include <linux/inetdevice.h>
index be5e33814cb144ea7db78787342c6dda1e7e0a08..1f95b4864ea19e381031b379377711642a7996c5 100644 (file)
@@ -79,7 +79,6 @@
 \f
 /* ---------- Headers, macros, data structures ---------- */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
index 57f9538b8fb5efead8c45e792610df97bcf57500..b7da55140fbd854b54568cb84add8c1420fd7e8a 100644 (file)
@@ -22,7 +22,6 @@
  * - proto.start() and stop() are called with spin_lock_irq held.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
index af8b55fdd9d98008bfe040b895ae734bfafb088b..ae01555d24cf8bf637580be4405b9fe35a77f762 100644 (file)
@@ -1,6 +1,5 @@
 /* $Id: lmc_media.c,v 1.13 2000/04/11 05:25:26 asj Exp $ */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/timer.h>
index 175ba13bce41b32fec866d58f5674c9b2cbb82da..f2d071272ceed554304d13801f635671024d62c2 100644 (file)
@@ -37,7 +37,6 @@
  *     Known problem: this driver wasn't tested on multiprocessor machine.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/ptrace.h>
index 2d1bba06a08512d5d0a5af5bb8283ee9f9493922..c13b459a013789a62c1d7ade07739833791c9752 100644 (file)
@@ -37,7 +37,6 @@
  */
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 4069b79d825972b4fb3ad21c7aad31d73edb07d4..89328d119efa5662e37551d18a09a664757d2f64 100644 (file)
@@ -19,7 +19,6 @@
 
 ======================================================================*/
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <linux/kernel.h>
index af0cbb6c5c0c6a35391bfe45e5f441fbbd2d90fa..ac9437d497f08e9bf530a7a3eb1e1aa721af9599 100644 (file)
@@ -20,7 +20,6 @@
     
 ======================================================================*/
 
-#include <linux/config.h>
 #ifdef __IN_PCMCIA_PACKAGE__
 #include <pcmcia/k_compat.h>
 #endif
index 7b321f7cf358d05b3656dfce2e918daa373ce39b..38fac3bbcd823b0e568fef8729961dac95fd2c3d 100644 (file)
@@ -14,7 +14,6 @@
 #define DRIVER_NAME "airport"
 #define PFX DRIVER_NAME ": "
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index bed6823d980906908da6ecb1b608c7ec5fa32816..bb6bea4f32331fa026a037107ca57082dfe44cac 100644 (file)
@@ -5,7 +5,6 @@
  * This module provides support for the Arlan 655 card made by Aironet
  */
 
-#include <linux/config.h>
 #include "arlan.h"
 
 #if BITS_PER_LONG != 32
index a2cca521f4449b29825ca076ca184bf3515cef41..5fa985435ffa2f9f56d1aed7019fab856e49c841 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include "arlan.h"
 
 #include <linux/sysctl.h>
index 70a6d7b83c4a05bb26dff8d020d195973cf875f9..3ed1df75900f49f47d7ae163c3c9dddeabf9ac65 100644 (file)
@@ -5,7 +5,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/skbuff.h>
index 8606c88886fca9237fd8b3f4bd774fca8aa7e02c..54e31fa2d402be390e2fc536fe7892aeba8ac785 100644 (file)
@@ -39,7 +39,6 @@
 
 ******************************************************************************/
 
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <linux/kernel.h>
index 26bf1127524df2f147f5e517d87a3e8101d58949..785664090bb47d07da1e4b8167b81946532a9666 100644 (file)
@@ -29,7 +29,6 @@
 
 ******************************************************************************/
 
-#include <linux/config.h>
 #ifdef __IN_PCMCIA_PACKAGE__
 #include <pcmcia/k_compat.h>
 #endif
index a61b3bc6cccf4c94aac6bf57216d4389d055f61e..d425c3cefdedbac00c91b1d320d01d9828587846 100644 (file)
@@ -19,7 +19,6 @@
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 ******************************************************************************/
-#include <linux/config.h>
 #include <linux/pci.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index 2aa2f389c0d5905a200921ecec2f5e4c582fe88f..29d39105f5b869a4a59be436e41ab2015a3c822e 100644 (file)
@@ -38,7 +38,6 @@
  * under either the MPL or the GPL.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index db03dc2646dfb08d27b741f57774ca66303de609..52e6df5c1a92a6b719c985009725239e8738fd9c 100644 (file)
@@ -1,6 +1,5 @@
 #define PRISM2_PCCARD
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/if.h>
@@ -844,7 +843,7 @@ static struct pcmcia_device_id hostap_cs_ids[] = {
        PCMCIA_DEVICE_MANF_CARD(0x02d2, 0x0001),
        PCMCIA_DEVICE_MANF_CARD(0x50c2, 0x0001),
        PCMCIA_DEVICE_MANF_CARD(0x50c2, 0x7300),
-       PCMCIA_DEVICE_MANF_CARD(0xc00f, 0x0000),
+/*     PCMCIA_DEVICE_MANF_CARD(0xc00f, 0x0000),    conflict with pcnet_cs */
        PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0002),
        PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0005),
        PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0010),
index 328e9a1d13b569da739270f335e683a3001811c9..b764cfda6e84bbdfbb0fa021af98bb7ded611345 100644 (file)
@@ -30,7 +30,6 @@
  */
 
 
-#include <linux/config.h>
 
 #include <asm/delay.h>
 #include <asm/uaccess.h>
index 93786f4218f0d422092813dd17bb9b9e083d8997..53374fcba77e5fc220c04ab26802ae43dd17fb73 100644 (file)
@@ -12,7 +12,6 @@
  * more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index 194f07097581dcdb538b05b077d18db5eeb76bc7..5ea8ac835857821e5f5e16729caff0db3cfb7ec4 100644 (file)
@@ -4,7 +4,6 @@
  * driver patches from Reyk Floeter <reyk@vantronix.net> and
  * Andy Warner <andyw@pobox.com> */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/if.h>
index edaaa943eb8f54c026c436e6b62a19a9e3ee3ee8..4ee6abbc65ecfe4108c88b7abec4a34723ad441b 100644 (file)
@@ -7,7 +7,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/if.h>
index 94aeb23a77298c6c0153ff6d8fa18f6994524790..27f744e43095d3c199b9a2097edcaf53244c1711 100644 (file)
@@ -134,7 +134,6 @@ that only one external action is invoked at a time.
 */
 
 #include <linux/compiler.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/if_arp.h>
 #include <linux/in6.h>
@@ -5358,7 +5357,7 @@ static int ipw2100_set_key(struct ipw2100_priv *priv,
                     idx, keylen, len);
 
        /* NOTE: We don't check cached values in case the firmware was reset
-        * or some other problem is occuring.  If the user is setting the key,
+        * or some other problem is occurring.  If the user is setting the key,
         * then we push the change */
 
        wep_key->idx = idx;
index ea12ad66b8e8f9141c51c9f3bf7c3e6bbf9993d6..8b1cd7c749a4e537e434d9d44d3ba0658d4f0efc 100644 (file)
@@ -31,7 +31,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mutex.h>
 
index 9343d970537beca857ac12242580e099218d2689..36b5e004305ee4455000ad832222d4246ca467ff 100644 (file)
@@ -37,7 +37,6 @@
 /* To have statistics (just packets sent) define this */
 #undef NETWAVE_STATS
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 8a31b591a901198f36b67eab7b4ab1612aa76992..d6ed5781b93a8cf6ffce52cabd4ba3e01847acc5 100644 (file)
@@ -76,7 +76,6 @@
 
 #define DRIVER_NAME "orinoco"
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index b2aec4d9fbb12b3dc759233564722ac43975daf5..bc14689cbf24fb209b1fc38cdd875f3f7aba9012 100644 (file)
@@ -13,7 +13,6 @@
 #define DRIVER_NAME "orinoco_cs"
 #define PFX DRIVER_NAME ": "
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 74b9d5b2ba9ee00005586938f832cf4c1f36911e..4597fe1d19797a5ee3adb9deebcf0601ef65b367 100644 (file)
@@ -40,7 +40,6 @@
 #define DRIVER_NAME "orinoco_nortel"
 #define PFX DRIVER_NAME ": "
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 1c105f40f8d55f250f344f0e2427baf150bcb3d8..de3eae082a0dd4ebb4ef7f91763b792cda4bb5f2 100644 (file)
@@ -44,7 +44,6 @@
 #define DRIVER_NAME "orinoco_pci"
 #define PFX DRIVER_NAME ": "
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 84f696c77551e1ce420a6e7341e0a3f0717e73c7..3f928b8939f03c15758928c9d7aa0466e3cc1102 100644 (file)
@@ -86,7 +86,6 @@
 #define DRIVER_NAME "orinoco_plx"
 #define PFX DRIVER_NAME ": "
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index d2b4decb7a7d005cdf87c2c91d9269f7f5e8cd92..160a642185f0fb92ec44717a0c349e6bd4f2ef05 100644 (file)
@@ -40,7 +40,6 @@
 #define DRIVER_NAME "orinoco_tmd"
 #define PFX DRIVER_NAME ": "
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 6a60c5970cb519b237f4c9b7b95f09a4d2adb649..2e061a80b294542fd02a12c29af2328a46cca900 100644 (file)
@@ -18,7 +18,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/netdevice.h>
 #include <linux/module.h>
 #include <linux/pci.h>
index 55541c01752eb4395d1333f9dc40dd7921399db1..d71eca55a302af351291790bf7e139203c7c04d9 100644 (file)
@@ -29,7 +29,6 @@
 
 #include <linux/device.h>
 #include <linux/firmware.h>
-#include <linux/config.h>
 #include <linux/moduleparam.h>
 #include <linux/workqueue.h>
 #include <linux/compiler.h>
index a915fe6c6aa5d441fea41835f4ac6a04ae583b2a..61b83a5e737a719719646d37a4ff76d03b9fd949 100644 (file)
@@ -30,7 +30,6 @@
  * 
 =============================================================================*/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/proc_fs.h>
index 7f9aa139c3475fb11e526433fd85566ada350c48..15465278c789ed607e154775ccb55a3dcbc20f1e 100644 (file)
@@ -21,7 +21,6 @@
 #define DRIVER_NAME "spectrum_cs"
 #define PFX DRIVER_NAME ": "
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 18a44580b53b2f8358b94901d0cf92341358f987..fd31885c6844ab2b72c6dea2ba3cd2e5f0681a33 100644 (file)
@@ -81,7 +81,6 @@ static const char StripVersion[] = "1.3A-STUART.CHESHIRE";
 /************************************************************************/
 /* Header files                                                                */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
index c65fe7a391ecf15b400fbe529ad38f4a47ca13e0..f34a36b0c7b0e0ec2424d7c909b88c89ec695f0e 100644 (file)
 /***************************** INCLUDES *****************************/
 
 /* Linux headers that we need */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index e52a650f6737a91089ffe60cb2bc71f22489bc27..c03e400faceefe26714d11a92fce08e940899c61 100644 (file)
@@ -28,7 +28,6 @@
  */
 #undef REALLY_SLOW_IO  /* most systems can safely undef this */
 
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/types.h>
 #include <linux/ethtool.h>
index a7c089df66e6e0a0619e4f28b4a3fd05f9f9c6d8..9f0291f35290d3d657b2d0caf1f80b8a210851b2 100644 (file)
@@ -85,7 +85,6 @@
    - Understand why some traffic patterns add a 1s latency...
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 14cbe34eb897d43a50aea55147dccd93332c2967..3a0a3a7349334e9eba1ec143a2518f46f1e060d7 100644 (file)
@@ -7,7 +7,6 @@
  *      and others.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 22c1dc9f87b3362892fe899b398ad759d0caf1e8..9204f04fbf0b3f4d38dedff6308249042e4a89a2 100644 (file)
@@ -2,7 +2,6 @@
 
    (c) 1999 David Huggins-Daines <dhd@debian.org> */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/nubus.h>
index a5d826237b265a0b683e0b2bbea513c33e11cc34..68cb3a080050d78d47bc787dd47366c5057c3c5f 100644 (file)
@@ -31,7 +31,6 @@
 **        the coherency design originally worked out. Only PCX-W does.
 */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/mm.h>
index ce0a6ebcff15dfa74a4ff8e8812878078a8e46a9..0d96c50ffe9cdb26d4f353d321247c7b166fb4d9 100644 (file)
@@ -43,7 +43,6 @@
 **       for PCI drivers devices which implement/use MMIO registers.
 */
 
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 5476ba7709b3cc4a9a7aec1612d74be7898a0f83..b45aa5c675a0a88981e97b913ef756ec9e3de46f 100644 (file)
@@ -14,7 +14,6 @@
  */
 
 #include <linux/bitops.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
index 298f2ddb2c179693ed062b9b50f8740f7120770a..bf00fa2537bbb6f8774611eb55481751bede4965 100644 (file)
@@ -23,7 +23,6 @@
  *                               David Pye <dmp@davidmpye.dyndns.org>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/stddef.h>      /* for offsetof() */
 #include <linux/init.h>
@@ -411,16 +410,17 @@ static __inline__ int led_get_net_activity(void)
 static __inline__ int led_get_diskio_activity(void)
 {      
        static unsigned long last_pgpgin, last_pgpgout;
-       struct page_state pgstat;
+       unsigned long events[NR_VM_EVENT_ITEMS];
        int changed;
 
-       get_full_page_state(&pgstat); /* get no of sectors in & out */
+       all_vm_events(events);
 
        /* Just use a very simple calculation here. Do not care about overflow,
           since we only want to know if there was activity or not. */
-       changed = (pgstat.pgpgin != last_pgpgin) || (pgstat.pgpgout != last_pgpgout);
-       last_pgpgin  = pgstat.pgpgin;
-       last_pgpgout = pgstat.pgpgout;
+       changed = (events[PGPGIN] != last_pgpgin) ||
+                 (events[PGPGOUT] != last_pgpgout);
+       last_pgpgin  = events[PGPGIN];
+       last_pgpgout = events[PGPGOUT];
 
        return (changed ? LED_DISK_IO : 0);
 }
index 0bcab83b40804f751d173d4d2ee205ca715906f6..fad5a33bf0fa3ecac80bc57358cbd2327c2dbd68 100644 (file)
@@ -35,7 +35,6 @@
  *  runtime through the "/proc/sys/kernel/power" procfs entry.
  */ 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index d09e39e39c60cbbef178b3e39c6b3e0c1a7ab7c8..8b47328155112ee1631aec5d47e300e5464971c7 100644 (file)
@@ -19,7 +19,6 @@
 ** FIXME: add DMA hint support programming in both sba and lba modules.
 */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/spinlock.h>
index 690b239ad3a7c3fe5b0b7763fb3856b0d64a052e..7ff09f0f858f76e9cea359b9b96107d815db4b25 100644 (file)
@@ -16,7 +16,6 @@
  * Various hacks, Fred Barnes <frmb2@ukc.ac.uk>, 04/2000
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/threads.h>
 #include <linux/parport.h>
index d6c77658231e9ae15ada522bbbcc66f7fde066ec..525312f2fe9c4658e1116990d095325e9dfdc5e3 100644 (file)
@@ -14,7 +14,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/parport.h>
 #include <linux/delay.h>
index 7318e4a9e436f099fbb20175394f162d301816c7..fe800dc0be9f7fedfdf69e92ff262ebe0b51d787 100644 (file)
@@ -42,7 +42,6 @@
  * but rather will start at port->base_hi.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/sched.h>
index 8610ae88b92d56ec457938fd861e67848004bf02..2e744a274517c517b31889e0553451427e28a209 100644 (file)
@@ -13,7 +13,6 @@
  */
 
 #include <linux/string.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/errno.h>
index 2cb22c8d3357fbe4922a54a613c9aec116265029..94dc506b83d13ea2089105f709c9bbd62d102c10 100644 (file)
@@ -17,7 +17,6 @@
 
 #undef PARPORT_DEBUG_SHARING           /* undef for production */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/threads.h>
index 037ce4c916879b8ef04a47c3ba55c9bbb3ba2fed..30d87143b5d93393bb83a787d89c3015ab28097a 100644 (file)
@@ -25,7 +25,6 @@
  * Send feedback to <scottm@somanetworks.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
index 225b5e551dd6f53133b982087624b541310bc0ee..02be74caa89f3db8f7576bdafbc4667130efcb87 100644 (file)
@@ -23,7 +23,6 @@
  * Send feedback to <scottm@somanetworks.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
index 2d4639d6841f4a6c93e29d6d3a2c9d5713ca3309..e847f0d6c7fea74dd00e3a757a7c2ea8b4e2d159 100644 (file)
@@ -34,7 +34,6 @@
  * Send feedback to <scottm@somanetworks.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/errno.h>
index 1ec165df85223e4495ebb310b2702b70a1e14fd6..584f8538da13cc852427967e0a8f2ee8bb1d3fc4 100644 (file)
@@ -30,7 +30,6 @@
  * Send feedback to <scottm@somanetworks.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
index f8658d63f0773ca7022505bbe0aef995e4aaca12..e6e171f77c344770f0b8124a4fce427f88580089 100644 (file)
@@ -29,7 +29,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index 55d2dc7e39cad5c17237852e210799a2a20f348c..ae2dd36efef2c0a06fbeaa6a16cc145c63e927b5 100644 (file)
@@ -26,7 +26,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index ac98a11bd1ebca08cb2ebe7977d75f227dd90803..cf0878917537e912425b8f619c0564765da39f94 100644 (file)
@@ -26,7 +26,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 00b81a7bdd266a9513a6c39506236bb52c1c3622..0d9688952f4af4cba74e1dfb296da89693d08934 100644 (file)
@@ -26,7 +26,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index bbfeed767ff1f894e459883fa3936129cb52489a..8b3da007e859abc803a9109ba046ba31e6be432c 100644 (file)
@@ -26,7 +26,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 71b80c23e8cecd70e8e80a6d97c6cfc1bbaa69fd..dd2b762777c4bbb72a8086401173c6e9e2707ce8 100644 (file)
@@ -32,7 +32,6 @@
  * Enabling PCI devices is left as an exercise for the reader...
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/pci.h>
index c4282902cb5245494ba84870d64432b71b203154..b7b378df89e3ffeb2a3fda1debb70558a02b401d 100644 (file)
@@ -27,7 +27,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index 0a46f549676a4287e32487bdfc19d5896e442ec7..8ad446605f756fe3afad4feaea3d9e7c82cd0a1a 100644 (file)
@@ -28,7 +28,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index 638004546700a9dd809a887914be8a4fe3f681e6..076bd6dcafae6ffa588898f2930f47c3f9833a10 100644 (file)
@@ -22,7 +22,6 @@
  * Send feedback to <lxie@us.ibm.com>
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
index 76d023d8a33b92c7f940c05815434061f47a6adb..36bc7c415af7a8dfe8b0d394dc64913577d6ad96 100644 (file)
@@ -10,7 +10,6 @@
 #include <linux/irq.h>
 #include <linux/interrupt.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/ioport.h>
 #include <linux/smp_lock.h>
 #include <linux/pci.h>
index 606f9b6f70ebe220617aa437982c4f5287046d40..fdefa7dcd15675758f31c3ce3ababd69368433d4 100644 (file)
@@ -15,7 +15,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/stat.h>
index 4364d793f73b06d8391a872ab22567b1bff41a3d..d1d7333bb71bf17502c0ffd9f0aa2491f2f504ec 100644 (file)
@@ -15,7 +15,6 @@
  *  use the PowerTweak utility (see http://powertweak.sourceforge.net).
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
index cbb69cf41311a947f96fd3231f1d00b070d98082..f5ee7ce16fa61ea6fc4c3e096edc86140fa4e668 100644 (file)
@@ -6,7 +6,6 @@
  *
  * PCI ROM access routines
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/slab.h>
index a4d50940ebebf0f652de3163077d312e30e39269..5256342e8532ae263359bc39f86aa2eb44100bfd 100644 (file)
@@ -214,11 +214,10 @@ static struct pccard_operations at91_cf_ops = {
 
 /*--------------------------------------------------------------------------*/
 
-static int __init at91_cf_probe(struct device *dev)
+static int __init at91_cf_probe(struct platform_device *pdev)
 {
        struct at91_cf_socket   *cf;
-       struct at91_cf_data     *board = dev->platform_data;
-       struct platform_device  *pdev = to_platform_device(dev);
+       struct at91_cf_data     *board = pdev->dev.platform_data;
        struct resource         *io;
        unsigned int            csa;
        int                     status;
@@ -236,7 +235,7 @@ static int __init at91_cf_probe(struct device *dev)
 
        cf->board = board;
        cf->pdev = pdev;
-       dev_set_drvdata(dev, cf);
+       platform_set_drvdata(pdev, cf);
 
        /* CF takes over CS4, CS5, CS6 */
        csa = at91_sys_read(AT91_EBI_CSA);
@@ -271,6 +270,7 @@ static int __init at91_cf_probe(struct device *dev)
                        SA_SAMPLE_RANDOM, driver_name, cf);
        if (status < 0)
                goto fail0;
+       device_init_wakeup(&pdev->dev, 1);
 
        /*
         * The card driver will request this irq later as needed.
@@ -301,7 +301,7 @@ static int __init at91_cf_probe(struct device *dev)
                board->det_pin, board->irq_pin);
 
        cf->socket.owner = THIS_MODULE;
-       cf->socket.dev.dev = dev;
+       cf->socket.dev.dev = &pdev->dev;
        cf->socket.ops = &at91_cf_ops;
        cf->socket.resource_ops = &pccard_static_ops;
        cf->socket.features = SS_CAP_PCCARD | SS_CAP_STATIC_MAP
@@ -323,21 +323,25 @@ fail1:
                free_irq(board->irq_pin, cf);
 fail0a:
        free_irq(board->det_pin, cf);
+       device_init_wakeup(&pdev->dev, 0);
 fail0:
        at91_sys_write(AT91_EBI_CSA, csa);
        kfree(cf);
        return status;
 }
 
-static int __exit at91_cf_remove(struct device *dev)
+static int __exit at91_cf_remove(struct platform_device *pdev)
 {
-       struct at91_cf_socket   *cf = dev_get_drvdata(dev);
+       struct at91_cf_socket   *cf = platform_get_drvdata(pdev);
+       struct at91_cf_data     *board = cf->board;
        struct resource         *io = cf->socket.io[0].res;
        unsigned int            csa;
 
        pcmcia_unregister_socket(&cf->socket);
-       free_irq(cf->board->irq_pin, cf);
-       free_irq(cf->board->det_pin, cf);
+       if (board->irq_pin)
+               free_irq(board->irq_pin, cf);
+       free_irq(board->det_pin, cf);
+       device_init_wakeup(&pdev->dev, 0);
        iounmap((void __iomem *) cf->socket.io_offset);
        release_mem_region(io->start, io->end + 1 - io->start);
 
@@ -348,26 +352,65 @@ static int __exit at91_cf_remove(struct device *dev)
        return 0;
 }
 
-static struct device_driver at91_cf_driver = {
-       .name           = (char *) driver_name,
-       .bus            = &platform_bus_type,
+#ifdef CONFIG_PM
+
+static int at91_cf_suspend(struct platform_device *pdev, pm_message_t mesg)
+{
+       struct at91_cf_socket   *cf = platform_get_drvdata(pdev);
+       struct at91_cf_data     *board = cf->board;
+
+       pcmcia_socket_dev_suspend(&pdev->dev, mesg);
+       if (device_may_wakeup(&pdev->dev))
+               enable_irq_wake(board->det_pin);
+       else {
+               disable_irq_wake(board->det_pin);
+               disable_irq(board->det_pin);
+       }
+       if (board->irq_pin)
+               disable_irq(board->irq_pin);
+       return 0;
+}
+
+static int at91_cf_resume(struct platform_device *pdev)
+{
+       struct at91_cf_socket   *cf = platform_get_drvdata(pdev);
+       struct at91_cf_data     *board = cf->board;
+
+       if (board->irq_pin)
+               enable_irq(board->irq_pin);
+       if (!device_may_wakeup(&pdev->dev))
+               enable_irq(board->det_pin);
+       pcmcia_socket_dev_resume(&pdev->dev);
+       return 0;
+}
+
+#else
+#define        at91_cf_suspend         NULL
+#define        at91_cf_resume          NULL
+#endif
+
+static struct platform_driver at91_cf_driver = {
+       .driver = {
+               .name           = (char *) driver_name,
+               .owner          = THIS_MODULE,
+       },
        .probe          = at91_cf_probe,
        .remove         = __exit_p(at91_cf_remove),
-       .suspend        = pcmcia_socket_dev_suspend,
-       .resume         = pcmcia_socket_dev_resume,
+       .suspend        = at91_cf_suspend,
+       .resume         = at91_cf_resume,
 };
 
 /*--------------------------------------------------------------------------*/
 
 static int __init at91_cf_init(void)
 {
-       return driver_register(&at91_cf_driver);
+       return platform_driver_register(&at91_cf_driver);
 }
 module_init(at91_cf_init);
 
 static void __exit at91_cf_exit(void)
 {
-       driver_unregister(&at91_cf_driver);
+       platform_driver_unregister(&at91_cf_driver);
 }
 module_exit(at91_cf_exit);
 
index abc13f28ba3f409396fe4b76d6caae9512b96cb3..74e051535d6c0419cad92901dabb9c0737929deb 100644 (file)
@@ -30,7 +30,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
@@ -296,7 +295,7 @@ struct pcmcia_low_level db1x00_pcmcia_ops = {
        .socket_suspend         = db1x00_socket_suspend
 };
 
-int __init au1x_board_init(struct device *dev)
+int au1x_board_init(struct device *dev)
 {
        int ret = -ENODEV;
        bcsr->pcmcia = 0; /* turn off power, if it's not already off */
index 971a352816499a0113cb08fc40094e068561d255..d5dd0ce65536bcac012f596d7f07586c0303754b 100644 (file)
@@ -33,7 +33,6 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/cpufreq.h>
 #include <linux/ioport.h>
 #include <linux/kernel.h>
index f2c970b5f4ffa5ef2192b429208255acc10f3cc0..1e467bb54077fed1f5f92175ba240d251e6a256d 100644 (file)
@@ -22,7 +22,6 @@
 #define __ASM_AU1000_PCMCIA_H
 
 /* include the world */
-#include <linux/config.h>
 
 #include <pcmcia/cs_types.h>
 #include <pcmcia/cs.h>
index fd5522ede867c6ea18421493e213aa6eaad7851a..86c0808d6a057920bfe07412cf1e73c9efff7c2a 100644 (file)
@@ -21,7 +21,6 @@
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/delay.h>
index 3162998579c1769be912cd4e792c462102aa8838..f9cd831a3f3159ab18085dae94476976ade6c4fd 100644 (file)
@@ -28,6 +28,7 @@
 #include <linux/pm.h>
 #include <linux/pci.h>
 #include <linux/device.h>
+#include <linux/kthread.h>
 #include <asm/system.h>
 #include <asm/irq.h>
 
@@ -176,6 +177,7 @@ static int pccardd(void *__skt);
  */
 int pcmcia_register_socket(struct pcmcia_socket *socket)
 {
+       struct task_struct *tsk;
        int ret;
 
        if (!socket || !socket->ops || !socket->dev.dev || !socket->resource_ops)
@@ -239,15 +241,18 @@ int pcmcia_register_socket(struct pcmcia_socket *socket)
        mutex_init(&socket->skt_mutex);
        spin_lock_init(&socket->thread_lock);
 
-       ret = kernel_thread(pccardd, socket, CLONE_KERNEL);
-       if (ret < 0)
+       tsk = kthread_run(pccardd, socket, "pccardd");
+       if (IS_ERR(tsk)) {
+               ret = PTR_ERR(tsk);
                goto err;
+       }
 
        wait_for_completion(&socket->thread_done);
-       if(!socket->thread) {
+       if (!socket->thread) {
                printk(KERN_WARNING "PCMCIA: warning: socket thread for socket %p did not start\n", socket);
                return -EIO;
        }
+
        pcmcia_parse_events(socket, SS_DETECT);
 
        return 0;
@@ -272,10 +277,8 @@ void pcmcia_unregister_socket(struct pcmcia_socket *socket)
        cs_dbg(socket, 0, "pcmcia_unregister_socket(0x%p)\n", socket->ops);
 
        if (socket->thread) {
-               init_completion(&socket->thread_done);
-               socket->thread = NULL;
                wake_up(&socket->thread_wait);
-               wait_for_completion(&socket->thread_done);
+               kthread_stop(socket->thread);
        }
        release_cis_mem(socket);
 
@@ -630,8 +633,6 @@ static int pccardd(void *__skt)
        DECLARE_WAITQUEUE(wait, current);
        int ret;
 
-       daemonize("pccardd");
-
        skt->thread = current;
        skt->socket = dead_socket;
        skt->ops->init(skt);
@@ -643,7 +644,8 @@ static int pccardd(void *__skt)
                printk(KERN_WARNING "PCMCIA: unable to register socket 0x%p\n",
                        skt);
                skt->thread = NULL;
-               complete_and_exit(&skt->thread_done, 0);
+               complete(&skt->thread_done);
+               return 0;
        }
 
        add_wait_queue(&skt->thread_wait, &wait);
@@ -674,7 +676,7 @@ static int pccardd(void *__skt)
                        continue;
                }
 
-               if (!skt->thread)
+               if (kthread_should_stop())
                        break;
 
                schedule();
@@ -688,7 +690,7 @@ static int pccardd(void *__skt)
        /* remove from the device core */
        class_device_unregister(&skt->dev);
 
-       complete_and_exit(&skt->thread_done, 0);
+       return 0;
 }
 
 /*
@@ -697,11 +699,12 @@ static int pccardd(void *__skt)
  */
 void pcmcia_parse_events(struct pcmcia_socket *s, u_int events)
 {
+       unsigned long flags;
        cs_dbg(s, 4, "parse_events: events %08x\n", events);
        if (s->thread) {
-               spin_lock(&s->thread_lock);
+               spin_lock_irqsave(&s->thread_lock, flags);
                s->thread_events |= events;
-               spin_unlock(&s->thread_lock);
+               spin_unlock_irqrestore(&s->thread_lock, flags);
 
                wake_up(&s->thread_wait);
        }
index 071cf485e1a391c88893e6cb8c871444004d6d1c..9e768eaef17a39955dbed341a1410861d732f679 100644 (file)
@@ -10,7 +10,6 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/fcntl.h>
 #include <linux/string.h>
index 70d5f0748d559fcb6abc63784e5546cbcfb0a5e1..61d50b5620ddab3ef749bb5322fdf43e40e2250b 100644 (file)
@@ -10,7 +10,6 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/fcntl.h>
 #include <linux/string.h>
index 3131bb0a0095af500d4aa063dbf79e692284cec2..3281e519e71414a6d503f55a2f631fd9bd574856 100644 (file)
@@ -788,6 +788,7 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req)
        struct pcmcia_socket *s = p_dev->socket;
        config_t *c;
        int ret = CS_IN_USE, irq = 0;
+       int type;
 
        if (!(s->state & SOCKET_PRESENT))
                return CS_NO_CARD;
@@ -797,6 +798,13 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req)
        if (c->state & CONFIG_IRQ_REQ)
                return CS_IN_USE;
 
+       /* Decide what type of interrupt we are registering */
+       type = 0;
+       if (s->functions > 1)           /* All of this ought to be handled higher up */
+               type = SA_SHIRQ;
+       if (req->Attributes & IRQ_TYPE_DYNAMIC_SHARING)
+               type = SA_SHIRQ;
+
 #ifdef CONFIG_PCMCIA_PROBE
        if (s->irq.AssignedIRQ != 0) {
                /* If the interrupt is already assigned, it must be the same */
@@ -822,9 +830,7 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req)
                         * marked as used by the kernel resource management core */
                        ret = request_irq(irq,
                                          (req->Attributes & IRQ_HANDLE_PRESENT) ? req->Handler : test_action,
-                                         ((req->Attributes & IRQ_TYPE_DYNAMIC_SHARING) ||
-                                          (s->functions > 1) ||
-                                          (irq == s->pci_irq)) ? SA_SHIRQ : 0,
+                                         type,
                                          p_dev->devname,
                                          (req->Attributes & IRQ_HANDLE_PRESENT) ? req->Instance : data);
                        if (!ret) {
@@ -839,18 +845,21 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req)
        if (ret && !s->irq.AssignedIRQ) {
                if (!s->pci_irq)
                        return ret;
+               type = SA_SHIRQ;
                irq = s->pci_irq;
        }
 
-       if (ret && req->Attributes & IRQ_HANDLE_PRESENT) {
-               if (request_irq(irq, req->Handler,
-                               ((req->Attributes & IRQ_TYPE_DYNAMIC_SHARING) ||
-                                (s->functions > 1) ||
-                                (irq == s->pci_irq)) ? SA_SHIRQ : 0,
-                               p_dev->devname, req->Instance))
+       if (ret && (req->Attributes & IRQ_HANDLE_PRESENT)) {
+               if (request_irq(irq, req->Handler, type,  p_dev->devname, req->Instance))
                        return CS_IN_USE;
        }
 
+       /* Make sure the fact the request type was overridden is passed back */
+       if (type == SA_SHIRQ && !(req->Attributes & IRQ_TYPE_DYNAMIC_SHARING)) {
+               req->Attributes |= IRQ_TYPE_DYNAMIC_SHARING;
+               printk(KERN_WARNING "pcmcia: request for exclusive IRQ could not be fulfilled.\n");
+               printk(KERN_WARNING "pcmcia: the driver needs updating to supported shared IRQ lines.\n");
+       }
        c->irq.Attributes = req->Attributes;
        s->irq.AssignedIRQ = req->AssignedIRQ = irq;
        s->irq.Config++;
index 7fa18fb814bc7b862478e38c4d3b3a42f3e79b40..b3518131ea0d502c1677e392ac3242771330e418 100644 (file)
@@ -18,7 +18,6 @@
 
 #include <linux/module.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/cpufreq.h>
 #include <linux/ioport.h>
 #include <linux/kernel.h>
index 6d441ec75c6a14bc1fa34e9b31cd866f1c6a8397..c5b2a44b4c3783bc4da19bb2bd481cd2b30088ca 100644 (file)
@@ -32,7 +32,6 @@
 
 #include <linux/module.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/platform_device.h>
 
 #include <pcmcia/cs_types.h>
index 81ded52c8959aadc6efc6673de0604f0d11a84a1..658cddfbcf290f3701cf1b70a4f41b9703100ebf 100644 (file)
@@ -5,7 +5,6 @@
  * basically means we handle everything except controlling the
  * power.  Power is machine specific...
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/ioport.h>
index 59c5d968e9f67c00111dcf25f9aacc8802acbb06..31a7abc55b23a5b3056fc1b7f86756d07d0ee92d 100644 (file)
@@ -32,7 +32,6 @@
 
 #include <linux/module.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/cpufreq.h>
 #include <linux/ioport.h>
 #include <linux/kernel.h>
index ea7d9ca160b2810ccfe7da19a494f99521cfda4f..ecf65d4c4e95fe7fd91f2be550ab40ff2426e692 100644 (file)
@@ -31,7 +31,6 @@
 ======================================================================*/
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
index 7a3d1b8e16b926d3f290a6371a15e3d8f9bad654..62e9ebf967f9943ff7eacbad14e6b72900620a07 100644 (file)
@@ -647,6 +647,7 @@ static int ti12xx_2nd_slot_empty(struct yenta_socket *socket)
                 */
                break;
 
+       case PCI_DEVICE_ID_TI_XX12:
        case PCI_DEVICE_ID_TI_X515:
        case PCI_DEVICE_ID_TI_X420:
        case PCI_DEVICE_ID_TI_X620:
index 4145eb83b9b6d708d57a07da1a0633829d3773f8..47e57602d5ea590809bd728834fdab64e365f3e2 100644 (file)
@@ -287,7 +287,10 @@ static int yenta_set_socket(struct pcmcia_socket *sock, socket_state_t *state)
        struct yenta_socket *socket = container_of(sock, struct yenta_socket, socket);
        u16 bridge;
 
-       yenta_set_power(socket, state);
+       /* if powering down: do it immediately */
+       if (state->Vcc == 0)
+               yenta_set_power(socket, state);
+
        socket->io_irq = state->io_irq;
        bridge = config_readw(socket, CB_BRIDGE_CONTROL) & ~(CB_BRIDGE_CRST | CB_BRIDGE_INTR);
        if (cb_readl(socket, CB_SOCKET_STATE) & CB_CBCARD) {
@@ -339,6 +342,10 @@ static int yenta_set_socket(struct pcmcia_socket *sock, socket_state_t *state)
        /* Socket event mask: get card insert/remove events.. */
        cb_writel(socket, CB_SOCKET_EVENT, -1);
        cb_writel(socket, CB_SOCKET_MASK, CB_CDMASK);
+
+       /* if powering up: do it as the last step when the socket is configured */
+       if (state->Vcc != 0)
+               yenta_set_power(socket, state);
        return 0;
 }
 
@@ -998,6 +1005,77 @@ static void yenta_config_init(struct yenta_socket *socket)
        config_writew(socket, CB_BRIDGE_CONTROL, bridge);
 }
 
+/**
+ * yenta_fixup_parent_bridge - Fix subordinate bus# of the parent bridge
+ * @cardbus_bridge: The PCI bus which the CardBus bridge bridges to
+ *
+ * Checks if devices on the bus which the CardBus bridge bridges to would be
+ * invisible during PCI scans because of a misconfigured subordinate number
+ * of the parent brige - some BIOSes seem to be too lazy to set it right.
+ * Does the fixup carefully by checking how far it can go without conflicts.
+ * See http://bugzilla.kernel.org/show_bug.cgi?id=2944 for more information.
+ */
+static void yenta_fixup_parent_bridge(struct pci_bus *cardbus_bridge)
+{
+       struct list_head *tmp;
+       unsigned char upper_limit;
+       /*
+        * We only check and fix the parent bridge: All systems which need
+        * this fixup that have been reviewed are laptops and the only bridge
+        * which needed fixing was the parent bridge of the CardBus bridge:
+        */
+       struct pci_bus *bridge_to_fix = cardbus_bridge->parent;
+
+       /* Check bus numbers are already set up correctly: */
+       if (bridge_to_fix->subordinate >= cardbus_bridge->subordinate)
+               return; /* The subordinate number is ok, nothing to do */
+
+       if (!bridge_to_fix->parent)
+               return; /* Root bridges are ok */
+
+       /* stay within the limits of the bus range of the parent: */
+       upper_limit = bridge_to_fix->parent->subordinate;
+
+       /* check the bus ranges of all silbling bridges to prevent overlap */
+       list_for_each(tmp, &bridge_to_fix->parent->children) {
+               struct pci_bus * silbling = pci_bus_b(tmp);
+               /*
+                * If the silbling has a higher secondary bus number
+                * and it's secondary is equal or smaller than our
+                * current upper limit, set the new upper limit to
+                * the bus number below the silbling's range:
+                */
+               if (silbling->secondary > bridge_to_fix->subordinate
+                   && silbling->secondary <= upper_limit)
+                       upper_limit = silbling->secondary - 1;
+       }
+
+       /* Show that the wanted subordinate number is not possible: */
+       if (cardbus_bridge->subordinate > upper_limit)
+               printk(KERN_WARNING "Yenta: Upper limit for fixing this "
+                       "bridge's parent bridge: #%02x\n", upper_limit);
+
+       /* If we have room to increase the bridge's subordinate number, */
+       if (bridge_to_fix->subordinate < upper_limit) {
+
+               /* use the highest number of the hidden bus, within limits */
+               unsigned char subordinate_to_assign =
+                       min(cardbus_bridge->subordinate, upper_limit);
+
+               printk(KERN_INFO "Yenta: Raising subordinate bus# of parent "
+                       "bus (#%02x) from #%02x to #%02x\n",
+                       bridge_to_fix->number,
+                       bridge_to_fix->subordinate, subordinate_to_assign);
+
+               /* Save the new subordinate in the bus struct of the bridge */
+               bridge_to_fix->subordinate = subordinate_to_assign;
+
+               /* and update the PCI config space with the new subordinate */
+               pci_write_config_byte(bridge_to_fix->self,
+                       PCI_SUBORDINATE_BUS, bridge_to_fix->subordinate);
+       }
+}
+
 /*
  * Initialize a cardbus controller. Make sure we have a usable
  * interrupt, and that we can map the cardbus area. Fill in the
@@ -1113,6 +1191,8 @@ static int __devinit yenta_probe (struct pci_dev *dev, const struct pci_device_i
        yenta_get_socket_capabilities(socket, isa_interrupts);
        printk(KERN_INFO "Socket status: %08x\n", cb_readl(socket, CB_SOCKET_STATE));
 
+       yenta_fixup_parent_bridge(dev->subordinate);
+
        /* Register it with the pcmcia layer.. */
        ret = pcmcia_register_socket(&socket->socket);
        if (ret == 0) {
@@ -1232,6 +1312,7 @@ static struct pci_device_id yenta_table [] = {
 
        CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_XX21_XX11, TI12XX),
        CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_X515, TI12XX),
+       CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_XX12, TI12XX),
        CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_X420, TI12XX),
        CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_X620, TI12XX),
        CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_7410, TI12XX),
index 0b4adcb60df4060db26bbaef9e6a6c26dc40ff3b..227600cd636048478126adbb20bc7be1157577b1 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/pnp.h>
index e54c153831937f8985a28ded2ccd71a4f55458e5..e161423b4300d7f76c6f2b5a207362e2e4688ed1 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/list.h>
 #include <linux/module.h>
index 3ff7e76b33bde2201ead86a4c49b585d320a20af..0697ab88a9ac5df1fcb04e519438c9a594456e26 100644 (file)
@@ -8,7 +8,6 @@
  
 /* TODO: see if more isapnp functions are needed here */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/isapnp.h>
 #include <linux/string.h>
index ac7c2bb6c69e683a148b4285550b99dfd1bb7c00..f2e0179962e2f85f6aae48db8bacc42c6ac9f700 100644 (file)
@@ -34,7 +34,6 @@
  *  2003-08-11 Resource Management Updates - Adam Belay <ambx1@neo.rr.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index cf54b0a3628e64fe2d6c642eb191ba703fd74b18..958c11bedd0d66da73e35de1d7d02f3760aaf91f 100644 (file)
@@ -19,7 +19,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/isapnp.h>
 #include <linux/proc_fs.h>
index 1d7a5b87f4cbc3157e7abbf86d11da638f748eeb..5026b345cb30226c7ed3d13dc3cc664e41e75edd 100644 (file)
@@ -6,7 +6,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/init.h>
index f104577f73e09f7daac4c3523e04b280b28fc779..6cf34a63c79044f39f122633b07d836fb75eb4ef 100644 (file)
@@ -19,7 +19,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
  
-#include <linux/config.h>
 #include <linux/acpi.h>
 #include <linux/pnp.h>
 #include <acpi/acpi_bus.h>
index c89c98a2cca8004dd826130a4bbf5e93efa724f3..ef508a4de557fd23ca4816f9313b3e4a66846dea 100644 (file)
@@ -3,7 +3,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/ctype.h>
 #include <linux/pnp.h>
 #include <linux/pnpbios.h>
index 8936b0cb2ec3718bc60937efcace3bc22c27b2fb..e97ecefe85841c966be495f27588ea128684bc25 100644 (file)
@@ -11,7 +11,6 @@
  *  Copyright (c) 1999 Martin Mares <mj@ucw.cz>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 7bb892f58cc09815da0ee5963417cbc312bf0f9b..e7cf6bec737ecf1d71e44102146a842370c1398b 100644 (file)
@@ -6,7 +6,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/interrupt.h>
index 61fe998944bd1ce0d0f6816687f964861e8d8934..946a0dcd627dcc0a30c48246827057a30bae7076 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/ctype.h>
 #include <linux/pnp.h>
index 94e30fe4b8f3242b17f8adc5c1623669d2a513b6..7bf7b2c88245358e023b1ddc8d97a19999b1a047 100644 (file)
@@ -10,7 +10,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 
index bef9316e95df8b610302f0716f930b52bae383c7..5687b8fcbf93d4f62e7a666704dc512cf06b3397 100644 (file)
@@ -10,7 +10,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/rio.h>
 #include <linux/rio_drv.h>
index 5e382470faa27fdb538e263ed6e83dee556d7f47..f644807da2f911b92503abcb18c91a6868fd5a00 100644 (file)
@@ -11,7 +11,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 
index f2fc81a9074d8af26c79940f87ddaa8c98712999..d51afbe014e56bcdb551d28f93beeb9d6755d41f 100644 (file)
@@ -15,7 +15,7 @@ config RTC_CLASS
        help
          Generic RTC class support. If you say yes here, you will
          be allowed to plug one or more RTCs to your system. You will
-         probably want to enable one of more of the interfaces below.
+         probably want to enable one or more of the interfaces below.
 
          This driver can also be built as a module. If so, the module
          will be called rtc-class.
index 2dc179b14ce6484e5dd6f53a8221461d0854857f..4bf03fb67f8d46320e72a068e84aa4230a53d017 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kmod.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
index 9e9ae71796028162b94d45316776ec2b2f7f0d6b..d7295386821cb39884811519a1262c47c9b1c345 100644 (file)
@@ -13,7 +13,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/ctype.h>
 #include <linux/init.h>
 #include <linux/module.h>
index 4002f6c1c1b3222a01b1fa2ced3b8df3da0fe043..23fa0b289173e84098c48411ac10287db517e8e1 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
index 0dfab30e8089814ca75b1320ce4114a0942dcb8a..2e655f466743e32c5f7f1b72f6e48a016215440d 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
index 4108d96f6a5a8b9ae5622c79efc09f16adf38b04..58a65097922bb430d3f8e6b224755596e71fb746 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/ctype.h>
 #include <linux/init.h>
 
index bb7755b9b19d7dfa408a9d79c959ff40f858468e..808434d38526a6b30504ee48ff060b6defdb08f1 100644 (file)
@@ -6,7 +6,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <asm/debug.h>
index 61ffde718a7a84f881969d0b51a5a0cd394b4829..12c7d296eaa8a6bcbb9268d4b38494e1e5a68535 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/fs.h>
 #include <linux/blkpg.h>
index 302bcd0f28be4c4532862915417ba2a5add9ea2d..e97f5316ad2d5629c7986c87bd17051d9c0d0d2b 100644 (file)
@@ -9,7 +9,6 @@
  *
  * i/o controls for the dasd driver.
  */
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/major.h>
 #include <linux/fs.h>
index ad23aede356c63254f8aa215284425fd71b51a54..bfa010f6dab25275223d7c6fde5e6e753883fa73 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/ctype.h>
 #include <linux/seq_file.h>
 #include <linux/vmalloc.h>
index 606f6ad285a0e3db07ea97f919d467c35818d6c1..f25c6d116f6f6f8a130d84501c5e4ea348e560f2 100644 (file)
@@ -11,7 +11,6 @@
  *            Dan Morrison, IBM Corporation (dmorriso@cse.buffalo.edu)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kdev_t.h>
index ef607a1de55a30707ac2098eeea64a9f3cc41b24..7566be8906889036aab0056d777d789b46029a19 100644 (file)
@@ -8,7 +8,6 @@
  *     -- Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation
  */
 
-#include <linux/config.h>
 #include <linux/bootmem.h>
 #include <linux/console.h>
 #include <linux/init.h>
index be463242cf0f6c4a1262e53786bba5da4b48ba92..0ea6f36a25277862234b3045f35fa6d70689baa6 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <asm/errno.h>
 #include <linux/sysrq.h>
index a6415377bc736b62dfa37277e205334c9381194f..6099c14de42910319141ec492b6ada8bc1b8da9f 100644 (file)
@@ -8,7 +8,6 @@
  *     -- Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation
  */
 
-#include <linux/config.h>
 #include <linux/bootmem.h>
 #include <linux/console.h>
 #include <linux/init.h>
index d4d2ff0a9da2003eb7ed8cd0d2b70dc0ae827c3b..547ef906ae2c7839c7751c4d54ed3317b6f2880e 100644 (file)
@@ -7,7 +7,6 @@
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/sysrq.h>
index 3c1314b7391b0fe5141982210c366dfb902875e0..e95b56f810dbb25e1e4aea8730e6fa271c1bbcd3 100644 (file)
@@ -8,7 +8,6 @@
  *     -- Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation
  */
 
-#include <linux/config.h>
 #include <linux/bootmem.h>
 #include <linux/module.h>
 #include <linux/err.h>
index 10ef22f1354168b2d0007ca861a871fa44bec9b0..86864f641716045b4b9e234018962136c1a1095e 100644 (file)
@@ -8,7 +8,6 @@
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/kmod.h>
 #include <linux/console.h>
 #include <linux/init.h>
index 80f7f31310e677465af3d848411a5850d70bb5df..732dfbdb85c45860c575e7c6667fbdfc3d35c0b8 100644 (file)
@@ -5,7 +5,6 @@
  * SCLP Control-Program Identification.
  */
 
-#include <linux/config.h>
 #include <linux/version.h>
 #include <linux/kmod.h>
 #include <linux/module.h>
index a4c53c172db6440bc9e0892169dd7ec835e012ef..32004aae95c1738629b74c437ed9303d8f32197d 100644 (file)
@@ -7,7 +7,6 @@
  *             Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/cpumask.h>
index 91e93c78f57a0340657f1130ff33a9d20b4854e8..0c92d3909cca411f6fac68d8ff758d22457a2f48 100644 (file)
@@ -8,7 +8,6 @@
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/kmod.h>
 #include <linux/types.h>
 #include <linux/err.h>
index 6cbf067f1a8f8b4720686d22f3c15a3fea94f848..f6cf9023039e352bed29b71ca0da273ecd8b6d24 100644 (file)
@@ -8,7 +8,6 @@
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kmod.h>
 #include <linux/tty.h>
index 9e02625c82cfc2853b3fa5be86fb883ddb82c8c2..54fba6f171883fda8384ab794adb77f761759991 100644 (file)
@@ -7,7 +7,6 @@
  *    Author(s): Peter Oberparleiter <Peter.Oberparleiter@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/spinlock.h>
 #include <linux/list.h>
index cd51ace8b61060bc72884acce4fe3dd0e49ccee4..1f4c89967be4f0b7c742cba55455ed284a202121 100644 (file)
@@ -16,7 +16,6 @@
 #include <asm/ccwdev.h>
 #include <asm/debug.h>
 #include <asm/idals.h>
-#include <linux/config.h>
 #include <linux/blkdev.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index d4f2da7380784850d354515a29434b16fe457b86..48b4d30a725612fedef6af60ba58d0bff4a792cf 100644 (file)
@@ -8,7 +8,6 @@
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/bio.h>
index d71ef1adea59815b1e821460870fe45f94d55e52..928cbefc49d5959932f501b183487254e578f0c2 100644 (file)
@@ -8,7 +8,6 @@
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/bio.h>
index b70d926902424dd9943c8dbfbc1c8353a03b7804..3225fcd1dcb47eb41d86a5b2e4ea7cd18a208971 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 #include <linux/fs.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/blkdev.h>
 #include <linux/interrupt.h>
index 5ce7ca38ace0d54db704191c1a295ce3e81514e5..97f75237bed6cbc3b2d64767a8e915e4eeee6740 100644 (file)
@@ -10,7 +10,6 @@
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/proc_fs.h>
index e6e4086d3224bf077ff2025c53953a2b371c722b..122b4d8965c36028ccb2d2e657104eb14c9a6f04 100644 (file)
@@ -11,7 +11,6 @@
  *              Stefan Bader <shbader@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>             // for kernel parameters
 #include <linux/kmod.h>             // for requesting modules
index 5fec0a10cc3d089b172da95a59acbe6aaca7e744..655d375ab22bc626fdc9ad3aba7197dcd2b9e736 100644 (file)
@@ -11,7 +11,6 @@
  * PROCFS Functions
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/vmalloc.h>
 #include <linux/seq_file.h>
index 99cf881f41db8b3f995c5199e8440bb18f6ab711..7a76ec413a3a15ac239367f821ffed0458420dd2 100644 (file)
@@ -11,7 +11,6 @@
  *              Stefan Bader <shbader@de.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/bio.h>
index 7d26a3e4cb80797f10256e5de65f389f619cd960..f496f236b9c06c3954ea9e885f49ed0c6c5b9ed1 100644 (file)
@@ -8,7 +8,6 @@
  *     -- Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kdev_t.h>
index 15b895496a45025038559b18eb874d1b6b6cfc50..12c2d6b746e697b5e017d6414f2281a509aae1ff 100644 (file)
@@ -9,7 +9,6 @@
  *              Arnd Bergmann (arndb@de.ibm.com)
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/vmalloc.h>
 #include <linux/slab.h>
index b00f3ed051a094bf259d90b62026959ad139143c..a01f3bba4a7b094d81edf8d128371e350e666093 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/init.h>
 #include <linux/device.h>
index 5b20d8c9c0257eec01184b8de15eb4bd2167dd12..a3423267467fba0bec2c1d88809d1be0b8c4c796 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/slab.h>
 #include <linux/device.h>
index eafde43e8410cd3e1f041343f86dad2bd543d8c6..67f0de6aed33942ba078887e272287cdfca9ae7d 100644 (file)
@@ -8,7 +8,6 @@
  *              Cornelia Huck (cornelia.huck@de.ibm.com)
  *              Martin Schwidefsky (schwidefsky@de.ibm.com)
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/spinlock.h>
index 7d0dd72635ebde671ce882d13cab17ad6094019f..cb1af0b6f033c4b43e057f29e9ddf2ef2d4596b0 100644 (file)
@@ -9,7 +9,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/jiffies.h>
 #include <linux/string.h>
index e60b2d8103b8b547627405b755f4b193ac6055c0..438db483035d033a85013e184fcef818a75dcfd2 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/init.h>
 
 #include <asm/ccwdev.h>
index b266ad8e14ff2623fc6e5cea70e04d9a4160435b..a60124264beec97583a150973f07550eb4845193 100644 (file)
@@ -6,7 +6,6 @@
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  *               Cornelia Huck (cornelia.huck@de.ibm.com)
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/errno.h>
index 85b1020a1fcce51e6371852fa4cf12c5d6cca772..54cb64ed0786dc469957f7b2089bff7f6402d40e 100644 (file)
@@ -9,7 +9,6 @@
  * Path Group ID functions.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 
index 6c762b43f921cf5f063d3499e91d70efa1615dbb..14bef2c179bf383f7eecb4f1506710b6bb0991ad 100644 (file)
@@ -9,7 +9,6 @@
  * Status accumulation and basic sense functions.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 
index 96f519281d92c4452207d746269bbae2d7925adf..b70039af70d6204062850f8b3089f6e9765084e5 100644 (file)
@@ -30,7 +30,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 
index 7145e2134cf00c19d7a27711ad5de3c1eccccb22..2c1db8036b7c7aa04bbc33b725da877a0794601b 100644 (file)
@@ -4,7 +4,6 @@
  */
 
 #include "fsm.h"
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/timer.h>
 
index e0c7deb9883189f012d0b27d67c83db08317b01e..189a49275433879f1935685c8a51b05d8ab6158e 100644 (file)
@@ -33,7 +33,6 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <linux/config.h>
 
 #include <linux/spinlock.h>
 #include <linux/kernel.h>
index 38aad8321456e9142d60c293e4e42bfb6965a578..8491598f91495fe30fae194c4ef312540809cdd7 100644 (file)
@@ -8,7 +8,6 @@
  *    Author(s): Thomas Spatzier <tspat@de.ibm.com>
  *
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/ip.h>
 #include <linux/inetdevice.h>
index 56009d76832639dc3f28445e271e6ed8eeb18518..36733b9823c620d93ed456181cb7ea817ab66f23 100644 (file)
@@ -27,7 +27,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/string.h>
index 8dc75002acbea71b1788ed35d314b42dc0e70207..432136f96e643d91a538f96e7ae022311fc59155 100644 (file)
@@ -8,7 +8,6 @@
  *              Martin Schwidefsky (schwidefsky@de.ibm.com)
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/sched.h>
 #include <linux/errno.h>
index 66da840c931672f4d70eef5e92b608b95d51fc75..d1c1e75bfd60d7a766302c1745b2f81d04a8f8b7 100644 (file)
@@ -5,7 +5,6 @@
  *    Author(s): Ulrich Weigand (Ulrich.Weigand@de.ibm.com)
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/proc_fs.h>
index cf97e9efe9b663a4c9338e6bcb26137e1f6c2690..063e676a3ac046e5de17809cce433ca281b21dd5 100644 (file)
@@ -22,7 +22,6 @@
 #define __KERNEL_SYSCALLS__
 static int errno;
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/kthread.h>
index 31b8a5f6116f83fc88a30e4459e4fe6dbc2590b0..fa2418f7ad393c78af158a4540fa80cf6213d297 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (C) 1997  Eddie C. Dost  (ecd@skynet.be)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/errno.h>
index d7e4bb41bd79a5dcb8ffc21b849156a339654c6e..293bb2fdb1d5540285734993b8dd108dd4914db7 100644 (file)
@@ -29,7 +29,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 378a1d68024da32556eeda812f5dfea7a0203b86..57e1526746a27e1ae8424d12c2cbd3f326ef9101 100644 (file)
@@ -3,7 +3,6 @@
  * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
index 387a6aa8c020cf8746c4f8a8807d803f3499930a..16b59773c0bb9b66828b2887d4d4aa9f4af080fb 100644 (file)
@@ -5,7 +5,6 @@
 
 #include <linux/kernel.h>
 #include <linux/slab.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/pci.h>
 
index 3c683dc23541cc017ffb703005400220872feb2f..eb7a6a4ded756bc4e3e31e28fa567e9400ad18f4 100644 (file)
  * */
 #define NCR_700_VERSION "2.8"
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/string.h>
index 765769a629e444a86f2cf7a25f73bf6b09314c0d..c9bd0335995d2ece51d021eeb05ed13c2de3bf37 100644 (file)
 
 #include <linux/module.h>
 
-#include <linux/config.h>
 
 #include <linux/types.h>
 #include <asm/setup.h>
index bde3d5834ade134c8ba1a44915af2cd5b027a64f..259b47ec4f540ccaf9a67fdeee6e1884cb26c0e1 100644 (file)
@@ -29,7 +29,6 @@
 #define BusLogic_DriverVersion         "2.1.16"
 #define BusLogic_DriverDate            "18 July 2002"
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
index 1aaa6569edacdd771ef74bad2f9c62bdb56b4d3d..9792e5af5252c4a6378490667fe64f5318c64dac 100644 (file)
@@ -28,7 +28,6 @@
 #ifndef _BUSLOGIC_H
 #define _BUSLOGIC_H
 
-#include <linux/config.h>
 
 #ifndef PACKED
 #define PACKED __attribute__((packed))
index 8e3d949b7118ac54b9d6864cdd3915deaa8197d3..7c00680495867d0a81a2f81d379a270fb1ff846a 100644 (file)
@@ -15,7 +15,6 @@
 
 */
 
-#include <linux/config.h>
 
 #ifndef CONFIG_SCSI_OMIT_FLASHPOINT
 
index c7dd0154d012b10bdeb5fc4d51a855955e0b61ac..8a4659e94105c58c81327db2cbc876bf46c93611 100644 (file)
@@ -23,7 +23,6 @@
 
 #include <linux/module.h>
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
 #include <linux/types.h>
index 65a9b377a410d983bd75e3037bf6aec13611f734..481653c977cf34523dff40e5d1c727ef6f9a80b9 100644 (file)
@@ -13,7 +13,6 @@
 #ifndef NCR53C9X_H
 #define NCR53C9X_H
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 
 /* djweis for mac driver */
index dd9fb3d91000a7794c10a5f30cd7b42f18e261b4..537136457ea02b022b1c3c4633f7f264051c0063 100644 (file)
  * --- Linux Include Files
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #if defined(CONFIG_X86) && !defined(CONFIG_ISA)
index 86c6bd234591c7c8af1211f8bc4519c7c33230f7..24f0f5461792d4068c35d053a6967cb4525b6347 100644 (file)
@@ -25,7 +25,6 @@
  *        Added proper detection of the AHA-1640 (MCA version of AHA-1540)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/interrupt.h>
 #include <linux/kernel.h>
index 2b8331649eeb74caa6d0edc5db2907d2ce0ab10d..92c6154575e792566c0d38de0f852dd42f2b5324 100644 (file)
@@ -42,7 +42,6 @@
 #ifndef _AIC79XX_LINUX_H_
 #define _AIC79XX_LINUX_H_
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/blkdev.h>
 #include <linux/delay.h>
index a20b08c9ff15ef8aa51501fe59f7887f495de21b..d42a71ee076df62f7c59cca626398984966a1027 100644 (file)
@@ -59,7 +59,6 @@
 #ifndef _AIC7XXX_LINUX_H_
 #define _AIC7XXX_LINUX_H_
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/blkdev.h>
 #include <linux/delay.h>
index 3bf334931a8a0ad75801a5d1a941c5fcda4309ca..b07e4f04fd00b3b82e3121a9decd8fe87b1a5a5e 100644 (file)
@@ -29,7 +29,6 @@
  *  $Id: aic7xxx_proc.c,v 4.1 1997/06/97 08:23:42 deang Exp $
  *-M*************************************************************************/
 
-#include <linux/config.h>
 
 #define        BLS     (&aic7xxx_buffer[size])
 #define HDRB \
index c0844fa32c5de60aa775216f3352c6e73383411b..9099d531d5a4402cb401ee0f97bf6f2efe96e51d 100644 (file)
@@ -11,7 +11,6 @@
 #include <linux/mm.h>
 #include <linux/blkdev.h>
 #include <linux/sched.h>
-#include <linux/config.h>
 #include <linux/zorro.h>
 #include <linux/stat.h>
 
index dda5a5f79c53297af2cd8ebaa6a64d884bde5971..1b9900b5895642cfaa75955c47a81572cbcd3b9b 100644 (file)
 #define STRx(x) STRINGIFY(x)
 #define NO_WRITE_STR STRx(NO_WRITE)
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 57295bcea3e766a4ae87d760ab6bf4cf1be35b32..007a14e5c3fddac952adcdd467c72bd744329007 100644 (file)
@@ -524,7 +524,6 @@ static __inline__ void initialize_SCp(Scsi_Cmnd *cmd)
     }
 }
 
-#include <linux/config.h>
 #include <linux/delay.h>
 
 #if NDEBUG
index f677c5a32a681c505b8322263f4e3c987acdd00d..e1be4a4387cd5309351c1bd78ae428663d4a4d62 100644 (file)
@@ -65,7 +65,6 @@
 
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #define NDEBUG (0)
index d9abd1645d1550ab7d693e652843fd7acf6a4d42..f6caa43077680b3a87d1621e3006f40883a1eb35 100644 (file)
@@ -7,7 +7,6 @@
 
 #define VERSION "0.25"
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/fs.h>
index d92d5040a9feed7eacd728a00d03e56f5f2abf40..dddd2acce76f0cd11a4151cfd4752834432b1914 100644 (file)
@@ -7,7 +7,6 @@
  * Additions for SPC-3 T10/1416-D Rev 21 22 Sept 2004, D. Gilbert 20041025
  */
 
-#include <linux/config.h>
 #include <linux/blkdev.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index a9585f5235d92a63b184ffa54c46dfcef6d31d24..d84a281ad944a518987c28cebefddd9d11da7bdb 100644 (file)
@@ -23,7 +23,6 @@
 
 #include <asm/semaphore.h> /* Needed for MUTEX init macros */
 #include <linux/version.h>
-#include <linux/config.h>
 #include <linux/notifier.h>
 #include <asm/atomic.h>
 
index 059eeee4b55412cbb4c0d534308fae807a13ba02..67c419402d8aa96aed629d5e6736eaadfa072f30 100644 (file)
  *  the driver sets host->wish_block = 1 for all ISA boards.
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/ioport.h>
index 23beb48c79c58e62ddbda9498237e62c1aad6124..d8c9ec21e0efc840467a614caa864e5b097fea86 100644 (file)
@@ -46,7 +46,6 @@
  *  last change: 2002/11/02               OS: Linux 2.5.45  *
  ************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index ddb512463b457f64041854c28d2e51b58e0e9fbf..36c50b61f94da76057829677373852c2d968f9f5 100644 (file)
@@ -12,7 +12,6 @@
  * 3) Add tagged queueing.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
 #include <linux/types.h>
index 03416548f20cfc70deb7fcac76faf2710a8fa319..7f891023aa15c9857e21f7bdb59610f7305e4d58 100644 (file)
@@ -13,7 +13,6 @@
 #include <linux/proc_fs.h>
 #include <linux/stat.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #ifdef CONFIG_KMOD
 #include <linux/kmod.h>
 #endif
index e16013f0ad6ee6570833ee1df7f5bcb82aa2e08a..03356887202dec8263b16b3e41933bc1af9f5384 100644 (file)
 
  **************************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
index 5f313c93b7a943e3809d7a6de2d6cdbad859f875..fbc8e16c8d1566315bb2f006aab9c75f3e02b885 100644 (file)
@@ -91,7 +91,6 @@
 #define AUTOPROBE_IRQ
 #define AUTOSENSE
 
-#include <linux/config.h>
 
 #ifdef CONFIG_SCSI_GENERIC_NCR53C400
 #define NCR53C400_PSEUDO_DMA 1
index d60a89cb8052b2f20f12d77b583a82429b73b603..df0b3f69ef635ae6d850269f32c36e0fadff6595 100644 (file)
@@ -32,7 +32,6 @@
 #ifndef GENERIC_NCR5380_H
 #define GENERIC_NCR5380_H
 
-#include <linux/config.h>
 
 #define GENERIC_NCR5380_PUBLIC_RELEASE 1
 
index 497f6642b2dc55da4ba6c71ba23b9404d49e315e..1cbc94842cc6331162bd9ad805ccfc6d07e66023 100644 (file)
@@ -17,7 +17,6 @@
  
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index 988e6f7af01a28d4a5bf9fc67e3b2428696279ea..f7b5d7372d2638abb7c681210459c0c5d6a11263 100644 (file)
@@ -34,7 +34,6 @@
 #define IDESCSI_VERSION "0.92"
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
index 681bd18493f3c1afd29825330bcf7caa06f1b5cd..2d95ac9c32c1576e1a6ea01c562fac839330dac6 100644 (file)
@@ -8,7 +8,6 @@
  *              future expansion to five letters.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index 913ba95f85bdf297551dd8985a8480e5732ac1de..43acb1fe90b48e167ee9e66ac5a992435ca7e5db 100644 (file)
 #include <linux/blkdev.h>
 #include <linux/spinlock.h>
 #include <linux/stat.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/proc_fs.h>
 #include <linux/string.h>
index 3efb1184fc39ea66230eea7bd5c08530dc31f9d2..acb67a4af2cce0ad5bab6b4262580176bd539fb2 100644 (file)
@@ -54,7 +54,6 @@
  **************************************************************************/
 
 
-#include <linux/config.h>
 #include <linux/types.h>
 
 #define ULONG   unsigned long
@@ -193,13 +192,13 @@ typedef struct {
 #define TSC_SEL_ATN_DIRECT_OUT  0x15   /* Select With ATN Sequence     */
 #define TSC_SEL_ATN3_DIRECT_IN  0xB5   /* Select With ATN3 Sequence    */
 #define TSC_SEL_ATN3_DIRECT_OUT 0x35   /* Select With ATN3 Sequence    */
-#define TSC_XF_DMA_OUT_DIRECT   0x06   /* DMA Xfer Infomation out      */
-#define TSC_XF_DMA_IN_DIRECT    0x86   /* DMA Xfer Infomation in       */
+#define TSC_XF_DMA_OUT_DIRECT   0x06   /* DMA Xfer Information out      */
+#define TSC_XF_DMA_IN_DIRECT    0x86   /* DMA Xfer Information in       */
 
-#define TSC_XF_DMA_OUT  0x43   /* DMA Xfer Infomation out              */
-#define TSC_XF_DMA_IN   0xC3   /* DMA Xfer Infomation in               */
-#define TSC_XF_FIFO_OUT 0x03   /* FIFO Xfer Infomation out             */
-#define TSC_XF_FIFO_IN  0x83   /* FIFO Xfer Infomation in              */
+#define TSC_XF_DMA_OUT  0x43   /* DMA Xfer Information out              */
+#define TSC_XF_DMA_IN   0xC3   /* DMA Xfer Information in               */
+#define TSC_XF_FIFO_OUT 0x03   /* FIFO Xfer Information out             */
+#define TSC_XF_FIFO_IN  0x83   /* FIFO Xfer Information in              */
 
 #define TSC_MSG_ACCEPT  0x0F   /* Message Accept                       */
 
index 96b65b307dd05e1854fc8f533ffab181eea9f2a2..e19bf690cdf112559aeae41ab29138b4a83f1603 100644 (file)
@@ -54,7 +54,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/init.h>
 #include <linux/types.h>
index 78f2ff736c3eccfb2b9042a9229e040c72dd3f9d..7436793c3ad365339576ba50d7de36ad398f2177 100644 (file)
 #include <linux/module.h>
 
 #include <linux/stat.h>
-#include <linux/config.h>
 
 #include <linux/spinlock.h>
 #include <linux/init.h>
index 004e1a0d8b711df18570688eb9f861ae087bac76..38bfebf4fe8fd6c10911c3dfa97b344e5e3d7dfb 100644 (file)
@@ -32,7 +32,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/libata.h>
index d1c1c30d123f36946d74cbd873ddad63d1902ae4..82caba464291e7aa8a193c94254a1f39a733b70d 100644 (file)
@@ -32,7 +32,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/pci.h>
index f852421002ef7fb44de3f3d6046e01b631416cf5..c88717727be8ed58e9cbf23a2b1c376a2819ac09 100644 (file)
@@ -18,7 +18,6 @@
  * - retry arbitration if lost (unless higher levels do this for us)
  * - power down the chip when no device is detected
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
index 0e4e46a01336530dc4204b1f1a7a8f86b9500896..78818b6684f83b35105502726b5d4f8befb25e2c 100644 (file)
 #ifndef NCR53C8XX_H
 #define NCR53C8XX_H
 
-#include <linux/config.h>
 #include <scsi/scsi_host.h>
 
-#include <linux/config.h>
 
 /*
 **     If you want a driver as small as possible, donnot define the 
index dee426f8c07b566bd8fdbdf148483b40e4f09e06..d7a0bcc6c6708051842147c232edf7912506638c 100644 (file)
@@ -6,7 +6,6 @@
  * Based on cyber_esp.c
  */
 
-#include <linux/config.h>
 
 #if defined(CONFIG_AMIGA) || defined(CONFIG_APUS)
 #define USE_BOTTOM_HALF
index 08ce8d80d8f59094279e4eefb540c6d3c4a93979..8a7340b02707bb014dcda7c637a7ab30f559fc31 100644 (file)
@@ -23,7 +23,6 @@ int oktag_from_io(long *addr,long *paddr,long len)
  * is moved to/from the IO register.
  */
 
-#include <linux/config.h>
 
 #ifdef CONFIG_APUS
 
index 011d4d6ca9f9780835bdbe67641f7c9bb863356a..1e426f5d0ed8a734357c58897ff7619609b7a046 100644 (file)
@@ -3,7 +3,6 @@
  */
 
 #include <asm/byteorder.h>
-#include <linux/config.h>
 #include <linux/completion.h>
 
 /*     FIXME - rename and use the following two types or delete them!
index 83a671799934465240952a5b1b4d5f8b455dd1e3..7abf64d1bfc9960c051b827b6d3c0377e51041be 100644 (file)
@@ -13,7 +13,6 @@
 #include <linux/proc_fs.h>
 #include <linux/stat.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #ifdef CONFIG_KMOD
 #include <linux/kmod.h>
 #endif
index d58ac5ad509d1963801c4d83d02057f85fff8367..b0eba39f208af27612ed5c86cd45c5cffe5e6205 100644 (file)
@@ -8,7 +8,6 @@
  * 
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index 680f6063954b2a94a3246266a68bdd830fa1fe96..a7e4183462b810ea265462e5765133f57ec42214 100644 (file)
 *****************************************************************************/
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/version.h>
index d6f6579cfd277671da7fcfcbdccba0fef26ffe14..6734453ea28acc823b8121a521527a93cc5ff973 100644 (file)
@@ -2134,7 +2134,7 @@ typedef struct scsi_qla_host {
        mempool_t       *srb_mempool;
 
        /* This spinlock is used to protect "io transactions", you must
-        * aquire it before doing any IO to the card, eg with RD_REG*() and
+        * acquire it before doing any IO to the card, eg with RD_REG*() and
         * WRT_REG*() for the duration of your entire commandtransaction.
         *
         * This spinlock is of lower priority than the io request lock.
index 5cc42c6054eb66ebd8dbc67052b3e86ca4f2032a..56da25581f31a345486229e187bd7077784f6949 100644 (file)
@@ -31,7 +31,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/pci.h>
index 809d337ed64184f6423d93f06e26cacd2219d389..ee6b5df41d309833d1ffdbdd2e9cd1bc0fd2330b 100644 (file)
@@ -30,7 +30,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/pci.h>
index 7566c2cabaf725bcde3d2c7ac4fa09add5259e0e..a958b45e597c709a75f21714efd09bccef87e35f 100644 (file)
@@ -36,7 +36,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/pci.h>
index 64f3c1aeed217d5f07250a69c8f8e8afacff8d77..33cdb4867ef13bd222b92695bf2317eb741d8f67 100644 (file)
@@ -24,7 +24,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/pci.h>
index 5a5d2af8ee43bdae6f8f0fa8523be9e243d0f4b4..e1168860045cb3522324fd66aae6c5e88da0bd8c 100644 (file)
@@ -24,7 +24,6 @@
  *        module options to "modprobe scsi_debug num_tgts=2" [20021221]
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index a3e2af6a846c732ac0298a26cc58a4ed29a5aa49..1f65139e14f8d3e9dc470c696c1e3aedabf344a8 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef _SCSI_LOGGING_H
 #define _SCSI_LOGGING_H
 
-#include <linux/config.h>
 
 /*
  * This defines the scsi logging feature.  It is a means by which the user
index a1727a0e1bdd7cd1eaced522ba5636f66ff74898..015c90cf3abc898b7788a6eaab8b616fee361a18 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef _SCSI_PRIV_H
 #define _SCSI_PRIV_H
 
-#include <linux/config.h>
 #include <linux/device.h>
 
 struct request_queue;
index 0f7e6f94d66bd0149bcba35b3c0af6bd9471c780..1341608e9e3b8453c52b0872b85466aa05fe3bc3 100644 (file)
@@ -25,7 +25,6 @@
  *             or a LUN is seen that cannot have a device attached to it.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
index 5ec7a4fb0145bfc83b488cdae27a1e2a16e9a81a..e7fe565b96de93ffb5354d4c86d36dfd46410806 100644 (file)
@@ -6,7 +6,6 @@
  * Created to pull SCSI mid layer sysfs routines into one file.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/blkdev.h>
index ace49d5bd9c49a307ad01959cb50849f560f174e..29a9a53cdd1a14f2475693db505b374848201103 100644 (file)
@@ -18,7 +18,6 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
-#include <linux/config.h>
 #include <linux/ctype.h>
 #include <linux/init.h>
 #include <linux/module.h>
index 354199011246633ce9cf8fcc172231648492d6ef..ea38757d12e5852f38b41ab075f8b386b644ae30 100644 (file)
@@ -32,7 +32,6 @@
  *     than the level indicated above to trigger output.       
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/fs.h>
 #include <linux/kernel.h>
index 98b9312ba8da233344751ea5a9820f0a3becc102..4e607d3065bc3333241856a262894f4bf417b995 100644 (file)
@@ -28,7 +28,6 @@ static int sg_version_num = 30533;    /* 2 digits for each component */
  *        (otherwise the macros compile to empty statements).
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/fs.h>
index 255886a9ac55c29b88660dd4dfdc7f7a09b0ef81..2b2789345c13e67cc7b754ed9304e106883d0f44 100644 (file)
@@ -26,7 +26,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/blkdev.h>
index 9dde8df2f5c9feccf5d3ae98daad805b37bcecd3..a3e9d0f2eb5ba2da67f6431e68888487ac93158d 100644 (file)
@@ -34,7 +34,6 @@
  *              HP 6020 writers now supported.
  */
 
-#include <linux/config.h>
 #include <linux/cdrom.h>
 #include <linux/errno.h>
 #include <linux/string.h>
index 25cced91c8a63c0e3b85ad4e062e71be27f07eaa..2ebe0d66389969b3cc6504ee7deed2515e4e1fc0 100644 (file)
@@ -535,7 +535,6 @@ static __inline__ void initialize_SCp(Scsi_Cmnd *cmd)
     
 }
 
-#include <linux/config.h>
 #include <linux/delay.h>
 
 #if 1
index 481103769729f024fbcdba26a048600b5137d10e..7519728dfc382d2a20140679c26c03bdb7534683 100644 (file)
@@ -40,7 +40,6 @@
 #ifndef SYM53C8XX_H
 #define SYM53C8XX_H
 
-#include <linux/config.h>
 
 /*
  *  DMA addressing mode.
index a446cda3f64c015d6a8fe1301497b6a888bed6e5..e022d3c71b59fc55e5679315ae167600fd091ce7 100644 (file)
@@ -40,7 +40,6 @@
 #ifndef SYM_GLUE_H
 #define SYM_GLUE_H
 
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/ioport.h>
 #include <linux/pci.h>
index 91322aff241d4a8447ca7aea0d8ad9828f74c1bb..7540f6a7529f72a81d6062957d177591441d9682 100644 (file)
 #endif
 #define DCBDEBUG1(x) C_NOP
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/delay.h>
 #include <linux/signal.h>
index d4495272fb40d4991043198527eb666cef7bf794..9b66fa8d38d948129df809016c0e81deb87cc900 100644 (file)
@@ -9,7 +9,6 @@
 #define _TMSCSIM_H
 
 #include <linux/types.h>
-#include <linux/config.h>
 
 #define SCSI_IRQ_NONE 255
 
index 33cd90fc657b839d0659768e4f013ccb88b9e4f7..35c043e38ed45c93f3c0eef40236e5647ec380f8 100644 (file)
  *  the driver sets host->wish_block = TRUE for all ISA boards.
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/ioport.h>
index 27307fe5a4c8d8b7ea3d19d25ee3decbe8818e01..680f38ab60d8800c4458738b337a75156bba5d17 100644 (file)
@@ -71,7 +71,6 @@
  *     Richard Hirst <richard@sleepie.demon.co.uk>  August 2000
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/sched.h>
index 193ec517d252ac73a048578c14c970820f3b0618..edcb0365cf0c4d88a3bbff42fed3970da8ba704d 100644 (file)
@@ -22,7 +22,6 @@
 #ifndef WD33C93_H
 #define WD33C93_H
 
-#include <linux/config.h>
 
 #define PROC_INTERFACE     /* add code for /proc/scsi/wd33c93/xxx interface */
 #ifdef  PROC_INTERFACE
index 9fd0de4b7afdb961608af0d0c62b1e7c8d56cbf6..57438326b07f94549e32705801e16e8ced09acd5 100644 (file)
@@ -7,7 +7,6 @@
  *
  *  $Id: 21285.c,v 1.37 2002/07/28 10:03:27 rmk Exp $
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/tty.h>
 #include <linux/ioport.h>
index bff94541991c099047ce91fa47f6563da27ff825..993a702422ec6e2e22175ea67e6c9bacb55ab093 100644 (file)
@@ -23,7 +23,6 @@
 #include <linux/interrupt.h>
 #include <linux/tty.h>
 #include <linux/tty_flip.h>
-#include <linux/config.h>
 #include <linux/major.h>
 #include <linux/string.h>
 #include <linux/fcntl.h>
index 978f8a609f3dbf8c3b4d901fae505331b4935de2..58aa2154655b01385b14e63df1abf81a24d32b9d 100644 (file)
@@ -11,7 +11,6 @@
 #ifndef _MC683XX_SERIAL_H
 #define _MC683XX_SERIAL_H
 
-#include <linux/config.h>
 
 struct serial_struct {
        int     type;
index 9843ae3d420e24f1441efc6513f0ed1ddbb945b2..e80e70e9b12620487236f4ec56b3cb416104fc53 100644 (file)
@@ -20,7 +20,6 @@
  *     int rs_360_init(void);
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
index f361b356bd1d693f79a8777e9a568fdc9878267b..9c5d36f501408a856fed964aac839653301c4ba6 100644 (file)
@@ -19,7 +19,6 @@
  *  mapbase is the physical address of the IO port.
  *  membase is an 'ioremapped' cookie.
  */
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_8250_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
index 490606b8709511e72ecd09dffc95836e43b694cd..91bd28f2bb473c637c8f19b719b9d5d8a84875a3 100644 (file)
@@ -15,7 +15,6 @@
  *  $Id: 8250.h,v 1.8 2002/07/21 21:32:30 rmk Exp $
  */
 
-#include <linux/config.h>
 #include <linux/serial_8250.h>
 
 struct old_serial_port {
index ac205256d5f308f758c5a325093bcaf2f3c86acd..d10be944ad44478818eff256d3254a0c12404c77 100644 (file)
@@ -8,7 +8,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/mca.h>
index e920d196d0b1b64bb6f0c3f3d1f2a1149ddb3504..7311d8487c9693f8e9b980faad8a8ee8210ee970 100644 (file)
@@ -31,7 +31,6 @@
  * required, these have to be supplied via some other means (eg, GPIO)
  * and hooked into this driver.
  */
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_AMBA_PL010_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
index 3d966cfc9a38cba524a5a13383f4c6bda4a62328..a8d7124e84a1a515a97caf514231efb5ae160ee6 100644 (file)
@@ -31,7 +31,6 @@
  * required, these have to be supplied via some other means (eg, GPIO)
  * and hooked into this driver.
  */
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_AMBA_PL011_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
index df9500bdaded4ebe5903e57e56dc16a746e7d6b7..7b3b3f3d510159f109808e478a7e9c21b6834391 100644 (file)
@@ -22,7 +22,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/tty.h>
 #include <linux/ioport.h>
index 2691112c84adacc0c52724ff5319d3852eb6ea65..f27d852ce50db48947e6343a958ac261eb3ffc41 100644 (file)
@@ -25,7 +25,6 @@
  *  $Id: clps711x.c,v 1.42 2002/07/28 10:03:28 rmk Exp $
  *
  */
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_CLPS711X_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
index 5cba59ad7dc5a38eff874cbc735ec140bdb2829c..90ff96e3339bce5c8817f833e66d5d9580661a50 100644 (file)
@@ -31,7 +31,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/tty.h>
 #include <linux/ioport.h>
index 17406a05ce1f8f0336e509e9d5917e9ba1a9898b..95afc37297a849253d495e744bb90b47cde3a437 100644 (file)
@@ -27,7 +27,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/tty.h>
 #include <linux/ioport.h>
index cdba128250a96e5f2f98a07c5dcbf2318c65ff92..ef3bb476c4326ab5c46b98cc43530a48c3312b93 100644 (file)
@@ -27,7 +27,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/tty.h>
 #include <linux/ioport.h>
index b84137cdeb2be6c55d361280f01021bb7ba70ad7..901be3483455ba01b8079d2950d199fdacab3eae 100644 (file)
 
 static char *serial_version = "$Revision: 1.25 $";
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
index 1800c0e7531a45e1c99fe36735a438b11db8844c..f30b93d6ef79ff85e7a0318eba71880d3c6a6686 100644 (file)
@@ -7,7 +7,6 @@
 #ifndef _ETRAX_SERIAL_H
 #define _ETRAX_SERIAL_H
 
-#include <linux/config.h>
 #include <linux/circ_buf.h>
 #include <asm/termios.h>
 
index 466d06cc7d3762473b812ddf45a4d4146dbd0e28..ecf824bd2d4e2bd205c301a31bb9824fafeb4d17 100644 (file)
@@ -26,7 +26,6 @@
 
 #undef DEBUG_DZ
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/interrupt.h>
 #include <linux/init.h>
index 144a7a352b28c4fb2328a3b0857d90fc72da4e90..ad1e753cbc535c05ad115dc26f7c28a5ed17c7b7 100644 (file)
@@ -24,7 +24,6 @@
   */
 #define SERIAL_DO_RESTART
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
index da85bafa09423fab636cc784d3dd1c98eb5de9e9..0b5f39d038b9ff4bf253c7b455094d495fbc841f 100644 (file)
@@ -25,7 +25,6 @@
  * [29-Mar-2005] Mike Lee
  * Added hardware handshake
  */
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_IMX_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
index 56b093ecd779eac6c122130d08724ac92baa9f9c..342042889f6e1c3000d9f5dc64f3f14a20c36f69 100644 (file)
@@ -12,7 +12,6 @@
  *  Copyright (C) 2002 Ralf Baechle (ralf@linux-mips.org)
  *  Copyright (C) 2002 David S. Miller (davem@redhat.com)
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 6a2a25d9b59638762f0c1830dbbd7d6056094fcd..fbaae96f4c938c54a2110793a82eb5e3cdbe90fc 100644 (file)
@@ -25,7 +25,6 @@
  *  membase is an 'ioremapped' cookie.  This is compatible with the old
  *  serial.c driver, and is currently the preferred form.
  */
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_M32R_SIO_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
index 7c3ec24f7e50413466b0350835f12c84ef4a136c..849f1b2c2531a41fb5f94b949343ab415318396e 100644 (file)
@@ -15,7 +15,6 @@
  * (at your option) any later version.
  */
 
-#include <linux/config.h>
 
 struct m32r_sio_probe {
        struct module   *owner;
index 9c864529451b1f1a2548ce2450e7ef6ab154a18d..4671473793e3ccb53a1f84f56fb7d8751228280a 100644 (file)
@@ -15,7 +15,6 @@
 #ifndef _M32R_SIO_REG_H
 #define _M32R_SIO_REG_H
 
-#include <linux/config.h>
 
 #ifdef CONFIG_SERIAL_M32R_PLDSIO
 
index a2b28e8629f92885d9328dae768ba0ab4374f7eb..56420e2cb110d946da96f24f631770d7502a3e6f 100644 (file)
@@ -14,7 +14,6 @@
 #ifndef _MCF_SERIAL_H
 #define _MCF_SERIAL_H
 
-#include <linux/config.h>
 #include <linux/serial.h>
 
 #ifdef __KERNEL__
index 1aa34844218cee9065bf7e3f8d4304af5b688fff..1b8e554f674f48619ac1190e73fec4efece579e2 100644 (file)
@@ -44,7 +44,6 @@
  * will be mapped to.
  */
 
-#include <linux/config.h>
 #include <linux/platform_device.h>
 #include <linux/module.h>
 #include <linux/tty.h>
index 1cd102f84bfad80bd789016880ddb4a9f2d0c94d..8c498f785e215b6f2efe307cf33c12c24d834bf6 100644 (file)
@@ -50,7 +50,6 @@
  * 4) AFAICT, hardware flow control isn't supported by the controller --MAG.
  */
 
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_MPSC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
index 64c0e89124c9983bc4a29e844e2842e9cac18fb8..4a1c9983f38f8e38a78e47f761b996da129c6969 100644 (file)
@@ -16,7 +16,6 @@
 **
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/tty.h>
 #include <linux/ioport.h>
index e3ba7e17a240b8cc080c11aacc7979d49454403f..4d9435451f4a202a6032b5d1a95f6f564aa079be 100644 (file)
@@ -42,7 +42,6 @@
 #undef DEBUG_HARD
 #undef USE_CTRL_O_SYSRQ
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/tty.h>
 
index 0fa0ccc9ed272b9c7dc8f9b4d71a64cc800969ed..a720953a404ee3be6d6da99484f537b40a116d66 100644 (file)
@@ -24,7 +24,6 @@
  * with the serial core maintainer satisfaction to appear soon.
  */
 
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_PXA_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
@@ -390,7 +389,7 @@ static int serial_pxa_startup(struct uart_port *port)
 
        /*
         * Finally, enable interrupts.  Note: Modem status interrupts
-        * are set via set_termios(), which will be occuring imminently
+        * are set via set_termios(), which will be occurring imminently
         * anyway, so we don't enable them here.
         */
        up->ier = UART_IER_RLSI | UART_IER_RDI | UART_IER_RTOIE | UART_IER_UUE;
index 4c62ab949ecc3e01aaf04da45ca23cb7d2443a21..392bffcf96e87635b2b5d47264dd438db0724883 100644 (file)
@@ -55,7 +55,6 @@
  * BJD, 04-Nov-2004
 */
 
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_S3C2410_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
index 8bbd8567669cdf955888cc0bccd4542a9470faab..db3486d338707cd9d1e22e24d78bf3d9e80f4c2c 100644 (file)
@@ -24,7 +24,6 @@
  *  $Id: sa1100.c,v 1.50 2002/07/29 14:41:04 rmk Exp $
  *
  */
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_SA1100_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
index 7dc1e67b6851b2e0ade005e73be8aea60a7df782..c54af8774393ed2a867e0aef1029055d79f8b560 100644 (file)
@@ -22,7 +22,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/tty.h>
 #include <linux/slab.h>
index 2c70773543e052b94f98931557e967c9eb13a9eb..cbf260bc225dc6c5bcd41758f22bb49bd3809550 100644 (file)
@@ -786,6 +786,7 @@ static struct pcmcia_device_id serial_ids[] = {
        PCMCIA_DEVICE_CIS_PROD_ID12("ADVANTECH", "COMpad-32/85B-4", 0x96913a85, 0xcec8f102, "COMpad4.cis"),
        PCMCIA_DEVICE_CIS_PROD_ID123("ADVANTECH", "COMpad-32/85", "1.0", 0x96913a85, 0x8fbe92ae, 0x0877b627, "COMpad2.cis"),
        PCMCIA_DEVICE_CIS_PROD_ID2("RS-COM 2P", 0xad20b156, "RS-COM-2P.cis"),
+       PCMCIA_DEVICE_CIS_MANF_CARD(0x0013, 0x0000, "GLOBETROTTER.cis"),
        /* too generic */
        /* PCMCIA_MFC_DEVICE_MANF_CARD(0, 0x0160, 0x0002), */
        /* PCMCIA_MFC_DEVICE_MANF_CARD(1, 0x0160, 0x0002), */
index 776d4ff060840b62ac3758097f671a8b523d9bd1..23ddedbaec086b8bf307137492e8f2a8820f14f7 100644 (file)
@@ -27,7 +27,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_LH7A40X_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
index a901a7e446f3ca91c696989fd35426a5151401e2..28c1881a6691eeb0def9e867924034bce5df83b5 100644 (file)
@@ -38,7 +38,6 @@
  *             Fix some spin_locks.
  *             Do not call uart_add_one_port for absent ports.
  */
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_TXX9_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
index d97f3ca6cc29996b6f4a5ed274a2b90f0af1f05c..2509c3237e8762fc73e245040212f168494f76b3 100644 (file)
@@ -20,7 +20,6 @@
 
 #undef DEBUG
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
index 1f14bb4382f6ef5bfc6094b1b766d432454e9791..ab320fa3237c7f29ac29f6077c802574f70aeaca 100644 (file)
@@ -10,7 +10,6 @@
  *  Modified to support SH7300(SH-Mobile) SCIF. Takashi Kusuda (Jun 2003).
  *  Modified to support H8/300 Series Yoshinori Sato (Feb 2004).
  */
-#include <linux/config.h>
 #include <linux/serial_core.h>
 
 #if defined(__H8300H__) || defined(__H8300S__)
index 60ea4a3f071396637de3fc4459a10aebc7c9d268..4b0afc8f12b96f2384c2c4f6ad91a96e12215be2 100644 (file)
@@ -37,7 +37,6 @@
  * http://oss.sgi.com/projects/GenInfo/NoticeExplan
  */
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/tty.h>
 #include <linux/serial.h>
index fa4ae94243c21a070bf25d23af022648258172e7..e35d9ab359f156313f37b4d728b72cbe78fd7a24 100644 (file)
@@ -10,7 +10,6 @@
  * Copyright (C) 2002 David S. Miller (davem@redhat.com)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/console.h>
index d36bc4003399ed27021299a92585adbd1e062d66..f851f0f44f9b83352aea262b58dc869ca01f1ee0 100644 (file)
@@ -20,8 +20,8 @@
 
 #include <asm/hypervisor.h>
 #include <asm/spitfire.h>
-#include <asm/vdev.h>
-#include <asm/oplib.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/irq.h>
 
 #if defined(CONFIG_MAGIC_SYSRQ)
@@ -407,144 +407,120 @@ static inline struct console *SUNHV_CONSOLE(void)
        return &sunhv_console;
 }
 
-static int __init hv_console_compatible(char *buf, int len)
-{
-       while (len) {
-               int this_len;
-
-               if (!strcmp(buf, "qcn"))
-                       return 1;
-
-               this_len = strlen(buf) + 1;
-
-               buf += this_len;
-               len -= this_len;
-       }
-
-       return 0;
-}
-
-static unsigned int __init get_interrupt(void)
-{
-       struct device_node *dev_node;
-
-       dev_node = sun4v_vdev_root->child;
-       while (dev_node != NULL) {
-               struct property *prop;
-
-               if (strcmp(dev_node->name, "console"))
-                       goto next_sibling;
-
-               prop = of_find_property(dev_node, "compatible", NULL);
-               if (!prop)
-                       goto next_sibling;
-
-               if (hv_console_compatible(prop->value, prop->length))
-                       break;
-
-       next_sibling:
-               dev_node = dev_node->sibling;
-       }
-       if (!dev_node)
-               return 0;
-
-       /* Ok, the this is the OBP node for the sun4v hypervisor
-        * console device.  Decode the interrupt.
-        */
-       return sun4v_vdev_device_interrupt(dev_node);
-}
-
-static int __init sunhv_init(void)
+static int __devinit hv_probe(struct of_device *op, const struct of_device_id *match)
 {
        struct uart_port *port;
-       int ret;
+       int err;
 
-       if (tlb_type != hypervisor)
+       if (op->irqs[0] == 0xffffffff)
                return -ENODEV;
 
-       port = kmalloc(sizeof(struct uart_port), GFP_KERNEL);
+       port = kzalloc(sizeof(struct uart_port), GFP_KERNEL);
        if (unlikely(!port))
                return -ENOMEM;
 
-       memset(port, 0, sizeof(struct uart_port));
+       sunhv_port = port;
 
        port->line = 0;
        port->ops = &sunhv_pops;
        port->type = PORT_SUNHV;
        port->uartclk = ( 29491200 / 16 ); /* arbitrary */
 
-       /* Set this just to make uart_configure_port() happy.  */
        port->membase = (unsigned char __iomem *) __pa(port);
 
-       port->irq = get_interrupt();
-       if (!port->irq) {
-               kfree(port);
-               return -ENODEV;
-       }
+       port->irq = op->irqs[0];
+
+       port->dev = &op->dev;
 
        sunhv_reg.minor = sunserial_current_minor;
        sunhv_reg.nr = 1;
 
-       ret = uart_register_driver(&sunhv_reg);
-       if (ret < 0) {
-               printk(KERN_ERR "SUNHV: uart_register_driver() failed %d\n",
-                      ret);
-               kfree(port);
-
-               return ret;
-       }
+       err = uart_register_driver(&sunhv_reg);
+       if (err)
+               goto out_free_port;
 
        sunhv_reg.tty_driver->name_base = sunhv_reg.minor - 64;
        sunserial_current_minor += 1;
 
        sunhv_reg.cons = SUNHV_CONSOLE();
 
-       sunhv_port = port;
+       err = uart_add_one_port(&sunhv_reg, port);
+       if (err)
+               goto out_unregister_driver;
 
-       ret = uart_add_one_port(&sunhv_reg, port);
-       if (ret < 0) {
-               printk(KERN_ERR "SUNHV: uart_add_one_port() failed %d\n", ret);
-               sunserial_current_minor -= 1;
-               uart_unregister_driver(&sunhv_reg);
-               kfree(port);
-               sunhv_port = NULL;
-               return -ENODEV;
-       }
+       err = request_irq(port->irq, sunhv_interrupt, 0, "hvcons", port);
+       if (err)
+               goto out_remove_port;
 
-       if (request_irq(port->irq, sunhv_interrupt,
-                       SA_SHIRQ, "serial(sunhv)", port)) {
-               printk(KERN_ERR "sunhv: Cannot register IRQ\n");
-               uart_remove_one_port(&sunhv_reg, port);
-               sunserial_current_minor -= 1;
-               uart_unregister_driver(&sunhv_reg);
-               kfree(port);
-               sunhv_port = NULL;
-               return -ENODEV;
-       }
+       dev_set_drvdata(&op->dev, port);
 
        return 0;
+
+out_remove_port:
+       uart_remove_one_port(&sunhv_reg, port);
+
+out_unregister_driver:
+       sunserial_current_minor -= 1;
+       uart_unregister_driver(&sunhv_reg);
+
+out_free_port:
+       kfree(port);
+       sunhv_port = NULL;
+       return err;
 }
 
-static void __exit sunhv_exit(void)
+static int __devexit hv_remove(struct of_device *dev)
 {
-       struct uart_port *port = sunhv_port;
-
-       BUG_ON(!port);
+       struct uart_port *port = dev_get_drvdata(&dev->dev);
 
        free_irq(port->irq, port);
 
        uart_remove_one_port(&sunhv_reg, port);
-       sunserial_current_minor -= 1;
 
+       sunserial_current_minor -= 1;
        uart_unregister_driver(&sunhv_reg);
 
-       kfree(sunhv_port);
+       kfree(port);
        sunhv_port = NULL;
+
+       dev_set_drvdata(&dev->dev, NULL);
+
+       return 0;
+}
+
+static struct of_device_id hv_match[] = {
+       {
+               .name = "console",
+               .compatible = "qcn",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(of, hv_match);
+
+static struct of_platform_driver hv_driver = {
+       .name           = "hv",
+       .match_table    = hv_match,
+       .probe          = hv_probe,
+       .remove         = __devexit_p(hv_remove),
+};
+
+static int __init sunhv_init(void)
+{
+       if (tlb_type != hypervisor)
+               return -ENODEV;
+
+       return of_register_driver(&hv_driver, &of_bus_type);
+}
+
+static void __exit sunhv_exit(void)
+{
+       of_unregister_driver(&hv_driver);
 }
 
 module_init(sunhv_init);
 module_exit(sunhv_exit);
 
 MODULE_AUTHOR("David S. Miller");
-MODULE_DESCRIPTION("SUN4V Hypervisor console driver")
+MODULE_DESCRIPTION("SUN4V Hypervisor console driver");
+MODULE_VERSION("2.0");
 MODULE_LICENSE("GPL");
index 7da02d11c364d99506051608c27242c76435dbeb..20a48697727c489bd68893fa74463ae7ba3c909a 100644 (file)
@@ -1,7 +1,7 @@
 /* sunsab.c: ASYNC Driver for the SIEMENS SAB82532 DUSCC.
  *
  * Copyright (C) 1997  Eddie C. Dost  (ecd@skynet.be)
- * Copyright (C) 2002  David S. Miller (davem@redhat.com)
+ * Copyright (C) 2002, 2006  David S. Miller (davem@davemloft.net)
  *
  * Rewrote buffer handling to use CIRC(Circular Buffer) macros.
  *   Maxim Krasnyanskiy <maxk@qualcomm.com>
  *   Theodore Ts'o <tytso@mit.edu>, 2001-Oct-12
  *
  * Ported to new 2.5.x UART layer.
- *   David S. Miller <davem@redhat.com>
+ *   David S. Miller <davem@davemloft.net>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
@@ -37,8 +36,8 @@
 
 #include <asm/io.h>
 #include <asm/irq.h>
-#include <asm/oplib.h>
-#include <asm/ebus.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 
 #if defined(CONFIG_SERIAL_SUNZILOG_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
@@ -976,199 +975,188 @@ static inline struct console *SUNSAB_CONSOLE(void)
 #define sunsab_console_init()  do { } while (0)
 #endif
 
-static void __init for_each_sab_edev(void (*callback)(struct linux_ebus_device *, void *), void *arg)
+static int __devinit sunsab_init_one(struct uart_sunsab_port *up,
+                                    struct of_device *op,
+                                    unsigned long offset,
+                                    int line)
 {
-       struct linux_ebus *ebus;
-       struct linux_ebus_device *edev = NULL;
-
-       for_each_ebus(ebus) {
-               for_each_ebusdev(edev, ebus) {
-                       if (!strcmp(edev->prom_node->name, "se")) {
-                               callback(edev, arg);
-                               continue;
-                       } else if (!strcmp(edev->prom_node->name, "serial")) {
-                               char *compat;
-                               int clen;
-
-                               /* On RIO this can be an SE, check it.  We could
-                                * just check ebus->is_rio, but this is more portable.
-                                */
-                               compat = of_get_property(edev->prom_node,
-                                                        "compatible", &clen);
-                               if (compat && clen > 0) {
-                                       if (strncmp(compat, "sab82532", 8) == 0) {
-                                               callback(edev, arg);
-                                               continue;
-                                       }
-                               }
-                       }
-               }
-       }
-}
+       up->port.line = line;
+       up->port.dev = &op->dev;
+
+       up->port.mapbase = op->resource[0].start + offset;
+       up->port.membase = of_ioremap(&op->resource[0], offset,
+                                     sizeof(union sab82532_async_regs),
+                                     "sab");
+       if (!up->port.membase)
+               return -ENOMEM;
+       up->regs = (union sab82532_async_regs __iomem *) up->port.membase;
 
-static void __init sab_count_callback(struct linux_ebus_device *edev, void *arg)
-{
-       int *count_p = arg;
+       up->port.irq = op->irqs[0];
 
-       (*count_p)++;
-}
+       up->port.fifosize = SAB82532_XMIT_FIFO_SIZE;
+       up->port.iotype = UPIO_MEM;
 
-static void __init sab_attach_callback(struct linux_ebus_device *edev, void *arg)
-{
-       int *instance_p = arg;
-       struct uart_sunsab_port *up;
-       unsigned long regs, offset;
-       int i;
+       writeb(SAB82532_IPC_IC_ACT_LOW, &up->regs->w.ipc);
 
-       /* Note: ports are located in reverse order */
-       regs = edev->resource[0].start;
-       offset = sizeof(union sab82532_async_regs);
-       for (i = 0; i < 2; i++) {
-               up = &sunsab_ports[(*instance_p * 2) + 1 - i];
+       up->port.ops = &sunsab_pops;
+       up->port.type = PORT_SUNSAB;
+       up->port.uartclk = SAB_BASE_BAUD;
 
-               memset(up, 0, sizeof(*up));
-               up->regs = ioremap(regs + offset, sizeof(union sab82532_async_regs));
-               up->port.irq = edev->irqs[0];
-               up->port.fifosize = SAB82532_XMIT_FIFO_SIZE;
-               up->port.mapbase = (unsigned long)up->regs;
-               up->port.iotype = UPIO_MEM;
+       up->type = readb(&up->regs->r.vstr) & 0x0f;
+       writeb(~((1 << 1) | (1 << 2) | (1 << 4)), &up->regs->w.pcr);
+       writeb(0xff, &up->regs->w.pim);
+       if ((up->port.line & 0x1) == 0) {
+               up->pvr_dsr_bit = (1 << 0);
+               up->pvr_dtr_bit = (1 << 1);
+       } else {
+               up->pvr_dsr_bit = (1 << 3);
+               up->pvr_dtr_bit = (1 << 2);
+       }
+       up->cached_pvr = (1 << 1) | (1 << 2) | (1 << 4);
+       writeb(up->cached_pvr, &up->regs->w.pvr);
+       up->cached_mode = readb(&up->regs->rw.mode);
+       up->cached_mode |= SAB82532_MODE_FRTS;
+       writeb(up->cached_mode, &up->regs->rw.mode);
+       up->cached_mode |= SAB82532_MODE_RTS;
+       writeb(up->cached_mode, &up->regs->rw.mode);
 
-               writeb(SAB82532_IPC_IC_ACT_LOW, &up->regs->w.ipc);
+       up->tec_timeout = SAB82532_MAX_TEC_TIMEOUT;
+       up->cec_timeout = SAB82532_MAX_CEC_TIMEOUT;
 
-               offset -= sizeof(union sab82532_async_regs);
+       if (!(up->port.line & 0x01)) {
+               int err;
+
+               err = request_irq(up->port.irq, sunsab_interrupt,
+                                 SA_SHIRQ, "sab", up);
+               if (err) {
+                       of_iounmap(up->port.membase,
+                                  sizeof(union sab82532_async_regs));
+                       return err;
+               }
        }
-       
-       (*instance_p)++;
+
+       return 0;
 }
 
-static int __init probe_for_sabs(void)
+static int __devinit sab_probe(struct of_device *op, const struct of_device_id *match)
 {
-       int this_sab = 0;
+       static int inst;
+       struct uart_sunsab_port *up;
+       int err;
+
+       up = &sunsab_ports[inst * 2];
+
+       err = sunsab_init_one(&up[0], op,
+                             sizeof(union sab82532_async_regs),
+                             (inst * 2) + 0);
+       if (err)
+               return err;
+
+       err = sunsab_init_one(&up[0], op, 0,
+                             (inst * 2) + 1);
+       if (err) {
+               of_iounmap(up[0].port.membase,
+                          sizeof(union sab82532_async_regs));
+               free_irq(up[0].port.irq, &up[0]);
+               return err;
+       }
 
-       /* Find device instances.  */
-       for_each_sab_edev(&sab_count_callback, &this_sab);
-       if (!this_sab)
-               return -ENODEV;
+       uart_add_one_port(&sunsab_reg, &up[0].port);
+       uart_add_one_port(&sunsab_reg, &up[1].port);
 
-       /* Allocate tables.  */
-       sunsab_ports = kmalloc(sizeof(struct uart_sunsab_port) * this_sab * 2,
-                              GFP_KERNEL);
-       if (!sunsab_ports)
-               return -ENOMEM;
+       dev_set_drvdata(&op->dev, &up[0]);
 
-       num_channels = this_sab * 2;
+       inst++;
 
-       this_sab = 0;
-       for_each_sab_edev(&sab_attach_callback, &this_sab);
        return 0;
 }
 
-static void __init sunsab_init_hw(void)
+static void __devexit sab_remove_one(struct uart_sunsab_port *up)
 {
-       int i;
-
-       for (i = 0; i < num_channels; i++) {
-               struct uart_sunsab_port *up = &sunsab_ports[i];
-
-               up->port.line = i;
-               up->port.ops = &sunsab_pops;
-               up->port.type = PORT_SUNSAB;
-               up->port.uartclk = SAB_BASE_BAUD;
-
-               up->type = readb(&up->regs->r.vstr) & 0x0f;
-               writeb(~((1 << 1) | (1 << 2) | (1 << 4)), &up->regs->w.pcr);
-               writeb(0xff, &up->regs->w.pim);
-               if (up->port.line == 0) {
-                       up->pvr_dsr_bit = (1 << 0);
-                       up->pvr_dtr_bit = (1 << 1);
-               } else {
-                       up->pvr_dsr_bit = (1 << 3);
-                       up->pvr_dtr_bit = (1 << 2);
-               }
-               up->cached_pvr = (1 << 1) | (1 << 2) | (1 << 4);
-               writeb(up->cached_pvr, &up->regs->w.pvr);
-               up->cached_mode = readb(&up->regs->rw.mode);
-               up->cached_mode |= SAB82532_MODE_FRTS;
-               writeb(up->cached_mode, &up->regs->rw.mode);
-               up->cached_mode |= SAB82532_MODE_RTS;
-               writeb(up->cached_mode, &up->regs->rw.mode);
-
-               up->tec_timeout = SAB82532_MAX_TEC_TIMEOUT;
-               up->cec_timeout = SAB82532_MAX_CEC_TIMEOUT;
-
-               if (!(up->port.line & 0x01)) {
-                       if (request_irq(up->port.irq, sunsab_interrupt,
-                                       SA_SHIRQ, "serial(sab82532)", up)) {
-                               printk("sunsab%d: can't get IRQ %x\n",
-                                      i, up->port.irq);
-                               continue;
-                       }
-               }
-       }
+       uart_remove_one_port(&sunsab_reg, &up->port);
+       if (!(up->port.line & 1))
+               free_irq(up->port.irq, up);
+       of_iounmap(up->port.membase,
+                  sizeof(union sab82532_async_regs));
 }
 
-static int __init sunsab_init(void)
+static int __devexit sab_remove(struct of_device *op)
 {
-       int ret = probe_for_sabs();
-       int i;
-
-       if (ret < 0)
-               return ret;
+       struct uart_sunsab_port *up = dev_get_drvdata(&op->dev);
 
-       sunsab_init_hw();
+       sab_remove_one(&up[0]);
+       sab_remove_one(&up[1]);
 
-       sunsab_reg.minor = sunserial_current_minor;
-       sunsab_reg.nr = num_channels;
+       dev_set_drvdata(&op->dev, NULL);
 
-       ret = uart_register_driver(&sunsab_reg);
-       if (ret < 0) {
-               int i;
+       return 0;
+}
 
-               for (i = 0; i < num_channels; i++) {
-                       struct uart_sunsab_port *up = &sunsab_ports[i];
+static struct of_device_id sab_match[] = {
+       {
+               .name = "se",
+       },
+       {
+               .name = "serial",
+               .compatible = "sab82532",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(of, sab_match);
 
-                       if (!(up->port.line & 0x01))
-                               free_irq(up->port.irq, up);
-                       iounmap(up->regs);
-               }
-               kfree(sunsab_ports);
-               sunsab_ports = NULL;
+static struct of_platform_driver sab_driver = {
+       .name           = "sab",
+       .match_table    = sab_match,
+       .probe          = sab_probe,
+       .remove         = __devexit_p(sab_remove),
+};
 
-               return ret;
+static int __init sunsab_init(void)
+{
+       struct device_node *dp;
+       int err;
+
+       num_channels = 0;
+       for_each_node_by_name(dp, "su")
+               num_channels += 2;
+       for_each_node_by_name(dp, "serial") {
+               if (of_device_is_compatible(dp, "sab82532"))
+                       num_channels += 2;
        }
 
-       sunsab_reg.tty_driver->name_base = sunsab_reg.minor - 64;
+       if (num_channels) {
+               sunsab_ports = kzalloc(sizeof(struct uart_sunsab_port) *
+                                      num_channels, GFP_KERNEL);
+               if (!sunsab_ports)
+                       return -ENOMEM;
 
-       sunsab_reg.cons = SUNSAB_CONSOLE();
+               sunsab_reg.minor = sunserial_current_minor;
+               sunsab_reg.nr = num_channels;
 
-       sunserial_current_minor += num_channels;
-       
-       for (i = 0; i < num_channels; i++) {
-               struct uart_sunsab_port *up = &sunsab_ports[i];
+               err = uart_register_driver(&sunsab_reg);
+               if (err) {
+                       kfree(sunsab_ports);
+                       sunsab_ports = NULL;
 
-               uart_add_one_port(&sunsab_reg, &up->port);
+                       return err;
+               }
+
+               sunsab_reg.tty_driver->name_base = sunsab_reg.minor - 64;
+               sunsab_reg.cons = SUNSAB_CONSOLE();
+               sunserial_current_minor += num_channels;
        }
 
-       return 0;
+       return of_register_driver(&sab_driver, &of_bus_type);
 }
 
 static void __exit sunsab_exit(void)
 {
-       int i;
-
-       for (i = 0; i < num_channels; i++) {
-               struct uart_sunsab_port *up = &sunsab_ports[i];
-
-               uart_remove_one_port(&sunsab_reg, &up->port);
-
-               if (!(up->port.line & 0x01))
-                       free_irq(up->port.irq, up);
-               iounmap(up->regs);
+       of_unregister_driver(&sab_driver);
+       if (num_channels) {
+               sunserial_current_minor -= num_channels;
+               uart_unregister_driver(&sunsab_reg);
        }
 
-       sunserial_current_minor -= num_channels;
-       uart_unregister_driver(&sunsab_reg);
-
        kfree(sunsab_ports);
        sunsab_ports = NULL;
 }
index 6e28c25138cf3cfb2a75de9b1372f4e8eb6dd2da..eabf477fee9581677a59cb0c1c319394960ff8b2 100644 (file)
  *   Theodore Ts'o <tytso@mit.edu>, 2001-Oct-12
  *
  * Converted to new 2.5.x UART layer.
- *   David S. Miller (davem@redhat.com), 2002-Jul-29
+ *   David S. Miller (davem@davemloft.net), 2002-Jul-29
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 
 #include <asm/io.h>
 #include <asm/irq.h>
-#include <asm/oplib.h>
-#include <asm/ebus.h>
-#ifdef CONFIG_SPARC64
-#include <asm/isa.h>
-#endif
+#include <asm/prom.h>
+#include <asm/of_device.h>
 
 #if defined(CONFIG_SERIAL_SUNSU_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
@@ -94,10 +90,10 @@ struct uart_sunsu_port {
        /* Probing information.  */
        enum su_type            su_type;
        unsigned int            type_probed;    /* XXX Stupid */
-       int                     port_node;
+       unsigned long           reg_size;
 
 #ifdef CONFIG_SERIO
-       struct serio            *serio;
+       struct serio            serio;
        int                     serio_open;
 #endif
 };
@@ -509,7 +505,7 @@ static void receive_kbd_ms_chars(struct uart_sunsu_port *up, struct pt_regs *reg
                /* Stop-A is handled by drivers/char/keyboard.c now. */
                if (up->su_type == SU_PORT_KBD) {
 #ifdef CONFIG_SERIO
-                       serio_interrupt(up->serio, ch, 0, regs);
+                       serio_interrupt(&up->serio, ch, 0, regs);
 #endif
                } else if (up->su_type == SU_PORT_MS) {
                        int ret = suncore_mouse_baud_detection(ch, is_break);
@@ -523,7 +519,7 @@ static void receive_kbd_ms_chars(struct uart_sunsu_port *up, struct pt_regs *reg
 
                        case 0:
 #ifdef CONFIG_SERIO
-                               serio_interrupt(up->serio, ch, 0, regs);
+                               serio_interrupt(&up->serio, ch, 0, regs);
 #endif
                                break;
                        };
@@ -1031,99 +1027,14 @@ static void sunsu_autoconfig(struct uart_sunsu_port *up)
 {
        unsigned char status1, status2, scratch, scratch2, scratch3;
        unsigned char save_lcr, save_mcr;
-       struct linux_ebus_device *dev = NULL;
-       struct linux_ebus *ebus;
-#ifdef CONFIG_SPARC64
-       struct sparc_isa_bridge *isa_br;
-       struct sparc_isa_device *isa_dev;
-#endif
-#ifndef CONFIG_SPARC64
-       struct linux_prom_registers reg0;
-#endif
        unsigned long flags;
 
-       if (!up->port_node || !up->su_type)
+       if (up->su_type == SU_PORT_NONE)
                return;
 
        up->type_probed = PORT_UNKNOWN;
        up->port.iotype = UPIO_MEM;
 
-       /*
-        * First we look for Ebus-bases su's
-        */
-       for_each_ebus(ebus) {
-               for_each_ebusdev(dev, ebus) {
-                       if (dev->prom_node->node == up->port_node) {
-                               /*
-                                * The EBus is broken on sparc; it delivers
-                                * virtual addresses in resources. Oh well...
-                                * This is correct on sparc64, though.
-                                */
-                               up->port.membase = (char *) dev->resource[0].start;
-                               /*
-                                * This is correct on both architectures.
-                                */
-                               up->port.mapbase = dev->resource[0].start;
-                               up->port.irq = dev->irqs[0];
-                               goto ebus_done;
-                       }
-               }
-       }
-
-#ifdef CONFIG_SPARC64
-       for_each_isa(isa_br) {
-               for_each_isadev(isa_dev, isa_br) {
-                       if (isa_dev->prom_node->node == up->port_node) {
-                               /* Same on sparc64. Cool architecure... */
-                               up->port.membase = (char *) isa_dev->resource.start;
-                               up->port.mapbase = isa_dev->resource.start;
-                               up->port.irq = isa_dev->irq;
-                               goto ebus_done;
-                       }
-               }
-       }
-#endif
-
-#ifdef CONFIG_SPARC64
-       /*
-        * Not on Ebus, bailing.
-        */
-       return;
-#else
-       /*
-        * Not on Ebus, must be OBIO.
-        */
-       if (prom_getproperty(up->port_node, "reg",
-                            (char *)&reg0, sizeof(reg0)) == -1) {
-               prom_printf("sunsu: no \"reg\" property\n");
-               return;
-       }
-       prom_apply_obio_ranges(&reg0, 1);
-       if (reg0.which_io != 0) {       /* Just in case... */
-               prom_printf("sunsu: bus number nonzero: 0x%x:%x\n",
-                   reg0.which_io, reg0.phys_addr);
-               return;
-       }
-       up->port.mapbase = reg0.phys_addr;
-       if ((up->port.membase = ioremap(reg0.phys_addr, reg0.reg_size)) == 0) {
-               prom_printf("sunsu: Cannot map registers.\n");
-               return;
-       }
-
-       /*
-        * 0x20 is sun4m thing, Dave Redman heritage.
-        * See arch/sparc/kernel/irq.c.
-        */
-#define IRQ_4M(n)      ((n)|0x20)
-
-       /*
-        * There is no intr property on MrCoffee, so hardwire it.
-        */
-       up->port.irq = IRQ_4M(13);
-#endif
-
-ebus_done:
-
        spin_lock_irqsave(&up->port.lock, flags);
 
        if (!(up->port.flags & UPF_BUGGY_UART)) {
@@ -1269,18 +1180,13 @@ static struct uart_driver sunsu_reg = {
        .major                  = TTY_MAJOR,
 };
 
-static int __init sunsu_kbd_ms_init(struct uart_sunsu_port *up, int channel)
+static int __init sunsu_kbd_ms_init(struct uart_sunsu_port *up)
 {
        int quot, baud;
 #ifdef CONFIG_SERIO
        struct serio *serio;
 #endif
 
-       spin_lock_init(&up->port.lock);
-       up->port.line = channel;
-       up->port.type = PORT_UNKNOWN;
-       up->port.uartclk = (SU_BASE_BAUD * 16);
-
        if (up->su_type == SU_PORT_KBD) {
                up->cflag = B1200 | CS8 | CLOCAL | CREAD;
                baud = 1200;
@@ -1292,41 +1198,31 @@ static int __init sunsu_kbd_ms_init(struct uart_sunsu_port *up, int channel)
 
        sunsu_autoconfig(up);
        if (up->port.type == PORT_UNKNOWN)
-               return -1;
-
-       printk(KERN_INFO "su%d at 0x%p (irq = %d) is a %s\n",
-              channel,
-              up->port.membase, up->port.irq,
-              sunsu_type(&up->port));
+               return -ENODEV;
 
 #ifdef CONFIG_SERIO
-       up->serio = serio = kmalloc(sizeof(struct serio), GFP_KERNEL);
-       if (serio) {
-               memset(serio, 0, sizeof(*serio));
-
-               serio->port_data = up;
-
-               serio->id.type = SERIO_RS232;
-               if (up->su_type == SU_PORT_KBD) {
-                       serio->id.proto = SERIO_SUNKBD;
-                       strlcpy(serio->name, "sukbd", sizeof(serio->name));
-               } else {
-                       serio->id.proto = SERIO_SUN;
-                       serio->id.extra = 1;
-                       strlcpy(serio->name, "sums", sizeof(serio->name));
-               }
-               strlcpy(serio->phys, (channel == 0 ? "su/serio0" : "su/serio1"),
-                       sizeof(serio->phys));
-
-               serio->write = sunsu_serio_write;
-               serio->open = sunsu_serio_open;
-               serio->close = sunsu_serio_close;
+       serio = &up->serio;
+       serio->port_data = up;
 
-               serio_register_port(serio);
+       serio->id.type = SERIO_RS232;
+       if (up->su_type == SU_PORT_KBD) {
+               serio->id.proto = SERIO_SUNKBD;
+               strlcpy(serio->name, "sukbd", sizeof(serio->name));
        } else {
-               printk(KERN_WARNING "su%d: not enough memory for serio port\n",
-                       channel);
+               serio->id.proto = SERIO_SUN;
+               serio->id.extra = 1;
+               strlcpy(serio->name, "sums", sizeof(serio->name));
        }
+       strlcpy(serio->phys,
+               (!(up->port.line & 1) ? "su/serio0" : "su/serio1"),
+               sizeof(serio->phys));
+
+       serio->write = sunsu_serio_write;
+       serio->open = sunsu_serio_open;
+       serio->close = sunsu_serio_close;
+       serio->dev.parent = up->port.dev;
+
+       serio_register_port(serio);
 #endif
 
        sunsu_change_speed(&up->port, up->cflag, 0, quot);
@@ -1458,22 +1354,20 @@ static struct console sunsu_cons = {
  *     Register console.
  */
 
-static inline struct console *SUNSU_CONSOLE(void)
+static inline struct console *SUNSU_CONSOLE(int num_uart)
 {
        int i;
 
        if (con_is_present())
                return NULL;
 
-       for (i = 0; i < UART_NR; i++) {
+       for (i = 0; i < num_uart; i++) {
                int this_minor = sunsu_reg.minor + i;
 
                if ((this_minor - 64) == (serial_console - 1))
                        break;
        }
-       if (i == UART_NR)
-               return NULL;
-       if (sunsu_ports[i].port_node == 0)
+       if (i == num_uart)
                return NULL;
 
        sunsu_cons.index = i;
@@ -1481,252 +1375,186 @@ static inline struct console *SUNSU_CONSOLE(void)
        return &sunsu_cons;
 }
 #else
-#define SUNSU_CONSOLE()                        (NULL)
+#define SUNSU_CONSOLE(num_uart)                (NULL)
 #define sunsu_serial_console_init()    do { } while (0)
 #endif
 
-static int __init sunsu_serial_init(void)
+static enum su_type __devinit su_get_type(struct device_node *dp)
 {
-       int instance, ret, i;
+       struct device_node *ap = of_find_node_by_path("/aliases");
 
-       /* How many instances do we need?  */
-       instance = 0;
-       for (i = 0; i < UART_NR; i++) {
-               struct uart_sunsu_port *up = &sunsu_ports[i];
+       if (ap) {
+               char *keyb = of_get_property(ap, "keyboard", NULL);
+               char *ms = of_get_property(ap, "mouse", NULL);
 
-               if (up->su_type == SU_PORT_MS ||
-                   up->su_type == SU_PORT_KBD)
-                       continue;
+               if (keyb) {
+                       if (dp == of_find_node_by_path(keyb))
+                               return SU_PORT_KBD;
+               }
+               if (ms) {
+                       if (dp == of_find_node_by_path(ms))
+                               return SU_PORT_MS;
+               }
+       }
 
-               spin_lock_init(&up->port.lock);
-               up->port.flags |= UPF_BOOT_AUTOCONF;
-               up->port.type = PORT_UNKNOWN;
-               up->port.uartclk = (SU_BASE_BAUD * 16);
+       return SU_PORT_PORT;
+}
 
-               sunsu_autoconfig(up);
-               if (up->port.type == PORT_UNKNOWN)
-                       continue;
+static int __devinit su_probe(struct of_device *op, const struct of_device_id *match)
+{
+       static int inst;
+       struct device_node *dp = op->node;
+       struct uart_sunsu_port *up;
+       struct resource *rp;
+       int err;
 
-               up->port.line = instance++;
-               up->port.ops = &sunsu_pops;
-       }
+       if (inst >= UART_NR)
+               return -EINVAL;
 
-       sunsu_reg.minor = sunserial_current_minor;
+       up = &sunsu_ports[inst];
+       up->port.line = inst;
 
-       sunsu_reg.nr = instance;
+       spin_lock_init(&up->port.lock);
 
-       ret = uart_register_driver(&sunsu_reg);
-       if (ret < 0)
-               return ret;
+       up->su_type = su_get_type(dp);
 
-       sunsu_reg.tty_driver->name_base = sunsu_reg.minor - 64;
+       rp = &op->resource[0];
+       up->port.mapbase = op->resource[0].start;
 
-       sunserial_current_minor += instance;
+       up->reg_size = (rp->end - rp->start) + 1;
+       up->port.membase = of_ioremap(rp, 0, up->reg_size, "su");
+       if (!up->port.membase)
+               return -ENOMEM;
 
-       sunsu_reg.cons = SUNSU_CONSOLE();
+       up->port.irq = op->irqs[0];
 
-       for (i = 0; i < UART_NR; i++) {
-               struct uart_sunsu_port *up = &sunsu_ports[i];
+       up->port.dev = &op->dev;
 
-               /* Do not register Keyboard/Mouse lines with UART
-                * layer.
-                */
-               if (up->su_type == SU_PORT_MS ||
-                   up->su_type == SU_PORT_KBD)
-                       continue;
+       up->port.type = PORT_UNKNOWN;
+       up->port.uartclk = (SU_BASE_BAUD * 16);
 
-               if (up->port.type == PORT_UNKNOWN)
-                       continue;
+       err = 0;
+       if (up->su_type == SU_PORT_KBD || up->su_type == SU_PORT_MS) {
+               err = sunsu_kbd_ms_init(up);
+               if (err)
+                       goto out_unmap;
 
-               uart_add_one_port(&sunsu_reg, &up->port);
+               return 0;
        }
 
-       return 0;
-}
+       up->port.flags |= UPF_BOOT_AUTOCONF;
 
-static int su_node_ok(int node, char *name, int namelen)
-{
-       if (strncmp(name, "su", namelen) == 0 ||
-           strncmp(name, "su_pnp", namelen) == 0)
-               return 1;
-
-       if (strncmp(name, "serial", namelen) == 0) {
-               char compat[32];
-               int clen;
-
-               /* Is it _really_ a 'su' device? */
-               clen = prom_getproperty(node, "compatible", compat, sizeof(compat));
-               if (clen > 0) {
-                       if (strncmp(compat, "sab82532", 8) == 0) {
-                               /* Nope, Siemens serial, not for us. */
-                               return 0;
-                       }
-               }
-               return 1;
-       }
+       sunsu_autoconfig(up);
 
-       return 0;
-}
+       err = -ENODEV;
+       if (up->port.type == PORT_UNKNOWN)
+               goto out_unmap;
 
-#define SU_PROPSIZE    128
+       up->port.ops = &sunsu_pops;
 
-/*
- * Scan status structure.
- * "prop" is a local variable but it eats stack to keep it in each
- * stack frame of a recursive procedure.
- */
-struct su_probe_scan {
-       int msnode, kbnode;     /* PROM nodes for mouse and keyboard */
-       int msx, kbx;           /* minors for mouse and keyboard */
-       int devices;            /* scan index */
-       char prop[SU_PROPSIZE];
-};
+       err = uart_add_one_port(&sunsu_reg, &up->port);
+       if (err)
+               goto out_unmap;
 
-/*
- * We have several platforms which present 'su' in different parts
- * of the device tree. 'su' may be found under obio, ebus, isa and pci.
- * We walk over the tree and find them wherever PROM hides them.
- */
-static void __init su_probe_any(struct su_probe_scan *t, int sunode)
-{
-       struct uart_sunsu_port *up;
-       int len;
+       dev_set_drvdata(&op->dev, up);
 
-       if (t->devices >= UART_NR)
-               return;
+       inst++;
 
-       for (; sunode != 0; sunode = prom_getsibling(sunode)) {
-               len = prom_getproperty(sunode, "name", t->prop, SU_PROPSIZE);
-               if (len <= 1)
-                       continue;               /* Broken PROM node */
-
-               if (su_node_ok(sunode, t->prop, len)) {
-                       up = &sunsu_ports[t->devices];
-                       if (t->kbnode != 0 && sunode == t->kbnode) {
-                               t->kbx = t->devices;
-                               up->su_type = SU_PORT_KBD;
-                       } else if (t->msnode != 0 && sunode == t->msnode) {
-                               t->msx = t->devices;
-                               up->su_type = SU_PORT_MS;
-                       } else {
-#ifdef CONFIG_SPARC64
-                               /*
-                                * Do not attempt to use the truncated
-                                * keyboard/mouse ports as serial ports
-                                * on Ultras with PC keyboard attached.
-                                */
-                               if (prom_getbool(sunode, "mouse"))
-                                       continue;
-                               if (prom_getbool(sunode, "keyboard"))
-                                       continue;
-#endif
-                               up->su_type = SU_PORT_PORT;
-                       }
-                       up->port_node = sunode;
-                       ++t->devices;
-               } else {
-                       su_probe_any(t, prom_getchild(sunode));
-               }
-       }
+       return 0;
+
+out_unmap:
+       of_iounmap(up->port.membase, up->reg_size);
+       return err;
 }
 
-static int __init sunsu_probe(void)
+static int __devexit su_remove(struct of_device *dev)
 {
-       int node;
-       int len;
-       struct su_probe_scan scan;
+       struct uart_sunsu_port *up = dev_get_drvdata(&dev->dev);;
 
-       /*
-        * First, we scan the tree.
-        */
-       scan.devices = 0;
-       scan.msx = -1;
-       scan.kbx = -1;
-       scan.kbnode = 0;
-       scan.msnode = 0;
+       if (up->su_type == SU_PORT_MS ||
+           up->su_type == SU_PORT_KBD) {
+#ifdef CONFIG_SERIO
+               serio_unregister_port(&up->serio);
+#endif
+       } else if (up->port.type != PORT_UNKNOWN)
+               uart_remove_one_port(&sunsu_reg, &up->port);
 
-       /*
-        * Get the nodes for keyboard and mouse from 'aliases'...
-        */
-        node = prom_getchild(prom_root_node);
-       node = prom_searchsiblings(node, "aliases");
-       if (node != 0) {
-               len = prom_getproperty(node, "keyboard", scan.prop, SU_PROPSIZE);
-               if (len > 0) {
-                       scan.prop[len] = 0;
-                       scan.kbnode = prom_finddevice(scan.prop);
-               }
+       return 0;
+}
 
-               len = prom_getproperty(node, "mouse", scan.prop, SU_PROPSIZE);
-               if (len > 0) {
-                       scan.prop[len] = 0;
-                       scan.msnode = prom_finddevice(scan.prop);
-               }
-       }
+static struct of_device_id su_match[] = {
+       {
+               .name = "su",
+       },
+       {
+               .name = "su_pnp",
+       },
+       {
+               .name = "serial",
+               .compatible = "su",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(of, su_match);
 
-       su_probe_any(&scan, prom_getchild(prom_root_node));
+static struct of_platform_driver su_driver = {
+       .name           = "su",
+       .match_table    = su_match,
+       .probe          = su_probe,
+       .remove         = __devexit_p(su_remove),
+};
 
-       /*
-        * Second, we process the special case of keyboard and mouse.
-        *
-        * Currently if we got keyboard and mouse hooked to "su" ports
-        * we do not use any possible remaining "su" as a serial port.
-        * Thus, we ignore values of .msx and .kbx, then compact ports.
-        */
-       if (scan.msx != -1 && scan.kbx != -1) {
-               sunsu_ports[0].su_type = SU_PORT_MS;
-               sunsu_ports[0].port_node = scan.msnode;
-               sunsu_kbd_ms_init(&sunsu_ports[0], 0);
+static int num_uart;
 
-               sunsu_ports[1].su_type = SU_PORT_KBD;
-               sunsu_ports[1].port_node = scan.kbnode;
-               sunsu_kbd_ms_init(&sunsu_ports[1], 1);
+static int __init sunsu_init(void)
+{
+       struct device_node *dp;
+       int err;
 
-               return 0;
+       num_uart = 0;
+       for_each_node_by_name(dp, "su") {
+               if (su_get_type(dp) == SU_PORT_PORT)
+                       num_uart++;
        }
-
-       if (scan.msx != -1 || scan.kbx != -1) {
-               printk("sunsu_probe: cannot match keyboard and mouse, confused\n");
-               return -ENODEV;
+       for_each_node_by_name(dp, "su_pnp") {
+               if (su_get_type(dp) == SU_PORT_PORT)
+                       num_uart++;
+       }
+       for_each_node_by_name(dp, "serial") {
+               if (of_device_is_compatible(dp, "su")) {
+                       if (su_get_type(dp) == SU_PORT_PORT)
+                               num_uart++;
+               }
        }
 
-       if (scan.devices == 0)
-               return -ENODEV;
+       if (num_uart) {
+               sunsu_reg.minor = sunserial_current_minor;
+               sunsu_reg.nr = num_uart;
+               err = uart_register_driver(&sunsu_reg);
+               if (err)
+                       return err;
+               sunsu_reg.tty_driver->name_base = sunsu_reg.minor - 64;
+               sunserial_current_minor += num_uart;
+               sunsu_reg.cons = SUNSU_CONSOLE(num_uart);
+       }
 
-       /*
-        * Console must be initiated after the generic initialization.
-        */
-               sunsu_serial_init();
+       err = of_register_driver(&su_driver, &of_bus_type);
+       if (err && num_uart)
+               uart_unregister_driver(&sunsu_reg);
 
-       return 0;
+       return err;
 }
 
 static void __exit sunsu_exit(void)
 {
-       int i, saw_uart;
-
-       saw_uart = 0;
-       for (i = 0; i < UART_NR; i++) {
-               struct uart_sunsu_port *up = &sunsu_ports[i];
-
-               if (up->su_type == SU_PORT_MS ||
-                   up->su_type == SU_PORT_KBD) {
-#ifdef CONFIG_SERIO
-                       if (up->serio) {
-                               serio_unregister_port(up->serio);
-                               up->serio = NULL;
-                       }
-#endif
-               } else if (up->port.type != PORT_UNKNOWN) {
-                       uart_remove_one_port(&sunsu_reg, &up->port);
-                       saw_uart++;
-               }
-       }
-
-       if (saw_uart)
+       if (num_uart)
                uart_unregister_driver(&sunsu_reg);
 }
 
-module_init(sunsu_probe);
+module_init(sunsu_init);
 module_exit(sunsu_exit);
+
+MODULE_AUTHOR("Eddie C. Dost, Peter Zaitcev, and David S. Miller");
+MODULE_DESCRIPTION("Sun SU serial port driver");
+MODULE_VERSION("2.0");
 MODULE_LICENSE("GPL");
index 9f42677287ad55836455b3820370a828471ff947..9ee7f3af9ae2c4e6491d0c065d78010f51d2bb78 100644 (file)
@@ -1,5 +1,4 @@
-/*
- * sunzilog.c
+/* sunzilog.c: Zilog serial driver for Sparc systems.
  *
  * Driver for Zilog serial chips found on Sun workstations and
  * servers.  This driver could actually be made more generic.
@@ -10,10 +9,9 @@
  * C. Dost, Pete Zaitcev, Ted Ts'o and Alex Buell for their
  * work there.
  *
- *  Copyright (C) 2002 David S. Miller (davem@redhat.com)
+ *  Copyright (C) 2002, 2006 David S. Miller (davem@davemloft.net)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 
 #include <asm/io.h>
 #include <asm/irq.h>
-#ifdef CONFIG_SPARC64
-#include <asm/fhc.h>
-#endif
-#include <asm/sbus.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 
 #if defined(CONFIG_SERIAL_SUNZILOG_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
@@ -65,7 +61,7 @@
 #define ZSDELAY()
 #define ZSDELAY_LONG()
 #define ZS_WSYNC(__channel) \
-       sbus_readb(&((__channel)->control))
+       readb(&((__channel)->control))
 #endif
 
 static int num_sunzilog;
@@ -107,7 +103,7 @@ struct uart_sunzilog_port {
        unsigned char                   prev_status;
 
 #ifdef CONFIG_SERIO
-       struct serio                    *serio;
+       struct serio                    serio;
        int                             serio_open;
 #endif
 };
@@ -138,9 +134,9 @@ static unsigned char read_zsreg(struct zilog_channel __iomem *channel,
 {
        unsigned char retval;
 
-       sbus_writeb(reg, &channel->control);
+       writeb(reg, &channel->control);
        ZSDELAY();
-       retval = sbus_readb(&channel->control);
+       retval = readb(&channel->control);
        ZSDELAY();
 
        return retval;
@@ -149,9 +145,9 @@ static unsigned char read_zsreg(struct zilog_channel __iomem *channel,
 static void write_zsreg(struct zilog_channel __iomem *channel,
                        unsigned char reg, unsigned char value)
 {
-       sbus_writeb(reg, &channel->control);
+       writeb(reg, &channel->control);
        ZSDELAY();
-       sbus_writeb(value, &channel->control);
+       writeb(value, &channel->control);
        ZSDELAY();
 }
 
@@ -162,17 +158,17 @@ static void sunzilog_clear_fifo(struct zilog_channel __iomem *channel)
        for (i = 0; i < 32; i++) {
                unsigned char regval;
 
-               regval = sbus_readb(&channel->control);
+               regval = readb(&channel->control);
                ZSDELAY();
                if (regval & Rx_CH_AV)
                        break;
 
                regval = read_zsreg(channel, R1);
-               sbus_readb(&channel->data);
+               readb(&channel->data);
                ZSDELAY();
 
                if (regval & (PAR_ERR | Rx_OVR | CRC_ERR)) {
-                       sbus_writeb(ERR_RES, &channel->control);
+                       writeb(ERR_RES, &channel->control);
                        ZSDELAY();
                        ZS_WSYNC(channel);
                }
@@ -194,7 +190,7 @@ static void __load_zsregs(struct zilog_channel __iomem *channel, unsigned char *
                udelay(100);
        }
 
-       sbus_writeb(ERR_RES, &channel->control);
+       writeb(ERR_RES, &channel->control);
        ZSDELAY();
        ZS_WSYNC(channel);
 
@@ -291,7 +287,7 @@ static void sunzilog_kbdms_receive_chars(struct uart_sunzilog_port *up,
                /* Stop-A is handled by drivers/char/keyboard.c now. */
 #ifdef CONFIG_SERIO
                if (up->serio_open)
-                       serio_interrupt(up->serio, ch, 0, regs);
+                       serio_interrupt(&up->serio, ch, 0, regs);
 #endif
        } else if (ZS_IS_MOUSE(up)) {
                int ret = suncore_mouse_baud_detection(ch, is_break);
@@ -306,7 +302,7 @@ static void sunzilog_kbdms_receive_chars(struct uart_sunzilog_port *up,
                case 0:
 #ifdef CONFIG_SERIO
                        if (up->serio_open)
-                               serio_interrupt(up->serio, ch, 0, regs);
+                               serio_interrupt(&up->serio, ch, 0, regs);
 #endif
                        break;
                };
@@ -330,12 +326,12 @@ sunzilog_receive_chars(struct uart_sunzilog_port *up,
 
                r1 = read_zsreg(channel, R1);
                if (r1 & (PAR_ERR | Rx_OVR | CRC_ERR)) {
-                       sbus_writeb(ERR_RES, &channel->control);
+                       writeb(ERR_RES, &channel->control);
                        ZSDELAY();
                        ZS_WSYNC(channel);
                }
 
-               ch = sbus_readb(&channel->control);
+               ch = readb(&channel->control);
                ZSDELAY();
 
                /* This funny hack depends upon BRK_ABRT not interfering
@@ -347,7 +343,7 @@ sunzilog_receive_chars(struct uart_sunzilog_port *up,
                if (!(ch & Rx_CH_AV))
                        break;
 
-               ch = sbus_readb(&channel->data);
+               ch = readb(&channel->data);
                ZSDELAY();
 
                ch &= up->parity_mask;
@@ -406,10 +402,10 @@ static void sunzilog_status_handle(struct uart_sunzilog_port *up,
 {
        unsigned char status;
 
-       status = sbus_readb(&channel->control);
+       status = readb(&channel->control);
        ZSDELAY();
 
-       sbus_writeb(RES_EXT_INT, &channel->control);
+       writeb(RES_EXT_INT, &channel->control);
        ZSDELAY();
        ZS_WSYNC(channel);
 
@@ -421,7 +417,7 @@ static void sunzilog_status_handle(struct uart_sunzilog_port *up,
                         * confusing the PROM.
                         */
                        while (1) {
-                               status = sbus_readb(&channel->control);
+                               status = readb(&channel->control);
                                ZSDELAY();
                                if (!(status & BRK_ABRT))
                                        break;
@@ -458,7 +454,7 @@ static void sunzilog_transmit_chars(struct uart_sunzilog_port *up,
        struct circ_buf *xmit;
 
        if (ZS_IS_CONS(up)) {
-               unsigned char status = sbus_readb(&channel->control);
+               unsigned char status = readb(&channel->control);
                ZSDELAY();
 
                /* TX still busy?  Just wait for the next TX done interrupt.
@@ -487,7 +483,7 @@ static void sunzilog_transmit_chars(struct uart_sunzilog_port *up,
 
        if (up->port.x_char) {
                up->flags |= SUNZILOG_FLAG_TX_ACTIVE;
-               sbus_writeb(up->port.x_char, &channel->data);
+               writeb(up->port.x_char, &channel->data);
                ZSDELAY();
                ZS_WSYNC(channel);
 
@@ -506,7 +502,7 @@ static void sunzilog_transmit_chars(struct uart_sunzilog_port *up,
                goto ack_tx_int;
 
        up->flags |= SUNZILOG_FLAG_TX_ACTIVE;
-       sbus_writeb(xmit->buf[xmit->tail], &channel->data);
+       writeb(xmit->buf[xmit->tail], &channel->data);
        ZSDELAY();
        ZS_WSYNC(channel);
 
@@ -519,7 +515,7 @@ static void sunzilog_transmit_chars(struct uart_sunzilog_port *up,
        return;
 
 ack_tx_int:
-       sbus_writeb(RES_Tx_P, &channel->control);
+       writeb(RES_Tx_P, &channel->control);
        ZSDELAY();
        ZS_WSYNC(channel);
 }
@@ -540,7 +536,7 @@ static irqreturn_t sunzilog_interrupt(int irq, void *dev_id, struct pt_regs *reg
                /* Channel A */
                tty = NULL;
                if (r3 & (CHAEXT | CHATxIP | CHARxIP)) {
-                       sbus_writeb(RES_H_IUS, &channel->control);
+                       writeb(RES_H_IUS, &channel->control);
                        ZSDELAY();
                        ZS_WSYNC(channel);
 
@@ -563,7 +559,7 @@ static irqreturn_t sunzilog_interrupt(int irq, void *dev_id, struct pt_regs *reg
                spin_lock(&up->port.lock);
                tty = NULL;
                if (r3 & (CHBEXT | CHBTxIP | CHBRxIP)) {
-                       sbus_writeb(RES_H_IUS, &channel->control);
+                       writeb(RES_H_IUS, &channel->control);
                        ZSDELAY();
                        ZS_WSYNC(channel);
 
@@ -594,7 +590,7 @@ static __inline__ unsigned char sunzilog_read_channel_status(struct uart_port *p
        unsigned char status;
 
        channel = ZILOG_CHANNEL_FROM_PORT(port);
-       status = sbus_readb(&channel->control);
+       status = readb(&channel->control);
        ZSDELAY();
 
        return status;
@@ -682,7 +678,7 @@ static void sunzilog_start_tx(struct uart_port *port)
        up->flags |= SUNZILOG_FLAG_TX_ACTIVE;
        up->flags &= ~SUNZILOG_FLAG_TX_STOPPED;
 
-       status = sbus_readb(&channel->control);
+       status = readb(&channel->control);
        ZSDELAY();
 
        /* TX busy?  Just wait for the TX done interrupt.  */
@@ -693,7 +689,7 @@ static void sunzilog_start_tx(struct uart_port *port)
         * IRQ sending engine.
         */
        if (port->x_char) {
-               sbus_writeb(port->x_char, &channel->data);
+               writeb(port->x_char, &channel->data);
                ZSDELAY();
                ZS_WSYNC(channel);
 
@@ -702,7 +698,7 @@ static void sunzilog_start_tx(struct uart_port *port)
        } else {
                struct circ_buf *xmit = &port->info->xmit;
 
-               sbus_writeb(xmit->buf[xmit->tail], &channel->data);
+               writeb(xmit->buf[xmit->tail], &channel->data);
                ZSDELAY();
                ZS_WSYNC(channel);
 
@@ -779,7 +775,7 @@ static void __sunzilog_startup(struct uart_sunzilog_port *up)
        struct zilog_channel __iomem *channel;
 
        channel = ZILOG_CHANNEL_FROM_PORT(&up->port);
-       up->prev_status = sbus_readb(&channel->control);
+       up->prev_status = readb(&channel->control);
 
        /* Enable receiver and transmitter.  */
        up->curregs[R3] |= RxENAB;
@@ -963,7 +959,7 @@ sunzilog_set_termios(struct uart_port *port, struct termios *termios,
 
 static const char *sunzilog_type(struct uart_port *port)
 {
-       return "SunZilog";
+       return "zs";
 }
 
 /* We do not request/release mappings of the registers here, this
@@ -1012,7 +1008,6 @@ static struct uart_sunzilog_port *sunzilog_port_table;
 static struct zilog_layout __iomem **sunzilog_chip_regs;
 
 static struct uart_sunzilog_port *sunzilog_irq_chain;
-static int zilog_irq = -1;
 
 static struct uart_driver sunzilog_reg = {
        .owner          =       THIS_MODULE,
@@ -1021,232 +1016,47 @@ static struct uart_driver sunzilog_reg = {
        .major          =       TTY_MAJOR,
 };
 
-static void * __init alloc_one_table(unsigned long size)
-{
-       void *ret;
-
-       ret = kmalloc(size, GFP_KERNEL);
-       if (ret != NULL)
-               memset(ret, 0, size);
-
-       return ret;
-}
-
-static void __init sunzilog_alloc_tables(void)
-{
-       sunzilog_port_table = 
-               alloc_one_table(NUM_CHANNELS * sizeof(struct uart_sunzilog_port));
-       sunzilog_chip_regs = 
-               alloc_one_table(NUM_SUNZILOG * sizeof(struct zilog_layout __iomem *));
-
-       if (sunzilog_port_table == NULL || sunzilog_chip_regs == NULL) {
-               prom_printf("SunZilog: Cannot allocate tables.\n");
-               prom_halt();
-       }
-}
-
-#ifdef CONFIG_SPARC64
-
-/* We used to attempt to use the address property of the Zilog device node
- * but that totally is not necessary on sparc64.
- */
-static struct zilog_layout __iomem * __init get_zs_sun4u(int chip, int zsnode)
+static int __init sunzilog_alloc_tables(void)
 {
-       void __iomem *mapped_addr;
-       unsigned int sun4u_ino;
-       struct sbus_bus *sbus = NULL;
-       struct sbus_dev *sdev = NULL;
-       int err;
-
-       if (central_bus == NULL) {
-               for_each_sbus(sbus) {
-                       for_each_sbusdev(sdev, sbus) {
-                               if (sdev->prom_node == zsnode)
-                                       goto found;
-                       }
-               }
-       }
- found:
-       if (sdev == NULL && central_bus == NULL) {
-               prom_printf("SunZilog: sdev&&central == NULL for "
-                           "Zilog %d in get_zs_sun4u.\n", chip);
-               prom_halt();
-       }
-       if (central_bus == NULL) {
-               mapped_addr =
-                       sbus_ioremap(&sdev->resource[0], 0,
-                                    PAGE_SIZE,
-                                    "Zilog Registers");
-       } else {
-               struct linux_prom_registers zsregs[1];
-
-               err = prom_getproperty(zsnode, "reg",
-                                      (char *) &zsregs[0],
-                                      sizeof(zsregs));
-               if (err == -1) {
-                       prom_printf("SunZilog: Cannot map "
-                                   "Zilog %d regs on "
-                                   "central bus.\n", chip);
-                       prom_halt();
-               }
-               apply_fhc_ranges(central_bus->child,
-                                &zsregs[0], 1);
-               apply_central_ranges(central_bus, &zsregs[0], 1);
-               mapped_addr = (void __iomem *)
-                       ((((u64)zsregs[0].which_io)<<32UL) |
-                       ((u64)zsregs[0].phys_addr));
-       }
-
-       if (zilog_irq == -1) {
-               if (central_bus) {
-                       unsigned long iclr, imap;
-
-                       iclr = central_bus->child->fhc_regs.uregs
-                               + FHC_UREGS_ICLR;
-                       imap = central_bus->child->fhc_regs.uregs
-                               + FHC_UREGS_IMAP;
-                       zilog_irq = build_irq(0, iclr, imap);
-               } else {
-                       err = prom_getproperty(zsnode, "interrupts",
-                                              (char *) &sun4u_ino,
-                                              sizeof(sun4u_ino));
-                       zilog_irq = sbus_build_irq(sbus_root, sun4u_ino);
-               }
-       }
-
-       return (struct zilog_layout __iomem *) mapped_addr;
-}
-#else /* CONFIG_SPARC64 */
-
-/*
- * XXX The sun4d case is utterly screwed: it tries to re-walk the tree
- * (for the 3rd time) in order to find bootbus and cpu. Streamline it.
- */
-static struct zilog_layout __iomem * __init get_zs_sun4cmd(int chip, int node)
-{
-       struct linux_prom_irqs irq_info[2];
-       void __iomem *mapped_addr = NULL;
-       int zsnode, cpunode, bbnode;
-       struct linux_prom_registers zsreg[4];
-       struct resource res;
-
-       if (sparc_cpu_model == sun4d) {
-               int walk;
-
-               zsnode = 0;
-               bbnode = 0;
-               cpunode = 0;
-               for (walk = prom_getchild(prom_root_node);
-                    (walk = prom_searchsiblings(walk, "cpu-unit")) != 0;
-                    walk = prom_getsibling(walk)) {
-                       bbnode = prom_getchild(walk);
-                       if (bbnode &&
-                           (bbnode = prom_searchsiblings(bbnode, "bootbus"))) {
-                               if ((zsnode = prom_getchild(bbnode)) == node) {
-                                       cpunode = walk;
-                                       break;
-                               }
-                       }
-               }
-               if (!walk) {
-                       prom_printf("SunZilog: Cannot find the %d'th bootbus on sun4d.\n",
-                                   (chip / 2));
-                       prom_halt();
-               }
+       struct uart_sunzilog_port *up;
+       unsigned long size;
+       int i;
 
-               if (prom_getproperty(zsnode, "reg",
-                                    (char *) zsreg, sizeof(zsreg)) == -1) {
-                       prom_printf("SunZilog: Cannot map Zilog %d\n", chip);
-                       prom_halt();
-               }
-               /* XXX Looks like an off by one? */
-               prom_apply_generic_ranges(bbnode, cpunode, zsreg, 1);
-               res.start = zsreg[0].phys_addr;
-               res.end = res.start + (8 - 1);
-               res.flags = zsreg[0].which_io | IORESOURCE_IO;
-               mapped_addr = sbus_ioremap(&res, 0, 8, "Zilog Serial");
+       size = NUM_CHANNELS * sizeof(struct uart_sunzilog_port);
+       sunzilog_port_table = kzalloc(size, GFP_KERNEL);
+       if (!sunzilog_port_table)
+               return -ENOMEM;
 
-       } else {
-               zsnode = node;
+       for (i = 0; i < NUM_CHANNELS; i++) {
+               up = &sunzilog_port_table[i];
 
-#if 0 /* XXX When was this used? */
-               if (prom_getintdefault(zsnode, "slave", -1) != chipid) {
-                       zsnode = prom_getsibling(zsnode);
-                       continue;
-               }
-#endif
+               spin_lock_init(&up->port.lock);
 
-               /*
-                * "address" is only present on ports that OBP opened
-                * (from Mitch Bradley's "Hitchhiker's Guide to OBP").
-                * We do not use it.
-                */
+               if (i == 0)
+                       sunzilog_irq_chain = up;
 
-               if (prom_getproperty(zsnode, "reg",
-                                    (char *) zsreg, sizeof(zsreg)) == -1) {
-                       prom_printf("SunZilog: Cannot map Zilog %d\n", chip);
-                       prom_halt();
-               }
-               if (sparc_cpu_model == sun4m)   /* Crude. Pass parent. XXX */
-                       prom_apply_obio_ranges(zsreg, 1);
-               res.start = zsreg[0].phys_addr;
-               res.end = res.start + (8 - 1);
-               res.flags = zsreg[0].which_io | IORESOURCE_IO;
-               mapped_addr = sbus_ioremap(&res, 0, 8, "Zilog Serial");
+               if (i < NUM_CHANNELS - 1)
+                       up->next = up + 1;
+               else
+                       up->next = NULL;
        }
 
-       if (prom_getproperty(zsnode, "intr",
-                            (char *) irq_info, sizeof(irq_info))
-                   % sizeof(struct linux_prom_irqs)) {
-               prom_printf("SunZilog: Cannot get IRQ property for Zilog %d.\n",
-                           chip);
-               prom_halt();
-       }
-       if (zilog_irq == -1) {
-               zilog_irq = irq_info[0].pri;
-       } else if (zilog_irq != irq_info[0].pri) {
-               /* XXX. Dumb. Should handle per-chip IRQ, for add-ons. */
-               prom_printf("SunZilog: Inconsistent IRQ layout for Zilog %d.\n",
-                           chip);
-               prom_halt();
+       size = NUM_SUNZILOG * sizeof(struct zilog_layout __iomem *);
+       sunzilog_chip_regs = kzalloc(size, GFP_KERNEL);
+       if (!sunzilog_chip_regs) {
+               kfree(sunzilog_port_table);
+               sunzilog_irq_chain = NULL;
+               return -ENOMEM;
        }
 
-       return (struct zilog_layout __iomem *) mapped_addr;
+       return 0;
 }
-#endif /* !(CONFIG_SPARC64) */
 
-/* Get the address of the registers for SunZilog instance CHIP.  */
-static struct zilog_layout __iomem * __init get_zs(int chip, int node)
+static void sunzilog_free_tables(void)
 {
-       if (chip < 0 || chip >= NUM_SUNZILOG) {
-               prom_printf("SunZilog: Illegal chip number %d in get_zs.\n", chip);
-               prom_halt();
-       }
-
-#ifdef CONFIG_SPARC64
-       return get_zs_sun4u(chip, node);
-#else
-
-       if (sparc_cpu_model == sun4) {
-               struct resource res;
-
-               /* Not probe-able, hard code it. */
-               switch (chip) {
-               case 0:
-                       res.start = 0xf1000000;
-                       break;
-               case 1:
-                       res.start = 0xf0000000;
-                       break;
-               };
-               zilog_irq = 12;
-               res.end = (res.start + (8 - 1));
-               res.flags = IORESOURCE_IO;
-               return sbus_ioremap(&res, 0, 8, "SunZilog");
-       }
-
-       return get_zs_sun4cmd(chip, node);
-#endif
+       kfree(sunzilog_port_table);
+       sunzilog_irq_chain = NULL;
+       kfree(sunzilog_chip_regs);
 }
 
 #define ZS_PUT_CHAR_MAX_DELAY  2000    /* 10 ms */
@@ -1260,7 +1070,7 @@ static void sunzilog_putchar(struct uart_port *port, int ch)
         * udelay with ZSDELAY as that is a NOP on some platforms.  -DaveM
         */
        do {
-               unsigned char val = sbus_readb(&channel->control);
+               unsigned char val = readb(&channel->control);
                if (val & Tx_BUF_EMP) {
                        ZSDELAY();
                        break;
@@ -1268,7 +1078,7 @@ static void sunzilog_putchar(struct uart_port *port, int ch)
                udelay(5);
        } while (--loops);
 
-       sbus_writeb(ch, &channel->data);
+       writeb(ch, &channel->data);
        ZSDELAY();
        ZS_WSYNC(channel);
 }
@@ -1385,28 +1195,6 @@ static struct console sunzilog_console = {
        .data   =       &sunzilog_reg,
 };
 
-static int __init sunzilog_console_init(void)
-{
-       int i;
-
-       if (con_is_present())
-               return 0;
-
-       for (i = 0; i < NUM_CHANNELS; i++) {
-               int this_minor = sunzilog_reg.minor + i;
-
-               if ((this_minor - 64) == (serial_console - 1))
-                       break;
-       }
-       if (i == NUM_CHANNELS)
-               return 0;
-
-       sunzilog_console.index = i;
-       sunzilog_port_table[i].flags |= SUNZILOG_FLAG_IS_CONS;
-       register_console(&sunzilog_console);
-       return 0;
-}
-
 static inline struct console *SUNZILOG_CONSOLE(void)
 {
        int i;
@@ -1431,101 +1219,8 @@ static inline struct console *SUNZILOG_CONSOLE(void)
 
 #else
 #define SUNZILOG_CONSOLE()     (NULL)
-#define sunzilog_console_init() do { } while (0)
 #endif
 
-/*
- * We scan the PROM tree recursively. This is the most reliable way
- * to find Zilog nodes on various platforms. However, we face an extreme
- * shortage of kernel stack, so we must be very careful. To that end,
- * we scan only to a certain depth, and we use a common property buffer
- * in the scan structure.
- */
-#define ZS_PROPSIZE  128
-#define ZS_SCAN_DEPTH  5
-
-struct zs_probe_scan {
-       int depth;
-       void (*scanner)(struct zs_probe_scan *t, int node);
-
-       int devices;
-       char prop[ZS_PROPSIZE];
-};
-
-static int __inline__ sunzilog_node_ok(int node, const char *name, int len)
-{
-       if (strncmp(name, "zs", len) == 0)
-               return 1;
-       /* Don't fold this procedure just yet. Compare to su_node_ok(). */
-       return 0;
-}
-
-static void __init sunzilog_scan(struct zs_probe_scan *t, int node)
-{
-       int len;
-
-       for (; node != 0; node = prom_getsibling(node)) {
-               len = prom_getproperty(node, "name", t->prop, ZS_PROPSIZE);
-               if (len <= 1)
-                       continue;               /* Broken PROM node */
-               if (sunzilog_node_ok(node, t->prop, len)) {
-                       (*t->scanner)(t, node);
-               } else {
-                       if (t->depth < ZS_SCAN_DEPTH) {
-                               t->depth++;
-                               sunzilog_scan(t, prom_getchild(node));
-                               --t->depth;
-                       }
-               }
-       }
-}
-
-static void __init sunzilog_prepare(void)
-{
-       struct uart_sunzilog_port *up;
-       struct zilog_layout __iomem *rp;
-       int channel, chip;
-
-       /*
-        * Temporary fix.
-        */
-       for (channel = 0; channel < NUM_CHANNELS; channel++)
-               spin_lock_init(&sunzilog_port_table[channel].port.lock);
-
-       sunzilog_irq_chain = up = &sunzilog_port_table[0];
-       for (channel = 0; channel < NUM_CHANNELS - 1; channel++)
-               up[channel].next = &up[channel + 1];
-       up[channel].next = NULL;
-
-       for (chip = 0; chip < NUM_SUNZILOG; chip++) {
-               rp = sunzilog_chip_regs[chip];
-               up[(chip * 2) + 0].port.membase = (void __iomem *)&rp->channelA;
-               up[(chip * 2) + 1].port.membase = (void __iomem *)&rp->channelB;
-
-               /* Channel A */
-               up[(chip * 2) + 0].port.iotype = UPIO_MEM;
-               up[(chip * 2) + 0].port.irq = zilog_irq;
-               up[(chip * 2) + 0].port.uartclk = ZS_CLOCK;
-               up[(chip * 2) + 0].port.fifosize = 1;
-               up[(chip * 2) + 0].port.ops = &sunzilog_pops;
-               up[(chip * 2) + 0].port.type = PORT_SUNZILOG;
-               up[(chip * 2) + 0].port.flags = 0;
-               up[(chip * 2) + 0].port.line = (chip * 2) + 0;
-               up[(chip * 2) + 0].flags |= SUNZILOG_FLAG_IS_CHANNEL_A;
-
-               /* Channel B */
-               up[(chip * 2) + 1].port.iotype = UPIO_MEM;
-               up[(chip * 2) + 1].port.irq = zilog_irq;
-               up[(chip * 2) + 1].port.uartclk = ZS_CLOCK;
-               up[(chip * 2) + 1].port.fifosize = 1;
-               up[(chip * 2) + 1].port.ops = &sunzilog_pops;
-               up[(chip * 2) + 1].port.type = PORT_SUNZILOG;
-               up[(chip * 2) + 1].port.flags = 0;
-               up[(chip * 2) + 1].port.line = (chip * 2) + 1;
-               up[(chip * 2) + 1].flags |= 0;
-       }
-}
-
 static void __init sunzilog_init_kbdms(struct uart_sunzilog_port *up, int channel)
 {
        int baud, brg;
@@ -1539,8 +1234,6 @@ static void __init sunzilog_init_kbdms(struct uart_sunzilog_port *up, int channe
                up->cflag = B4800 | CS8 | CLOCAL | CREAD;
                baud = 4800;
        }
-       printk(KERN_INFO "zs%d at 0x%p (irq = %d) is a SunZilog\n",
-              channel, up->port.membase, zilog_irq);
 
        up->curregs[R15] = BRKIE;
        brg = BPS_TO_BRG(baud, ZS_CLOCK / ZS_CLOCK_DIVISOR);
@@ -1552,216 +1245,268 @@ static void __init sunzilog_init_kbdms(struct uart_sunzilog_port *up, int channe
 #ifdef CONFIG_SERIO
 static void __init sunzilog_register_serio(struct uart_sunzilog_port *up, int channel)
 {
-       struct serio *serio;
-
-       up->serio = serio = kmalloc(sizeof(struct serio), GFP_KERNEL);
-       if (serio) {
-               memset(serio, 0, sizeof(*serio));
-
-               serio->port_data = up;
-
-               serio->id.type = SERIO_RS232;
-               if (channel == KEYBOARD_LINE) {
-                       serio->id.proto = SERIO_SUNKBD;
-                       strlcpy(serio->name, "zskbd", sizeof(serio->name));
-               } else {
-                       serio->id.proto = SERIO_SUN;
-                       serio->id.extra = 1;
-                       strlcpy(serio->name, "zsms", sizeof(serio->name));
-               }
-               strlcpy(serio->phys,
-                       (channel == KEYBOARD_LINE ? "zs/serio0" : "zs/serio1"),
-                       sizeof(serio->phys));
+       struct serio *serio = &up->serio;
 
-               serio->write = sunzilog_serio_write;
-               serio->open = sunzilog_serio_open;
-               serio->close = sunzilog_serio_close;
+       serio->port_data = up;
 
-               serio_register_port(serio);
+       serio->id.type = SERIO_RS232;
+       if (channel == KEYBOARD_LINE) {
+               serio->id.proto = SERIO_SUNKBD;
+               strlcpy(serio->name, "zskbd", sizeof(serio->name));
        } else {
-               printk(KERN_WARNING "zs%d: not enough memory for serio port\n",
-                       channel);
+               serio->id.proto = SERIO_SUN;
+               serio->id.extra = 1;
+               strlcpy(serio->name, "zsms", sizeof(serio->name));
        }
+       strlcpy(serio->phys,
+               (channel == KEYBOARD_LINE ? "zs/serio0" : "zs/serio1"),
+               sizeof(serio->phys));
+
+       serio->write = sunzilog_serio_write;
+       serio->open = sunzilog_serio_open;
+       serio->close = sunzilog_serio_close;
+       serio->dev.parent = up->port.dev;
+
+       serio_register_port(serio);
 }
 #endif
 
-static void __init sunzilog_init_hw(void)
+static void __init sunzilog_init_hw(struct uart_sunzilog_port *up)
 {
-       int i;
-
-       for (i = 0; i < NUM_CHANNELS; i++) {
-               struct uart_sunzilog_port *up = &sunzilog_port_table[i];
-               struct zilog_channel __iomem *channel = ZILOG_CHANNEL_FROM_PORT(&up->port);
-               unsigned long flags;
-               int baud, brg;
+       struct zilog_channel __iomem *channel;
+       unsigned long flags;
+       int baud, brg;
 
-               spin_lock_irqsave(&up->port.lock, flags);
+       channel = ZILOG_CHANNEL_FROM_PORT(&up->port);
 
-               if (ZS_IS_CHANNEL_A(up)) {
-                       write_zsreg(channel, R9, FHWRES);
-                       ZSDELAY_LONG();
-                       (void) read_zsreg(channel, R0);
-               }
+       spin_lock_irqsave(&up->port.lock, flags);
+       if (ZS_IS_CHANNEL_A(up)) {
+               write_zsreg(channel, R9, FHWRES);
+               ZSDELAY_LONG();
+               (void) read_zsreg(channel, R0);
+       }
 
-               if (i == KEYBOARD_LINE || i == MOUSE_LINE) {
-                       sunzilog_init_kbdms(up, i);
-                       up->curregs[R9] |= (NV | MIE);
-                       write_zsreg(channel, R9, up->curregs[R9]);
-               } else {
-                       /* Normal serial TTY. */
-                       up->parity_mask = 0xff;
-                       up->curregs[R1] = EXT_INT_ENAB | INT_ALL_Rx | TxINT_ENAB;
-                       up->curregs[R4] = PAR_EVEN | X16CLK | SB1;
-                       up->curregs[R3] = RxENAB | Rx8;
-                       up->curregs[R5] = TxENAB | Tx8;
-                       up->curregs[R9] = NV | MIE;
-                       up->curregs[R10] = NRZ;
-                       up->curregs[R11] = TCBR | RCBR;
-                       baud = 9600;
-                       brg = BPS_TO_BRG(baud, ZS_CLOCK / ZS_CLOCK_DIVISOR);
-                       up->curregs[R12] = (brg & 0xff);
-                       up->curregs[R13] = (brg >> 8) & 0xff;
-                       up->curregs[R14] = BRSRC | BRENAB;
-                       __load_zsregs(channel, up->curregs);
-                       write_zsreg(channel, R9, up->curregs[R9]);
-               }
+       if (up->port.line == KEYBOARD_LINE ||
+           up->port.line == MOUSE_LINE) {
+               sunzilog_init_kbdms(up, up->port.line);
+               up->curregs[R9] |= (NV | MIE);
+               write_zsreg(channel, R9, up->curregs[R9]);
+       } else {
+               /* Normal serial TTY. */
+               up->parity_mask = 0xff;
+               up->curregs[R1] = EXT_INT_ENAB | INT_ALL_Rx | TxINT_ENAB;
+               up->curregs[R4] = PAR_EVEN | X16CLK | SB1;
+               up->curregs[R3] = RxENAB | Rx8;
+               up->curregs[R5] = TxENAB | Tx8;
+               up->curregs[R9] = NV | MIE;
+               up->curregs[R10] = NRZ;
+               up->curregs[R11] = TCBR | RCBR;
+               baud = 9600;
+               brg = BPS_TO_BRG(baud, ZS_CLOCK / ZS_CLOCK_DIVISOR);
+               up->curregs[R12] = (brg & 0xff);
+               up->curregs[R13] = (brg >> 8) & 0xff;
+               up->curregs[R14] = BRSRC | BRENAB;
+               __load_zsregs(channel, up->curregs);
+               write_zsreg(channel, R9, up->curregs[R9]);
+       }
 
-               spin_unlock_irqrestore(&up->port.lock, flags);
+       spin_unlock_irqrestore(&up->port.lock, flags);
 
 #ifdef CONFIG_SERIO
-               if (i == KEYBOARD_LINE || i == MOUSE_LINE)
-                       sunzilog_register_serio(up, i);
+       if (up->port.line == KEYBOARD_LINE || up->port.line == MOUSE_LINE)
+               sunzilog_register_serio(up, up->port.line);
 #endif
-       }
-}
-
-static struct zilog_layout __iomem * __init get_zs(int chip, int node);
-
-static void __init sunzilog_scan_probe(struct zs_probe_scan *t, int node)
-{
-       sunzilog_chip_regs[t->devices] = get_zs(t->devices, node);
-       t->devices++;
 }
 
-static int __init sunzilog_ports_init(void)
+static int __devinit zs_get_instance(struct device_node *dp)
 {
-       struct zs_probe_scan scan;
        int ret;
-       int uart_count;
-       int i;
-
-       printk(KERN_DEBUG "SunZilog: %d chips.\n", NUM_SUNZILOG);
-
-       scan.scanner = sunzilog_scan_probe;
-       scan.depth = 0;
-       scan.devices = 0;
-       sunzilog_scan(&scan, prom_getchild(prom_root_node));
-
-       sunzilog_prepare();
 
-       if (request_irq(zilog_irq, sunzilog_interrupt, SA_SHIRQ,
-                       "SunZilog", sunzilog_irq_chain)) {
-               prom_printf("SunZilog: Unable to register zs interrupt handler.\n");
-               prom_halt();
-       }
+       ret = of_getintprop_default(dp, "slave", -1);
+       if (ret != -1)
+               return ret;
 
-       sunzilog_init_hw();
+       if (of_find_property(dp, "keyboard", NULL))
+               ret = 1;
+       else
+               ret = 0;
 
-       /* We can only init this once we have probed the Zilogs
-        * in the system. Do not count channels assigned to keyboards
-        * or mice when we are deciding how many ports to register.
-        */
-       uart_count = 0;
-       for (i = 0; i < NUM_CHANNELS; i++) {
-               struct uart_sunzilog_port *up = &sunzilog_port_table[i];
+       return ret;
+}
 
-               if (ZS_IS_KEYB(up) || ZS_IS_MOUSE(up))
-                       continue;
+static int zilog_irq = -1;
 
-               uart_count++;
-       }
-               
-       sunzilog_reg.nr = uart_count;
-       sunzilog_reg.minor = sunserial_current_minor;
+static int __devinit zs_probe(struct of_device *dev, const struct of_device_id *match)
+{
+       struct of_device *op = to_of_device(&dev->dev);
+       struct uart_sunzilog_port *up;
+       struct zilog_layout __iomem *rp;
+       int inst = zs_get_instance(dev->node);
+       int err;
 
-       ret = uart_register_driver(&sunzilog_reg);
-       if (ret == 0) {
-               sunzilog_reg.tty_driver->name_base = sunzilog_reg.minor - 64;
-               sunzilog_reg.cons = SUNZILOG_CONSOLE();
+       sunzilog_chip_regs[inst] = of_ioremap(&op->resource[0], 0,
+                                             sizeof(struct zilog_layout),
+                                             "zs");
+       if (!sunzilog_chip_regs[inst])
+               return -ENOMEM;
 
-               sunserial_current_minor += uart_count;
+       rp = sunzilog_chip_regs[inst];
 
-               for (i = 0; i < NUM_CHANNELS; i++) {
-                       struct uart_sunzilog_port *up = &sunzilog_port_table[i];
+       if (zilog_irq == -1) {
+               zilog_irq = op->irqs[0];
+               err = request_irq(zilog_irq, sunzilog_interrupt, SA_SHIRQ,
+                                 "zs", sunzilog_irq_chain);
+               if (err) {
+                       of_iounmap(rp, sizeof(struct zilog_layout));
 
-                       if (ZS_IS_KEYB(up) || ZS_IS_MOUSE(up))
-                               continue;
+                       return err;
+               }
+       }
 
-                       if (uart_add_one_port(&sunzilog_reg, &up->port)) {
-                               printk(KERN_ERR
-                                   "SunZilog: failed to add port zs%d\n", i);
-                       }
+       up = &sunzilog_port_table[inst * 2];
+
+       /* Channel A */
+       up[0].port.mapbase = op->resource[0].start + 0x00;
+       up[0].port.membase = (void __iomem *) &rp->channelA;
+       up[0].port.iotype = UPIO_MEM;
+       up[0].port.irq = op->irqs[0];
+       up[0].port.uartclk = ZS_CLOCK;
+       up[0].port.fifosize = 1;
+       up[0].port.ops = &sunzilog_pops;
+       up[0].port.type = PORT_SUNZILOG;
+       up[0].port.flags = 0;
+       up[0].port.line = (inst * 2) + 0;
+       up[0].port.dev = &op->dev;
+       up[0].flags |= SUNZILOG_FLAG_IS_CHANNEL_A;
+       if (inst == 1)
+               up[0].flags |= SUNZILOG_FLAG_CONS_KEYB;
+       sunzilog_init_hw(&up[0]);
+
+       /* Channel B */
+       up[1].port.mapbase = op->resource[0].start + 0x04;
+       up[1].port.membase = (void __iomem *) &rp->channelB;
+       up[1].port.iotype = UPIO_MEM;
+       up[1].port.irq = op->irqs[0];
+       up[1].port.uartclk = ZS_CLOCK;
+       up[1].port.fifosize = 1;
+       up[1].port.ops = &sunzilog_pops;
+       up[1].port.type = PORT_SUNZILOG;
+       up[1].port.flags = 0;
+       up[1].port.line = (inst * 2) + 1;
+       up[1].port.dev = &op->dev;
+       up[1].flags |= 0;
+       if (inst == 1)
+               up[1].flags |= SUNZILOG_FLAG_CONS_MOUSE;
+       sunzilog_init_hw(&up[1]);
+
+       if (inst != 1) {
+               err = uart_add_one_port(&sunzilog_reg, &up[0].port);
+               if (err) {
+                       of_iounmap(rp, sizeof(struct zilog_layout));
+                       return err;
+               }
+               err = uart_add_one_port(&sunzilog_reg, &up[1].port);
+               if (err) {
+                       uart_remove_one_port(&sunzilog_reg, &up[0].port);
+                       of_iounmap(rp, sizeof(struct zilog_layout));
+                       return err;
                }
        }
 
-       return ret;
+       dev_set_drvdata(&dev->dev, &up[0]);
+
+       return 0;
 }
 
-static void __init sunzilog_scan_count(struct zs_probe_scan *t, int node)
+static void __devexit zs_remove_one(struct uart_sunzilog_port *up)
 {
-       t->devices++;
+       if (ZS_IS_KEYB(up) || ZS_IS_MOUSE(up)) {
+#ifdef CONFIG_SERIO
+               serio_unregister_port(&up->serio);
+#endif
+       } else
+               uart_remove_one_port(&sunzilog_reg, &up->port);
 }
 
-static int __init sunzilog_ports_count(void)
+static int __devexit zs_remove(struct of_device *dev)
 {
-       struct zs_probe_scan scan;
+       struct uart_sunzilog_port *up = dev_get_drvdata(&dev->dev);
+       struct zilog_layout __iomem *regs;
 
-       /* Sun4 Zilog setup is hard coded, no probing to do.  */
-       if (sparc_cpu_model == sun4)
-               return 2;
+       zs_remove_one(&up[0]);
+       zs_remove_one(&up[1]);
 
-       scan.scanner = sunzilog_scan_count;
-       scan.depth = 0;
-       scan.devices = 0;
+       regs = sunzilog_chip_regs[up[0].port.line / 2];
+       of_iounmap(regs, sizeof(struct zilog_layout));
 
-       sunzilog_scan(&scan, prom_getchild(prom_root_node));
+       dev_set_drvdata(&dev->dev, NULL);
 
-       return scan.devices;
+       return 0;
 }
 
+static struct of_device_id zs_match[] = {
+       {
+               .name = "zs",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(of, zs_match);
+
+static struct of_platform_driver zs_driver = {
+       .name           = "zs",
+       .match_table    = zs_match,
+       .probe          = zs_probe,
+       .remove         = __devexit_p(zs_remove),
+};
+
 static int __init sunzilog_init(void)
 {
+       struct device_node *dp;
+       int err;
 
-       NUM_SUNZILOG = sunzilog_ports_count();
-       if (NUM_SUNZILOG == 0)
-               return -ENODEV;
+       NUM_SUNZILOG = 0;
+       for_each_node_by_name(dp, "zs")
+               NUM_SUNZILOG++;
 
-       sunzilog_alloc_tables();
+       if (NUM_SUNZILOG) {
+               int uart_count;
 
-       sunzilog_ports_init();
+               err = sunzilog_alloc_tables();
+               if (err)
+                       return err;
 
-       return 0;
+               /* Subtract 1 for keyboard, 1 for mouse.  */
+               uart_count = (NUM_SUNZILOG * 2) - 2;
+
+               sunzilog_reg.nr = uart_count;
+               sunzilog_reg.minor = sunserial_current_minor;
+               err = uart_register_driver(&sunzilog_reg);
+               if (err) {
+                       sunzilog_free_tables();
+                       return err;
+               }
+               sunzilog_reg.tty_driver->name_base = sunzilog_reg.minor - 64;
+               sunzilog_reg.cons = SUNZILOG_CONSOLE();
+
+               sunserial_current_minor += uart_count;
+       }
+
+       return of_register_driver(&zs_driver, &of_bus_type);
 }
 
 static void __exit sunzilog_exit(void)
 {
-       int i;
+       of_unregister_driver(&zs_driver);
 
-       for (i = 0; i < NUM_CHANNELS; i++) {
-               struct uart_sunzilog_port *up = &sunzilog_port_table[i];
-
-               if (ZS_IS_KEYB(up) || ZS_IS_MOUSE(up)) {
-#ifdef CONFIG_SERIO
-                       if (up->serio) {
-                               serio_unregister_port(up->serio);
-                               up->serio = NULL;
-                       }
-#endif
-               } else
-                       uart_remove_one_port(&sunzilog_reg, &up->port);
+       if (zilog_irq != -1) {
+               free_irq(zilog_irq, sunzilog_irq_chain);
+               zilog_irq = -1;
        }
 
-       uart_unregister_driver(&sunzilog_reg);
+       if (NUM_SUNZILOG) {
+               uart_unregister_driver(&sunzilog_reg);
+               sunzilog_free_tables();
+       }
 }
 
 module_init(sunzilog_init);
@@ -1769,4 +1514,5 @@ module_exit(sunzilog_exit);
 
 MODULE_AUTHOR("David S. Miller");
 MODULE_DESCRIPTION("Sun Zilog serial port driver");
+MODULE_VERSION("2.0");
 MODULE_LICENSE("GPL");
index 017571ffa19cec0bd744cea32743fd561a99c4c8..e93d0edc2e0890b79accfcb488abbe7980d8620e 100644 (file)
@@ -19,7 +19,6 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_VR41XX_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
index ed946311d3a47e3120185e909eeb9524185cf4bc..0040f10c9e39b3cbdd0364e3822b886e0e270a1a 100644 (file)
@@ -7,7 +7,6 @@
  *   Pat Gefre <pfg@sgi.com> - IOC3 serial port IRQ demuxer
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/pci.h>
index dd2f950b21a734ca753a48ddf55fdd31d1b573bc..a23862ef72b26cac0685cc22963d321e0919039c 100644 (file)
@@ -16,7 +16,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/spinlock.h>
 #include <linux/workqueue.h>
index a006a1ee27acb6f4ca59f4a89693673650a84e86..39d9b20f2038c436a85ba8a3543d6ec57db475c6 100644 (file)
@@ -17,7 +17,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/delay.h>
index cf10d5cdfb931ce1e3a08806c7e8b6d38f2c7854..757dec9c7ee9fc89b11d05dd7253ea3993c70eb8 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 2001, 2002, 2003, 2004  Maciej W. Rozycki
  */
 
-#include <linux/config.h>
 
 #include <linux/errno.h>
 #include <linux/sched.h>
index 7f27b356eaf723450d3598db9d62a60a5ab3a441..93bc90b8ff92af51525908409bf762ea7e801807 100644 (file)
@@ -39,7 +39,6 @@
  *     is shared with DSRS(DTE) at pin 23.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
index ad742cec94fa09d1e8b5f5b1b9f0cf249b9e9e57..f4f4ef0f377ae001c2aee0d24bec14dc91a46442 100644 (file)
@@ -5,7 +5,6 @@
  * and should work with all USB controllers, regardles of bus type.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
index a9d89c78cc2087f1140b6d89613a1d065d0201cc..4c9e63e665b6988f54f4feca6566a4d6444c231e 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/usb.h>
 #include <linux/module.h>
 #include <linux/init.h>
index bcbeaf7101d16c5549c097c564eb26d5855c43bf..f7bdd94b3aa89b26cb704bf9c202a1f84432bf1b 100644 (file)
@@ -47,6 +47,7 @@
 #include <linux/usbdevice_fs.h>
 #include <linux/cdev.h>
 #include <linux/notifier.h>
+#include <linux/security.h>
 #include <asm/uaccess.h>
 #include <asm/byteorder.h>
 #include <linux/moduleparam.h>
@@ -68,6 +69,7 @@ struct async {
        void __user *userbuffer;
        void __user *userurb;
        struct urb *urb;
+       u32 secid;
 };
 
 static int usbfs_snoop = 0;
@@ -312,7 +314,7 @@ static void async_completed(struct urb *urb, struct pt_regs *regs)
                sinfo.si_code = SI_ASYNCIO;
                sinfo.si_addr = as->userurb;
                kill_proc_info_as_uid(as->signr, &sinfo, as->pid, as->uid, 
-                                     as->euid);
+                                     as->euid, as->secid);
        }
        snoop(&urb->dev->dev, "urb complete\n");
        snoop_urb(urb, as->userurb);
@@ -572,6 +574,7 @@ static int usbdev_open(struct inode *inode, struct file *file)
        ps->disc_euid = current->euid;
        ps->disccontext = NULL;
        ps->ifclaimed = 0;
+       security_task_getsecid(current, &ps->secid);
        wmb();
        list_add_tail(&ps->list, &dev->filelist);
        file->private_data = ps;
@@ -1053,6 +1056,7 @@ static int proc_do_submiturb(struct dev_state *ps, struct usbdevfs_urb *uurb,
        as->pid = current->pid;
        as->uid = current->uid;
        as->euid = current->euid;
+       security_task_getsecid(current, &as->secid);
        if (!(uurb->endpoint & USB_DIR_IN)) {
                if (copy_from_user(as->urb->transfer_buffer, uurb->buffer, as->urb->transfer_buffer_length)) {
                        free_async(as);
index c196f38453056b54eee53634faafa3345b197552..ec8906501415b38cac0298e52194874ff58a1c2f 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/device.h>
 #include <linux/usb.h>
 #include "hcd.h"
index f65b193cde3d43ab1a68fdd31575b298990f18cc..abee0f5b6a66492c1a9e417a8f908a0cb9d8606d 100644 (file)
@@ -15,7 +15,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/spinlock.h>
 #include <linux/errno.h>
index 66b78404ab34cfd4786d2742cb40c0c1c81de288..9d16716d166e7517d5b0a23ac8dcb8f09835892c 100644 (file)
@@ -16,7 +16,6 @@
  * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/pci.h>
index 4bf914d00a14ddc9a9110c1c87b098e3a412e539..fb4d058bbde00d006deb8d4f50ce7496fbcf1384 100644 (file)
@@ -22,7 +22,6 @@
  * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/version.h>
 #include <linux/kernel.h>
index e1731ff8af4d803f73489200527ca45caf8468df..875596e98e422de1c18bbdadf37db2886193d0f4 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/module.h>
index bfc9b28a7242e5df48e62e188fbf405ce72f3a18..e47e3a8ed6e4b62cd2f81fbd590c1fd9515638fb 100644 (file)
@@ -27,7 +27,6 @@
 
 /*****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/fs.h>
 #include <linux/mount.h>
@@ -700,7 +699,7 @@ static void usbfs_remove_device(struct usb_device *dev)
                        sinfo.si_errno = EPIPE;
                        sinfo.si_code = SI_ASYNCIO;
                        sinfo.si_addr = ds->disccontext;
-                       kill_proc_info_as_uid(ds->discsignr, &sinfo, ds->disc_pid, ds->disc_uid, ds->disc_euid);
+                       kill_proc_info_as_uid(ds->discsignr, &sinfo, ds->disc_pid, ds->disc_uid, ds->disc_euid, ds->secid);
                }
        }
 }
index 8569600f313071dbda5fb278c2cd06d77d3c7862..4cc8d3e67db795f54f5f8dcc1d5a393c391796eb 100644 (file)
@@ -2,7 +2,6 @@
  * message.c - synchronous message handling
  */
 
-#include <linux/config.h>
 #include <linux/pci.h> /* for scatterlist macros */
 #include <linux/usb.h>
 #include <linux/module.h>
index fe0ed54fa0ae1b982c8ea1e94d15dfdf8d568bb5..b042676af0a5b11b70b1fa9e422aba2de4f2a551 100644 (file)
@@ -9,7 +9,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/notifier.h>
 #include <linux/usb.h>
index 3f49bf51cff75a6f4de11b7b2cd73bffbb52a931..dec973affb0f5b2639d9bbaeb237726c0bbd9d56 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/usb.h>
 #include "usb.h"
index dad4d8fd8180afc8ee779a04b380a7d364cdc9db..9864988377c74c11c052336a2065be1bdf8c54c7 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/bitops.h>
index fb488c8a860c9fc1ee8bc0605a501bd3de2d6e5a..184c24660a4c572b89fd4175d24314dd1fcb8f6c 100644 (file)
@@ -21,7 +21,6 @@
  * are evil.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/bitops.h>
index 7a650c763a627a2992f0133f662f104fba94f572..49f69236b4201614b5a8329f7d7d12ec0309d5d5 100644 (file)
@@ -80,6 +80,7 @@ struct dev_state {
        uid_t disc_uid, disc_euid;
        void __user *disccontext;
        unsigned long ifclaimed;
+       u32 secid;
 };
 
 /* internal notify stuff */
index b8d0b7825bf360c7a446aaa683e4b0a006cfa75d..acb3c3d2e8886a84b4336dd539872d1872bb31fb 100644 (file)
@@ -25,7 +25,6 @@
 #undef VERBOSE
 #undef PACKET_TRACE
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/platform_device.h>
index 42ce41d71b7fd8d0e97dc6c96fb40040fd9eb6a8..4be47195bd38d633b3b6dca431682cc69543bcfa 100644 (file)
@@ -36,7 +36,6 @@
 
 #define DEBUG
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
index 078daa026718b234c3994d81a4c6f57a6c27557f..8320fcef04256f642cfa3830bfe8ba20043dcd9d 100644 (file)
@@ -23,7 +23,6 @@
 // #define DEBUG 1
 // #define VERBOSE
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
index a43dc908ac59218fa564b13a3ce10d3eb312f52a..b1a9cf06f3e67efe3f0baf87d7dd834d265aaa8d 100644 (file)
 #undef VERBOSE
 #undef DUMP_MSGS
 
-#include <linux/config.h>
 
 #include <asm/system.h>
 #include <asm/uaccess.h>
index 5378c175729215c9822b240b9f68922eef263ed5..3f827ded8cdf5c0fad3dd16917a6dfd93a0bf05f 100644 (file)
@@ -24,7 +24,6 @@
 // #define     VERBOSE         /* extra debug messages (success too) */
 // #define     USB_TRACE       /* packet-level success messages */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/pci.h>
index 9b2e6f7cbb8b3dc37980e8944074c89cd381c130..e3bb78524c8817fbb6144f46971f8067ddc2e6d6 100644 (file)
@@ -24,7 +24,6 @@
 #ifndef __LH7A40X_H_
 #define __LH7A40X_H_
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/ioport.h>
index 1facdea56a8a54140d72f4a5d9063fb95cffe003..570996d7eb34083062001f162013c25805b84805 100644 (file)
@@ -46,7 +46,6 @@
 #undef DEBUG           /* messages on error and most fault paths */
 #undef VERBOSE         /* extra debug messages (success too) */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/dma-mapping.h>
index fbea514489094778c334c6876e906514b7b1cbce..0d642ac700553278a56f56c6a000b563413b4085 100644 (file)
@@ -22,7 +22,6 @@
 #undef DEBUG
 #undef VERBOSE
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/ioport.h>
index 735e9dbd39fdfaedec41a6ac59f91a07bb0f1381..c88650dffdeb6b96e05957d8da863253e75e4a22 100644 (file)
@@ -27,7 +27,6 @@
 #undef DEBUG
 // #define     VERBOSE DBG_VERBOSE
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/ioport.h>
index 3ff6db7828a04560eaf963f6ec77eec9d14dd2a3..354670d123080c4f244e387409feeb8e0f847cb2 100644 (file)
@@ -23,7 +23,6 @@
  *             updates to merge with Linux 2.6, better match RNDIS spec
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index 416acac879df5d3b96d43d99bfe984a3bb9081bd..30d7664d449d7d34340efbd06813461f517d4fa0 100644 (file)
@@ -17,7 +17,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
index 68e3d8f5da8947cb8d28cf17c2056b8829d04190..3a08a7ab4ce062b83039b98b94c121a955b4dc60 100644 (file)
@@ -62,7 +62,6 @@
 #define DEBUG 1
 // #define VERBOSE
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
index 9b37e508ada329119958d99d6955b7bba2ecbe65..cee6f538de0a2760abc086edbe5eb549003fd5d2 100644 (file)
@@ -16,7 +16,6 @@
  * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/dmapool.h>
index 4a22909518f5506fec0b5cc839ae78057d173550..61e571782cf7a9222d629d7e81c97076c15c3c17 100644 (file)
@@ -4,7 +4,6 @@
  * Copyright (c) 2002, 2003 Axis Communications AB.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
 #include <linux/ioport.h>
index 73f5a379d9b332a37e73b100862ad3c817e0df9e..8fb842ed5f6e1ef0f58d8e3d0a4b953f94fdee33 100644 (file)
@@ -74,7 +74,6 @@
  * This file is licenced under the GPL.
  */
  
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/pci.h>
index 1045f846fbe2c4cedb5d3ac498488b572246258a..dff60568b4a147cb2e1875c4659bf8cb3a2db164 100644 (file)
@@ -8,7 +8,6 @@
  *  (and others)
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
index 89bcda5a329897aee7d5694b879595355190d84e..c327168255cd43467229b43e1c9c7589ac3ebb20 100644 (file)
@@ -31,7 +31,6 @@
 #undef VERBOSE
 #undef PACKET_TRACE
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index 6637a0e49978b0b897e671dfd54861db05eb0f89..dc286a48cafdeba4d687069a294a94d2980e47d1 100644 (file)
@@ -9,7 +9,6 @@
  * (C) Copyright 1999-2001 Johannes Erdfelt
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/debugfs.h>
 #include <linux/smp_lock.h>
index 7b48567622ef318bc22317c121c752f0a48aa47f..4151f618602d13bb801f9f2360d290c898733830 100644 (file)
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/kernel.h>
index 36855062eacc8c5c984e5f8a6ca77a76c7c3b31e..9e3f139033714b49c2c7ef101803d52a78e02112 100644 (file)
@@ -27,7 +27,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 07c8c0e665dd301ced352c6f20e0bb68a0034b98..05d2d6012eb247d4700abdb086bc257eaea1c792 100644 (file)
@@ -85,7 +85,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index c4670e1d46545f12cdfe0ef9cdd89c106d1ca594..70477f02cc29fc49d93bf9f808ce56bb72b19b3b 100644 (file)
@@ -25,7 +25,6 @@
  * e-mail - mail your message to Paul Stewart <stewart@wetlogic.net>
  */
 
-#include <linux/config.h>
 #include <linux/poll.h>
 #include <linux/slab.h>
 #include <linux/module.h>
index 5c570cc703f355af8adf2198967424e62aa968da..86acb5f1907aeebe10e644a53dc37ea02e2781ac 100644 (file)
@@ -39,7 +39,6 @@
  *
  *****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
 #include <linux/module.h>
index 70af985b5db9ad50d63f791b99f8bb1ee648134d..4723b310f277e5358dfeb7445c92b790789af013 100644 (file)
@@ -11,7 +11,6 @@
  * and Keyspan, Inc the manufacturers of the Keyspan USB DMR product.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 4fdee4db0729d3e165258957d1f5bfb3c58d1552..a9ccda8810e00af0fddd555c5326b587efeafeed 100644 (file)
@@ -39,7 +39,6 @@
  *
  *****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
 #include <linux/module.h>
index da7b0bf51aff80d8b6eda7334ddfd3627c0401ff..0149043ffb975366b6e41cc3522734773c83ee32 100644 (file)
@@ -24,7 +24,6 @@
 
 //#define DEBUG
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
 #include <linux/module.h>
index cfd4a4e04334fbcfbf78e139b58188f242c6549a..9889b1cda05b8600a181bb946698b054ecceb0e6 100644 (file)
@@ -54,7 +54,6 @@
  * 2002-07-17 - 0.0.5 : simplified d-pad handling
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index 24aedbb20f032e405c8d5714ed8f3b36ad13a718..575a4e672e96a24c47925321f92b17945f87aeab 100644 (file)
@@ -46,7 +46,6 @@
  *   20050816 henk     Merge 2.6.13-rc6
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index a04204292aa3db244f73ee38ad3e96e414d9d75b..b20bec445552007b23d0008bc6998a3f717244af 100644 (file)
@@ -14,7 +14,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index d0b167256699dd07c56cbd6539da65075c9d47ff..fcd69c52aea93a9f2acb1736672929ee7e70c2e9 100644 (file)
@@ -16,7 +16,6 @@
 
 */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/delay.h>
index 966acb474f678f873d90ad22bd604cadbc911bea..f30ab1fbb3c8c5f119edf1ac66dd1e3d31341bfe 100644 (file)
@@ -27,7 +27,6 @@
  * V0.13 (mh) Added support for LD X-Ray and Machine Test System
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 779bcf0373adb9e75224bdbdab3a7306f88dfb30..7699d970e680d783bbb83c6a06280c9552bf2fcb 100644 (file)
@@ -75,7 +75,6 @@
  *   - move reset into open to clean out spurious data
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 13aeea2026ccb6a916efca8a178ff65c6e274486..bfbbbfbb92bcca4ef3b56fe8aea5241ef057ca7b 100644 (file)
@@ -13,7 +13,6 @@
  * This is a driver for the USB PhidgetInterfaceKit.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 5a040c205eed58f3cb3760a955aaff3cf020dff2..c0df79c9653810b17e0e87737eb9e1ab37b1dad0 100644 (file)
@@ -25,7 +25,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 968f0d38cff769b87cfb46135fe5bff37bf0739d..9b30f896281471ab05656fb0c07e33c4040ee40a 100644 (file)
@@ -36,7 +36,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index f441964132c044315cd87ec0733bfc6bf4f8748a..0c5ee0ad6bb952fecc1eda6708cbab753ebc4120 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 81ba14c73dc7b5b321408979043c3e2a0c428712..786e1dbe88ec4dbbd82484146ad77fa6d7444473 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 37111acec8756a3b013bfe002bc395d9f72e2ece..2e2bbc003e9392c7ae974b6ee62f86a1b287eb9d 100644 (file)
@@ -22,7 +22,6 @@
 // #define     DEBUG                   // error path messages, extra info
 // #define     VERBOSE                 // more; success messages
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kmod.h>
 #include <linux/sched.h>
index efd195b5912c6bdab30a27f2fa86158a2a9d1ab2..82ce0358d9a3e5f13e44a76089c319e28622b662 100644 (file)
@@ -20,7 +20,6 @@
 // #define     DEBUG                   // error path messages, extra info
 // #define     VERBOSE                 // more; success messages
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/init.h>
index ec801e8bb1bba093142449e956393e29f67bfe86..e2fae85851a3e654117f61308866ad888654d150 100644 (file)
@@ -17,7 +17,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kmod.h>
 #include <linux/sched.h>
index faf1e86be687db900e4aeb15965ca52b012971d3..3155f25f1d48ba82a4abfe40c096441f8d230ff1 100644 (file)
@@ -21,7 +21,6 @@
 // #define     DEBUG                   // error path messages, extra info
 // #define     VERBOSE                 // more; success messages
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/init.h>
index 78e6a43b1087037e81bdbb74b2489b590676ccdc..a9b6eeac3e3fa5da89949bca70990f2258c3e279 100644 (file)
@@ -20,7 +20,6 @@
 // #define     DEBUG                   // error path messages, extra info
 // #define     VERBOSE                 // more; success messages
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/init.h>
index 4fe863389cb76a522cb3a8437495efd521329664..5d17cdfc7bab00e468f8beafe466533b1815596e 100644 (file)
@@ -20,7 +20,6 @@
 // #define     DEBUG                   // error path messages, extra info
 // #define     VERBOSE                 // more; success messages
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/init.h>
index f551546d7521834872cf5e0db502238449d2b7a1..c2a28d88ef3c8d174124790c0be00f116173d5c5 100644 (file)
@@ -20,7 +20,6 @@
 // #define     DEBUG                   // error path messages, extra info
 // #define     VERBOSE                 // more; success messages
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/init.h>
index 1bbbae283c0b64d7faeec26eb1acb92539ad84cf..718f8e2b552b008d8c5285e147eca5c364d2ba96 100644 (file)
@@ -6,7 +6,6 @@
  * version 2 as published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/init.h>
 #include <linux/signal.h>
index 362d6907c9bba3d68cd54f6898581deca3c7eada..54183e173a6d9a071b30609ab744490b08061243 100644 (file)
@@ -33,7 +33,6 @@
 // #define     DEBUG                   // error path messages, extra info
 // #define     VERBOSE                 // more; success messages
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/init.h>
index 813e470d0600435d058f14f471118817850b46c4..144566bda583aa26b029de28ee8eeb7d27a65727 100644 (file)
@@ -20,7 +20,6 @@
 // #define     DEBUG                   // error path messages, extra info
 // #define     VERBOSE                 // more; success messages
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/init.h>
index 4144777ea18b29fc6bf9adbcb3dc667093b2ecb2..3faa7aa0111afa4826f2f551312fb171b243ead8 100644 (file)
@@ -63,7 +63,6 @@
  *    UsbSnoop on Windows2000 and from examining the other USB drivers.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index e9f9f4bafa17568eecd17b030e014790d792909b..f2d993b70c18250cf51a8e87f7dfe4670f8d900b 100644 (file)
@@ -8,7 +8,6 @@
  *     2 as published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/tty.h>
index f3404e10afb4a3abb05bfeecc637883d68a3d3d2..3d456b32c3166e5e02d756b64c8564f8b713eb9e 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index f8c0cb287736998ab767abd1627fa6f8ace34de5..df0a4f98b4ae6487ede58b83eb14d17b6927a3b1 100644 (file)
@@ -17,7 +17,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/slab.h>
index 1fd5c5a9f2efd45a38c9609f99642745dccf419c..49b51ab0d4cbae9f8d3a2ab5c36885885b0eb612 100644 (file)
@@ -28,7 +28,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 5de76efe1b37f986fb3f6623717dc6cccb8d4c67..4ff2dfb299bd9a1281b8fb70179ecf13a76f5984 100644 (file)
@@ -48,7 +48,6 @@
 /* Code originates and was built up from ftdi_sio, belkin, pl2303 and others. */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index b3f776a90c932c8ea1c249adb19c0aa8e2720bb2..6953d3ef5738069aea3ab3ae35caabab0c549b0b 100644 (file)
 *  $Id: digi_acceleport.c,v 1.80.1.2 2000/11/02 05:45:08 root Exp $
 */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index afca1eae5fb52499dc20b9dcd1d4b9da48fc6592..1e2b31eeb4973fc9433d51519cd215769d4766ef 100644 (file)
@@ -51,7 +51,6 @@
  * 
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 1e419c8d7392bddde44302dece08a180d0e53704..debc3b0f96629c28c6eb9ed05f09f04215d116c5 100644 (file)
@@ -8,7 +8,6 @@
  *     2 as published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index b2bfea7c815aa3e9d7fefa1831877386a4b6f0d8..8a74b19f1283f08860c49f0a75d521eb2dfdc322 100644 (file)
 /*   to talk to the device */
 /* Thanx to gkh and the rest of the usb dev group for all code I have assimilated :-) */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 04767759cf8a8e5190a93b232d4fca7c76ba727c..1f5d1620baa12180b55d1ddea0131333ec2c8cce 100644 (file)
@@ -23,7 +23,6 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 07a478c59fb2bd43b3a31df788430dc5b696ff6c..945b8bb38c92ec4f422d645644dca8adfff292fd 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/slab.h>
index e9719da2aca1ed2700e8b57467b9e9a672553e45..7e06358b03109015baf2adb080aff6ad0623521d 100644 (file)
@@ -12,7 +12,6 @@
  * See Documentation/usb/usb-serial.txt for more information on using this driver
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/tty.h>
index b85d2156dfdc49c3fa211b0efd50a61b8ed497fa..bd2c05dac2a92953884644dc2717536093213f1d 100644 (file)
@@ -29,7 +29,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/jiffies.h>
 #include <linux/errno.h>
index 8e1e2253748bfaa2e2f72a768de4f70e802165cb..723a12ae87b5db65e048d36c6efce4826897bd6d 100644 (file)
@@ -24,7 +24,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/jiffies.h>
 #include <linux/errno.h>
index 9da6d2a8f2b0c692a03186a6a2110ef40419b0e4..dbcfe172a5cc954ac406abf3fbdb63feaed6cfa4 100644 (file)
@@ -44,7 +44,6 @@
  *     Thanks to info from Heath Robinson and Arieh Davidoff.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index d7f3f736a6928fc760d2159e1562132935584e40..2cf1fed3de43eb8a48d594e71624d4cd14d63692 100644 (file)
@@ -46,7 +46,6 @@
  *     initial version released.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 2cf6ade704e41b77a267eba82c4250100a54786e..d7c58f1bc960ddb364b8a967bc7f47dbaecea726 100644 (file)
@@ -95,7 +95,6 @@
 */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/jiffies.h>
 #include <linux/errno.h>
index b0441c35f98fcc8b708e5569623017b931be9b54..03ab3c0f3cce26e3f70293d37ab1ba123ff3bcfd 100644 (file)
@@ -66,7 +66,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 65d79f630fa4b8012435d5c6e6700810f33dd011..b45ff3e7ab40f9fcca0d7216d033984ed91787aa 100644 (file)
@@ -45,7 +45,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 87dfcd89ffabf44316fefa86d18cf4ecb1f077ce..4577333747729576672ac2028216bc46f6f30671 100644 (file)
@@ -35,7 +35,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 35bd29b6c408e50967f177b12aeab5d71af8ae60..ca05d3275f3e01170692dd18736c99bcf98d52c3 100644 (file)
@@ -64,7 +64,6 @@
  *   (via linux-usb-devel).
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 6dcdb5f598b88b4ae211f9a0b1590d546be7a9ad..cfb711a21a45e61f0bae25c4223ac88d26b7f6e2 100644 (file)
@@ -35,7 +35,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index b0861b61bba78e36920e8913e15fcd3b4733658d..78ad4b3126a646a7311a8255bac4d9d821c050e5 100644 (file)
@@ -57,7 +57,6 @@
 #define DRIVER_AUTHOR "Matthias Urlichs <smurf@smurf.noris.de>"
 #define DRIVER_DESC "USB Driver for GSM modems"
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/jiffies.h>
 #include <linux/errno.h>
index d88704387202389af2376b848497ee2cf06a3210..de93a2b909e78b72fb303fa4ff0702a1c206115d 100644 (file)
@@ -14,7 +14,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index f0215f850d2d3eea98faf2b6569075f596aec3cd..897d8447252b522c77c8dc741a02f191d3b2ad38 100644 (file)
@@ -60,7 +60,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index c3a2071b802d283de1d6a9a520b883925f698e32..a9afff31a9210b2dd6e8c512c0f485a130e30d7c 100644 (file)
@@ -68,7 +68,6 @@
  * fi
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index f466f89eeb6d542353652fe0f9d1a77f631f9fe6..b59a0536ea5c98a2952ef9c4075986dc43445ba7 100644 (file)
@@ -16,7 +16,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index d53ea9b11e816c1609a11c8729f67cc1ab622c62..0f2802a60194a8d347baee83583a1c41e722ba3a 100644 (file)
@@ -14,7 +14,6 @@
 #ifndef __LINUX_USB_SERIAL_H
 #define __LINUX_USB_SERIAL_H
 
-#include <linux/config.h>
 #include <linux/kref.h>
 #include <linux/mutex.h>
 
index 9e89b8d54f725a19276e075d69a2b814db69d386..95a2936e902e22a00c4360ec819292d0c531e73d 100644 (file)
@@ -13,7 +13,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 56ffc81302fcc80fe48f4a6fdca2f16f331df0d6..540438c3f381ad7d69ae2f5044150277ae86a73e 100644 (file)
@@ -65,7 +65,6 @@
  * 
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index cd2096acc723e7d64bb3092e90b41a117ff191cd..77e244a8c37662c8db8773acc7c52802e7d224c8 100644 (file)
@@ -44,7 +44,6 @@
 #ifndef _DEBUG_H_
 #define _DEBUG_H_
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 
 #define USB_STORAGE "usb-storage: "
index 92b69e4c8047855faa5fee3803dc44e32d39e9dc..1628cb258562845e6ad85daa09eb04c5491aa7aa 100644 (file)
@@ -29,7 +29,6 @@
  * 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <scsi/scsi.h>
 #include <scsi/scsi_cmnd.h>
 #include <scsi/scsi_device.h>
index 30e96050fe0c631d966b32ef7a2816e3aa248e94..88aa59ab756321997d670082cc7c24ef84a6ba74 100644 (file)
@@ -28,7 +28,6 @@
  * (http://www.freecom.de/)
  */
 
-#include <linux/config.h>
 #include <linux/hdreg.h>
 
 #include <scsi/scsi.h>
index f9907a5cf129f42057d590bd7ca3c6551533599d..927f7781080f0afebff4b1e5ee4602cf27b6526a 100644 (file)
@@ -37,7 +37,6 @@
  * 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include "usb.h"
 #include "transport.h"
 
index 026a587eb8dd2502aedb8916c8e26077c51375fe..313920d980c9aa7b7fc39c7864409b2ed7bb6130 100644 (file)
@@ -28,7 +28,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/input.h>
 #include <linux/init.h>
index 19b25c5cafd4e2686ec3db4a5846f52a634a89cc..eb7188b3565c840622e05c2663517de512fb0549 100644 (file)
@@ -45,7 +45,6 @@
  * 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/errno.h>
 #include <linux/slab.h>
index 543244d421c1f2e24bc934538187a500b56ae3a1..c7e84e653df9a38a548b954cf4d3a2fc51703577 100644 (file)
@@ -31,7 +31,6 @@
  * the following thing for it to work:
  * The macro UNUSUAL_DEV() must be defined before this file is included
  */
-#include <linux/config.h>
 
 /* If you edit this file, please try to keep it sorted first by VendorID,
  * then by ProductID.
index e232c7c8990910a285d1f1dad8fcc9acf84b4c0b..1185acac4b216ec9fb1e2a59967474d0bcb07a74 100644 (file)
@@ -47,7 +47,6 @@
  * 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/errno.h>
 #include <linux/suspend.h>
index 4de9fb56ebfc02294636e65b1ca92303286e2b4e..b362039792b30fb596a916f8229f00b536b368ef 100644 (file)
@@ -13,7 +13,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
index 455fda990ff70472a895cfb36b346a1d2fe181d6..e714e8449c1d1bd844485773f06ce9fdd5d3060c 100644 (file)
@@ -23,7 +23,6 @@
 
 */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/errno.h>
index 98baecccb3fd4c0522b1a6a39a2f4b31d24969c8..61a8bf159cb0d2eb0464915b3be43ec7381c45fb 100644 (file)
@@ -17,7 +17,6 @@
  *  - Blanking 8bpp displays with VIDC
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 3033c72dea200ae7252170ee36efb882be662782..f9bc9f777e75e61b2bd895dae2eabaafdea3d8fc 100644 (file)
@@ -48,7 +48,6 @@
 #include <linux/tty.h>
 #include <linux/slab.h>
 #include <linux/delay.h>
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/fb.h>
 #include <linux/init.h>
index 29f9f0dfe3b4ce17367c1ca59c7cb96cdef0630e..eaeaf4d1a094e777c8fbffc887c997ba7d336921 100644 (file)
@@ -29,7 +29,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 11cf7fcb1d554ad595ddb3615f74a9cb7709dd06..72c5891094710d09451ea42e0296909d364145ef 100644 (file)
@@ -46,7 +46,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index 43d2cb58af87822ddb54c0faa14d36298c18370b..55fb8b04489b77ea3caf04ad01a1983b6054fa76 100644 (file)
@@ -2,7 +2,6 @@
  *  ATI Frame Buffer Device Driver Core Definitions
  */
 
-#include <linux/config.h>
 #include <linux/spinlock.h>
 #include <linux/wait.h>
     /*
index 22e720611bf674b31702260ca858b684c889084f..85fcd22e6ed5a9d7258ce38faa741d5cdb6f5cbe 100644 (file)
@@ -49,7 +49,6 @@
 ******************************************************************************/
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index 68b15645b89354535368ae43d3307eed57e9e52d..51b78f8de949aac8dfe31e999013eb786b093025 100644 (file)
@@ -52,7 +52,6 @@
 
 #define RADEON_VERSION "0.2.0"
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index a9d0414e4655a0ad2885cbaa807494ef0f757fc3..9aaca58c074ac6c4926d55608ae98bae7aab0c9f 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 1645943b1123a43fc54af6e9d24a179c02dddfa9..38657b2d10eb9c2010d10a578584f8f3c0a4a46e 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef __RADEONFB_H__
 #define __RADEONFB_H__
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
@@ -382,7 +381,7 @@ struct radeonfb_info {
 /* Note about this function: we have some rare cases where we must not schedule,
  * this typically happen with our special "wake up early" hook which allows us to
  * wake up the graphic chip (and thus get the console back) before everything else
- * on some machines that support that mecanism. At this point, interrupts are off
+ * on some machines that support that mechanism. At this point, interrupts are off
  * and scheduling is not permitted
  */
 static inline void _radeon_msleep(struct radeonfb_info *rinfo, unsigned long ms)
index 9ef68cd83bb4d0cc527524c073779fae21579d20..a92a91fef16fc303d0aa393c4af607a063e305a2 100644 (file)
@@ -40,7 +40,6 @@
  *  with this program; if not, write  to the Free Software Foundation, Inc.,
  *  675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index bd879b7ec1193442edb2623d56909c8a16ceb843..caf1eca199b0041fa526afe23ae6f10393443a52 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 /* LCD power functions */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/delay.h>
index 6577fdfdfc16ac2050874318dcabc03922ef8a20..c66e3d52cbf3bac8a9c0cf74c7af5651da47cb6a 100644 (file)
@@ -1,6 +1,6 @@
 /* bw2.c: BWTWO frame buffer driver
  *
- * Copyright (C) 2003 David S. Miller (davem@redhat.com)
+ * Copyright (C) 2003, 2006 David S. Miller (davem@davemloft.net)
  * Copyright (C) 1996,1998 Jakub Jelinek (jj@ultra.linux.cz)
  * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
  * Copyright (C) 1997 Eddie C. Dost (ecd@skynet.be)
 #include <linux/mm.h>
 
 #include <asm/io.h>
-#include <asm/sbus.h>
 #include <asm/oplib.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/fbio.h>
 
-#ifdef CONFIG_SPARC32
-#include <asm/sun4paddr.h>
-#endif
-
 #include "sbuslib.h"
 
 /*
@@ -59,30 +56,30 @@ static struct fb_ops bw2_ops = {
 #define BWTWO_REGISTER_OFFSET 0x400000
 
 struct bt_regs {
-       volatile u32 addr;
-       volatile u32 color_map;
-       volatile u32 control;
-       volatile u32 cursor;
+       u32 addr;
+       u32 color_map;
+       u32 control;
+       u32 cursor;
 };
 
 struct bw2_regs {
        struct bt_regs  cmap;
-       volatile u8     control;
-       volatile u8     status;
-       volatile u8     cursor_start;
-       volatile u8     cursor_end;
-       volatile u8     h_blank_start;
-       volatile u8     h_blank_end;
-       volatile u8     h_sync_start;
-       volatile u8     h_sync_end;
-       volatile u8     comp_sync_end;
-       volatile u8     v_blank_start_high;
-       volatile u8     v_blank_start_low;
-       volatile u8     v_blank_end;
-       volatile u8     v_sync_start;
-       volatile u8     v_sync_end;
-       volatile u8     xfer_holdoff_start;
-       volatile u8     xfer_holdoff_end;
+       u8      control;
+       u8      status;
+       u8      cursor_start;
+       u8      cursor_end;
+       u8      h_blank_start;
+       u8      h_blank_end;
+       u8      h_sync_start;
+       u8      h_sync_end;
+       u8      comp_sync_end;
+       u8      v_blank_start_high;
+       u8      v_blank_start_low;
+       u8      v_blank_end;
+       u8      v_sync_start;
+       u8      v_sync_end;
+       u8      xfer_holdoff_start;
+       u8      xfer_holdoff_end;
 };
 
 /* Status Register Constants */
@@ -117,9 +114,8 @@ struct bw2_par {
 #define BW2_FLAG_BLANKED       0x00000001
 
        unsigned long           physbase;
+       unsigned long           which_io;
        unsigned long           fbsize;
-
-       struct sbus_dev         *sdev;
 };
 
 /**
@@ -174,9 +170,7 @@ static int bw2_mmap(struct fb_info *info, struct vm_area_struct *vma)
 
        return sbusfb_mmap_helper(bw2_mmap_map,
                                  par->physbase, par->fbsize,
-                                 (par->sdev ?
-                                  par->sdev->reg_addrs[0].which_io :
-                                  0),
+                                 par->which_io,
                                  vma);
 }
 
@@ -288,139 +282,124 @@ static void bw2_do_default_mode(struct bw2_par *par, struct fb_info *info,
 struct all_info {
        struct fb_info info;
        struct bw2_par par;
-       struct list_head list;
 };
-static LIST_HEAD(bw2_list);
 
-static void bw2_init_one(struct sbus_dev *sdev)
+static int __devinit bw2_init_one(struct of_device *op)
 {
+       struct device_node *dp = op->node;
        struct all_info *all;
-       struct resource *resp;
-#ifdef CONFIG_SUN4
-       struct resource res;
-#endif
-       int linebytes;
+       int linebytes, err;
 
-       all = kmalloc(sizeof(*all), GFP_KERNEL);
-       if (!all) {
-               printk(KERN_ERR "bw2: Cannot allocate memory.\n");
-               return;
-       }
-       memset(all, 0, sizeof(*all));
-
-       INIT_LIST_HEAD(&all->list);
+       all = kzalloc(sizeof(*all), GFP_KERNEL);
+       if (!all)
+               return -ENOMEM;
 
        spin_lock_init(&all->par.lock);
-       all->par.sdev = sdev;
-
-#ifdef CONFIG_SUN4
-       if (!sdev) {
-               all->par.physbase = sun4_bwtwo_physaddr;
-               res.start = sun4_bwtwo_physaddr;
-               res.end = res.start + BWTWO_REGISTER_OFFSET + sizeof(struct bw2_regs) - 1;
-               res.flags = IORESOURCE_IO;
-               resp = &res;
-               all->info.var.xres = all->info.var.xres_virtual = 1152;
-               all->info.var.yres = all->info.var.yres_virtual = 900;
-               all->info.var.bits_per_pixel = 1;
-               linebytes = 1152 / 8;
-       } else
-#else
-       {
-               BUG_ON(!sdev);
-               all->par.physbase = sdev->reg_addrs[0].phys_addr;
-               resp = &sdev->resource[0];
-               sbusfb_fill_var(&all->info.var, (sdev ? sdev->prom_node : 0), 1);
-               linebytes = prom_getintdefault(sdev->prom_node, "linebytes",
-                                              all->info.var.xres);
-       }
-#endif
+
+       all->par.physbase = op->resource[0].start;
+       all->par.which_io = op->resource[0].flags & IORESOURCE_BITS;
+
+       sbusfb_fill_var(&all->info.var, dp->node, 1);
+       linebytes = of_getintprop_default(dp, "linebytes",
+                                         all->info.var.xres);
+
        all->info.var.red.length = all->info.var.green.length =
                all->info.var.blue.length = all->info.var.bits_per_pixel;
        all->info.var.red.offset = all->info.var.green.offset =
                all->info.var.blue.offset = 0;
 
-       all->par.regs = sbus_ioremap(resp, BWTWO_REGISTER_OFFSET,
-                            sizeof(struct bw2_regs), "bw2 regs");
+       all->par.regs = of_ioremap(&op->resource[0], BWTWO_REGISTER_OFFSET,
+                                  sizeof(struct bw2_regs), "bw2 regs");
 
-       if (sdev && !prom_getbool(sdev->prom_node, "width"))
+       if (!of_find_property(dp, "width", NULL))
                bw2_do_default_mode(&all->par, &all->info, &linebytes);
 
        all->par.fbsize = PAGE_ALIGN(linebytes * all->info.var.yres);
 
        all->info.flags = FBINFO_DEFAULT;
        all->info.fbops = &bw2_ops;
-#if defined(CONFIG_SPARC32)
-       if (sdev)
-               all->info.screen_base = (char __iomem *)
-                       prom_getintdefault(sdev->prom_node, "address", 0);
-#endif
-       if (!all->info.screen_base)
-               all->info.screen_base =
-                       sbus_ioremap(resp, 0, all->par.fbsize, "bw2 ram");
+
+       all->info.screen_base =
+               sbus_ioremap(&op->resource[0], 0, all->par.fbsize, "bw2 ram");
        all->info.par = &all->par;
 
        bw2_blank(0, &all->info);
 
        bw2_init_fix(&all->info, linebytes);
 
-       if (register_framebuffer(&all->info) < 0) {
-               printk(KERN_ERR "bw2: Could not register framebuffer.\n");
+       err= register_framebuffer(&all->info);
+       if (err < 0) {
+               of_iounmap(all->par.regs, sizeof(struct bw2_regs));
+               of_iounmap(all->info.screen_base, all->par.fbsize);
                kfree(all);
-               return;
+               return err;
        }
 
-       list_add(&all->list, &bw2_list);
+       dev_set_drvdata(&op->dev, all);
+
+       printk("%s: bwtwo at %lx:%lx\n",
+              dp->full_name,
+              all->par.which_io, all->par.physbase);
 
-       printk("bw2: bwtwo at %lx:%lx\n",
-              (long) (sdev ? sdev->reg_addrs[0].which_io : 0),
-              (long) all->par.physbase);
+       return 0;
 }
 
-int __init bw2_init(void)
+static int __devinit bw2_probe(struct of_device *dev, const struct of_device_id *match)
 {
-       struct sbus_bus *sbus;
-       struct sbus_dev *sdev;
+       struct of_device *op = to_of_device(&dev->dev);
 
-       if (fb_get_options("bw2fb", NULL))
-               return -ENODEV;
+       return bw2_init_one(op);
+}
 
-#ifdef CONFIG_SUN4
-       bw2_init_one(NULL);
-#endif
-       for_all_sbusdev(sdev, sbus) {
-               if (!strcmp(sdev->prom_name, "bwtwo"))
-                       bw2_init_one(sdev);
-       }
+static int __devexit bw2_remove(struct of_device *dev)
+{
+       struct all_info *all = dev_get_drvdata(&dev->dev);
+
+       unregister_framebuffer(&all->info);
+
+       of_iounmap(all->par.regs, sizeof(struct bw2_regs));
+       of_iounmap(all->info.screen_base, all->par.fbsize);
+
+       kfree(all);
+
+       dev_set_drvdata(&dev->dev, NULL);
 
        return 0;
 }
 
-void __exit bw2_exit(void)
-{
-       struct list_head *pos, *tmp;
+static struct of_device_id bw2_match[] = {
+       {
+               .name = "bwtwo",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(of, bw2_match);
 
-       list_for_each_safe(pos, tmp, &bw2_list) {
-               struct all_info *all = list_entry(pos, typeof(*all), list);
+static struct of_platform_driver bw2_driver = {
+       .name           = "bw2",
+       .match_table    = bw2_match,
+       .probe          = bw2_probe,
+       .remove         = __devexit_p(bw2_remove),
+};
 
-               unregister_framebuffer(&all->info);
-               kfree(all);
-       }
+static int __init bw2_init(void)
+{
+       if (fb_get_options("bw2fb", NULL))
+               return -ENODEV;
+
+       return of_register_driver(&bw2_driver, &of_bus_type);
 }
 
-int __init
-bw2_setup(char *arg)
+static void __exit bw2_exit(void)
 {
-       /* No cmdline options yet... */
-       return 0;
+       return of_unregister_driver(&bw2_driver);
 }
 
-module_init(bw2_init);
 
-#ifdef MODULE
+module_init(bw2_init);
 module_exit(bw2_exit);
-#endif
 
 MODULE_DESCRIPTION("framebuffer driver for BWTWO chipsets");
-MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
+MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
+MODULE_VERSION("2.0");
 MODULE_LICENSE("GPL");
index 74415325b016db9d6e9e4f2e6983e188f28f0816..6faea4034e3db7dccd666bb032c73a1fece237a3 100644 (file)
@@ -24,7 +24,6 @@
 
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index e5ff62e9cfb81c1952823c99ea4b4be17c8e9761..f00b50aab6061e509f957aebd5fd48f603617a48 100644 (file)
@@ -17,7 +17,6 @@
  *  the native cpu endians. I also need to deal with MSB position in the word.
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/fb.h>
index ad8a89bf8eaeedcb3a087f68c7d7d3ecaeeccc64..51d35386a9450d74bd8d96ea674b7356dfd3341a 100644 (file)
@@ -29,7 +29,6 @@
  *  Also need to add code to deal with cards endians that are different than
  *  the native cpu endians. I also need to deal with MSB position in the word.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/fb.h>
index 63b6c79c8a0a98195c00a59cfed6387d57f61f15..7f926c619b61790558c53918df181477c565c3d9 100644 (file)
@@ -1,6 +1,6 @@
 /* cg14.c: CGFOURTEEN frame buffer driver
  *
- * Copyright (C) 2003 David S. Miller (davem@redhat.com)
+ * Copyright (C) 2003, 2006 David S. Miller (davem@davemloft.net)
  * Copyright (C) 1996,1998 Jakub Jelinek (jj@ultra.linux.cz)
  * Copyright (C) 1995 Miguel de Icaza (miguel@nuclecu.unam.mx)
  *
@@ -18,8 +18,8 @@
 #include <linux/mm.h>
 
 #include <asm/io.h>
-#include <asm/sbus.h>
-#include <asm/oplib.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/fbio.h>
 
 #include "sbuslib.h"
@@ -99,73 +99,73 @@ static struct fb_ops cg14_ops = {
 #define CG14_MCR_PIXMODE_32            3
 
 struct cg14_regs{
-       volatile u8 mcr;        /* Master Control Reg */
-       volatile u8 ppr;        /* Packed Pixel Reg */
-       volatile u8 tms[2];     /* Test Mode Status Regs */
-       volatile u8 msr;        /* Master Status Reg */
-       volatile u8 fsr;        /* Fault Status Reg */
-       volatile u8 rev;        /* Revision & Impl */
-       volatile u8 ccr;        /* Clock Control Reg */
-       volatile u32 tmr;       /* Test Mode Read Back */
-       volatile u8 mod;        /* Monitor Operation Data Reg */
-       volatile u8 acr;        /* Aux Control */
+       u8 mcr; /* Master Control Reg */
+       u8 ppr; /* Packed Pixel Reg */
+       u8 tms[2];      /* Test Mode Status Regs */
+       u8 msr; /* Master Status Reg */
+       u8 fsr; /* Fault Status Reg */
+       u8 rev; /* Revision & Impl */
+       u8 ccr; /* Clock Control Reg */
+       u32 tmr;        /* Test Mode Read Back */
+       u8 mod; /* Monitor Operation Data Reg */
+       u8 acr; /* Aux Control */
        u8 xxx0[6];
-       volatile u16 hct;       /* Hor Counter */
-       volatile u16 vct;       /* Vert Counter */
-       volatile u16 hbs;       /* Hor Blank Start */
-       volatile u16 hbc;       /* Hor Blank Clear */
-       volatile u16 hss;       /* Hor Sync Start */
-       volatile u16 hsc;       /* Hor Sync Clear */
-       volatile u16 csc;       /* Composite Sync Clear */
-       volatile u16 vbs;       /* Vert Blank Start */
-       volatile u16 vbc;       /* Vert Blank Clear */
-       volatile u16 vss;       /* Vert Sync Start */
-       volatile u16 vsc;       /* Vert Sync Clear */
-       volatile u16 xcs;
-       volatile u16 xcc;
-       volatile u16 fsa;       /* Fault Status Address */
-       volatile u16 adr;       /* Address Registers */
+       u16 hct;        /* Hor Counter */
+       u16 vct;        /* Vert Counter */
+       u16 hbs;        /* Hor Blank Start */
+       u16 hbc;        /* Hor Blank Clear */
+       u16 hss;        /* Hor Sync Start */
+       u16 hsc;        /* Hor Sync Clear */
+       u16 csc;        /* Composite Sync Clear */
+       u16 vbs;        /* Vert Blank Start */
+       u16 vbc;        /* Vert Blank Clear */
+       u16 vss;        /* Vert Sync Start */
+       u16 vsc;        /* Vert Sync Clear */
+       u16 xcs;
+       u16 xcc;
+       u16 fsa;        /* Fault Status Address */
+       u16 adr;        /* Address Registers */
        u8 xxx1[0xce];
-       volatile u8 pcg[0x100]; /* Pixel Clock Generator */
-       volatile u32 vbr;       /* Frame Base Row */
-       volatile u32 vmcr;      /* VBC Master Control */
-       volatile u32 vcr;       /* VBC refresh */
-       volatile u32 vca;       /* VBC Config */
+       u8 pcg[0x100]; /* Pixel Clock Generator */
+       u32 vbr;        /* Frame Base Row */
+       u32 vmcr;       /* VBC Master Control */
+       u32 vcr;        /* VBC refresh */
+       u32 vca;        /* VBC Config */
 };
 
 #define CG14_CCR_ENABLE        0x04
 #define CG14_CCR_SELECT 0x02   /* HW/Full screen */
 
 struct cg14_cursor {
-       volatile u32 cpl0[32];  /* Enable plane 0 */
-       volatile u32 cpl1[32];  /* Color selection plane */
-       volatile u8 ccr;        /* Cursor Control Reg */
+       u32 cpl0[32];   /* Enable plane 0 */
+       u32 cpl1[32];  /* Color selection plane */
+       u8 ccr; /* Cursor Control Reg */
        u8 xxx0[3];
-       volatile u16 cursx;     /* Cursor x,y position */
-       volatile u16 cursy;     /* Cursor x,y position */
-       volatile u32 color0;
-       volatile u32 color1;
+       u16 cursx;      /* Cursor x,y position */
+       u16 cursy;      /* Cursor x,y position */
+       u32 color0;
+       u32 color1;
        u32 xxx1[0x1bc];
-       volatile u32 cpl0i[32]; /* Enable plane 0 autoinc */
-       volatile u32 cpl1i[32]; /* Color selection autoinc */
+       u32 cpl0i[32];  /* Enable plane 0 autoinc */
+       u32 cpl1i[32]; /* Color selection autoinc */
 };
 
 struct cg14_dac {
-       volatile u8 addr;       /* Address Register */
+       u8 addr;        /* Address Register */
        u8 xxx0[255];
-       volatile u8 glut;       /* Gamma table */
+       u8 glut;        /* Gamma table */
        u8 xxx1[255];
-       volatile u8 select;     /* Register Select */
+       u8 select;      /* Register Select */
        u8 xxx2[255];
-       volatile u8 mode;       /* Mode Register */
+       u8 mode;        /* Mode Register */
 };
 
 struct cg14_xlut{
-       volatile u8 x_xlut [256];
-       volatile u8 x_xlutd [256];
+       u8 x_xlut [256];
+       u8 x_xlutd [256];
        u8 xxx0[0x600];
-       volatile u8 x_xlut_inc [256];
-       volatile u8 x_xlutd_inc [256];
+       u8 x_xlut_inc [256];
+       u8 x_xlutd_inc [256];
 };
 
 /* Color look up table (clut) */
@@ -204,7 +204,6 @@ struct cg14_par {
 
        int                     mode;
        int                     ramsize;
-       struct sbus_dev         *sdev;
 };
 
 static void __cg14_reset(struct cg14_par *par)
@@ -355,14 +354,9 @@ static int cg14_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
  *  Initialisation
  */
 
-static void cg14_init_fix(struct fb_info *info, int linebytes)
+static void cg14_init_fix(struct fb_info *info, int linebytes, struct device_node *dp)
 {
-       struct cg14_par *par = (struct cg14_par *)info->par;
-       const char *name;
-
-       name = "cgfourteen";
-       if (par->sdev)
-               name = par->sdev->prom_name;
+       const char *name = dp->name;
 
        strlcpy(info->fix.id, name, sizeof(info->fix.id));
 
@@ -456,98 +450,81 @@ static struct sbus_mmap_map __cg14_mmap_map[CG14_MMAP_ENTRIES] __initdata = {
 struct all_info {
        struct fb_info info;
        struct cg14_par par;
-       struct list_head list;
 };
-static LIST_HEAD(cg14_list);
 
-static void cg14_init_one(struct sbus_dev *sdev, int node, int parent_node)
+static void cg14_unmap_regs(struct all_info *all)
 {
-       struct all_info *all;
-       unsigned long phys, rphys;
-       u32 bases[6];
-       int is_8mb, linebytes, i;
-
-       if (!sdev) {
-               if (prom_getproperty(node, "address",
-                                    (char *) &bases[0], sizeof(bases)) <= 0
-                   || !bases[0]) {
-                       printk(KERN_ERR "cg14: Device is not mapped.\n");
-                       return;
-               }
-               if (__get_iospace(bases[0]) != __get_iospace(bases[1])) {
-                       printk(KERN_ERR "cg14: I/O spaces don't match.\n");
-                       return;
-               }
-       }
+       if (all->par.regs)
+               of_iounmap(all->par.regs, sizeof(struct cg14_regs));
+       if (all->par.clut)
+               of_iounmap(all->par.clut, sizeof(struct cg14_clut));
+       if (all->par.cursor)
+               of_iounmap(all->par.cursor, sizeof(struct cg14_cursor));
+       if (all->info.screen_base)
+               of_iounmap(all->info.screen_base, all->par.fbsize);
+}
 
-       all = kmalloc(sizeof(*all), GFP_KERNEL);
-       if (!all) {
-               printk(KERN_ERR "cg14: Cannot allocate memory.\n");
-               return;
-       }
-       memset(all, 0, sizeof(*all));
+static int __devinit cg14_init_one(struct of_device *op)
+{
+       struct device_node *dp = op->node;
+       struct all_info *all;
+       int is_8mb, linebytes, i, err;
 
-       INIT_LIST_HEAD(&all->list);
+       all = kzalloc(sizeof(*all), GFP_KERNEL);
+       if (!all)
+               return -ENOMEM;
 
        spin_lock_init(&all->par.lock);
 
-       sbusfb_fill_var(&all->info.var, node, 8);
+       sbusfb_fill_var(&all->info.var, dp->node, 8);
        all->info.var.red.length = 8;
        all->info.var.green.length = 8;
        all->info.var.blue.length = 8;
 
-       linebytes = prom_getintdefault(node, "linebytes",
-                                      all->info.var.xres);
+       linebytes = of_getintprop_default(dp, "linebytes",
+                                         all->info.var.xres);
        all->par.fbsize = PAGE_ALIGN(linebytes * all->info.var.yres);
 
-       all->par.sdev = sdev;
-       if (sdev) {
-               rphys = sdev->reg_addrs[0].phys_addr;
-               all->par.physbase = phys = sdev->reg_addrs[1].phys_addr;
-               all->par.iospace = sdev->reg_addrs[0].which_io;
-
-               all->par.regs = sbus_ioremap(&sdev->resource[0], 0,
-                                    sizeof(struct cg14_regs),
-                                    "cg14 regs");
-               all->par.clut = sbus_ioremap(&sdev->resource[0], CG14_CLUT1,
-                                    sizeof(struct cg14_clut),
-                                    "cg14 clut");
-               all->par.cursor = sbus_ioremap(&sdev->resource[0], CG14_CURSORREGS,
-                                    sizeof(struct cg14_cursor),
-                                    "cg14 cursor");
-               all->info.screen_base = sbus_ioremap(&sdev->resource[1], 0,
-                                    all->par.fbsize, "cg14 ram");
+       if (!strcmp(dp->parent->name, "sbus") ||
+           !strcmp(dp->parent->name, "sbi")) {
+               all->par.physbase = op->resource[0].start;
+               all->par.iospace = op->resource[0].flags & IORESOURCE_BITS;
        } else {
-               rphys = __get_phys(bases[0]);
-               all->par.physbase = phys = __get_phys(bases[1]);
-               all->par.iospace = __get_iospace(bases[0]);
-               all->par.regs = (struct cg14_regs __iomem *)(unsigned long)bases[0];
-               all->par.clut = (struct cg14_clut __iomem *)((unsigned long)bases[0] +
-                                                    CG14_CLUT1);
-               all->par.cursor =
-                       (struct cg14_cursor __iomem *)((unsigned long)bases[0] +
-                                              CG14_CURSORREGS);
-
-               all->info.screen_base = (char __iomem *)(unsigned long)bases[1];
+               all->par.physbase = op->resource[1].start;
+               all->par.iospace = op->resource[0].flags & IORESOURCE_BITS;
        }
 
-       prom_getproperty(node, "reg", (char *) &bases[0], sizeof(bases));
-       is_8mb = (bases[5] == 0x800000);
+       all->par.regs = of_ioremap(&op->resource[0], 0,
+                                  sizeof(struct cg14_regs), "cg14 regs");
+       all->par.clut = of_ioremap(&op->resource[0], CG14_CLUT1,
+                                  sizeof(struct cg14_clut), "cg14 clut");
+       all->par.cursor = of_ioremap(&op->resource[0], CG14_CURSORREGS,
+                                  sizeof(struct cg14_cursor), "cg14 cursor");
 
-       if (sizeof(all->par.mmap_map) != sizeof(__cg14_mmap_map)) {
-               extern void __cg14_mmap_sized_wrongly(void);
+       all->info.screen_base = of_ioremap(&op->resource[1], 0,
+                                          all->par.fbsize, "cg14 ram");
 
-               __cg14_mmap_sized_wrongly();
-       }
+       if (!all->par.regs || !all->par.clut || !all->par.cursor ||
+           !all->info.screen_base)
+               cg14_unmap_regs(all);
+
+       is_8mb = (((op->resource[1].end - op->resource[1].start) + 1) ==
+                 (8 * 1024 * 1024));
+
+       BUILD_BUG_ON(sizeof(all->par.mmap_map) != sizeof(__cg14_mmap_map));
                
-       memcpy(&all->par.mmap_map, &__cg14_mmap_map, sizeof(all->par.mmap_map));
+       memcpy(&all->par.mmap_map, &__cg14_mmap_map,
+              sizeof(all->par.mmap_map));
+
        for (i = 0; i < CG14_MMAP_ENTRIES; i++) {
                struct sbus_mmap_map *map = &all->par.mmap_map[i];
 
                if (!map->size)
                        break;
                if (map->poff & 0x80000000)
-                       map->poff = (map->poff & 0x7fffffff) + rphys - phys;
+                       map->poff = (map->poff & 0x7fffffff) +
+                               (op->resource[0].start -
+                                op->resource[1].start);
                if (is_8mb &&
                    map->size >= 0x100000 &&
                    map->size <= 0x400000)
@@ -564,84 +541,87 @@ static void cg14_init_one(struct sbus_dev *sdev, int node, int parent_node)
        __cg14_reset(&all->par);
 
        if (fb_alloc_cmap(&all->info.cmap, 256, 0)) {
-               printk(KERN_ERR "cg14: Could not allocate color map.\n");
+               cg14_unmap_regs(all);
                kfree(all);
-               return;
+               return -ENOMEM;
        }
        fb_set_cmap(&all->info.cmap, &all->info);
 
-       cg14_init_fix(&all->info, linebytes);
+       cg14_init_fix(&all->info, linebytes, dp);
 
-       if (register_framebuffer(&all->info) < 0) {
-               printk(KERN_ERR "cg14: Could not register framebuffer.\n");
+       err = register_framebuffer(&all->info);
+       if (err < 0) {
                fb_dealloc_cmap(&all->info.cmap);
+               cg14_unmap_regs(all);
                kfree(all);
-               return;
+               return err;
        }
 
-       list_add(&all->list, &cg14_list);
+       dev_set_drvdata(&op->dev, all);
 
-       printk("cg14: cgfourteen at %lx:%lx, %dMB\n",
-              all->par.iospace, all->par.physbase, all->par.ramsize >> 20);
+       printk("%s: cgfourteen at %lx:%lx, %dMB\n",
+              dp->full_name,
+              all->par.iospace, all->par.physbase,
+              all->par.ramsize >> 20);
 
+       return 0;
 }
 
-int __init cg14_init(void)
+static int __devinit cg14_probe(struct of_device *dev, const struct of_device_id *match)
 {
-       struct sbus_bus *sbus;
-       struct sbus_dev *sdev;
+       struct of_device *op = to_of_device(&dev->dev);
 
-       if (fb_get_options("cg14fb", NULL))
-               return -ENODEV;
+       return cg14_init_one(op);
+}
 
-#ifdef CONFIG_SPARC32
-       {
-               int root, node;
-
-               root = prom_getchild(prom_root_node);
-               root = prom_searchsiblings(root, "obio");
-               if (root) {
-                       node = prom_searchsiblings(prom_getchild(root),
-                                                  "cgfourteen");
-                       if (node)
-                               cg14_init_one(NULL, node, root);
-               }
-       }
-#endif
-       for_all_sbusdev(sdev, sbus) {
-               if (!strcmp(sdev->prom_name, "cgfourteen"))
-                       cg14_init_one(sdev, sdev->prom_node, sbus->prom_node);
-       }
+static int __devexit cg14_remove(struct of_device *dev)
+{
+       struct all_info *all = dev_get_drvdata(&dev->dev);
+
+       unregister_framebuffer(&all->info);
+       fb_dealloc_cmap(&all->info.cmap);
+
+       cg14_unmap_regs(all);
+
+       kfree(all);
+
+       dev_set_drvdata(&dev->dev, NULL);
 
        return 0;
 }
 
-void __exit cg14_exit(void)
-{
-       struct list_head *pos, *tmp;
+static struct of_device_id cg14_match[] = {
+       {
+               .name = "cgfourteen",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(of, cg14_match);
 
-       list_for_each_safe(pos, tmp, &cg14_list) {
-               struct all_info *all = list_entry(pos, typeof(*all), list);
+static struct of_platform_driver cg14_driver = {
+       .name           = "cg14",
+       .match_table    = cg14_match,
+       .probe          = cg14_probe,
+       .remove         = __devexit_p(cg14_remove),
+};
 
-               unregister_framebuffer(&all->info);
-               fb_dealloc_cmap(&all->info.cmap);
-               kfree(all);
-       }
+int __init cg14_init(void)
+{
+       if (fb_get_options("cg14fb", NULL))
+               return -ENODEV;
+
+       return of_register_driver(&cg14_driver, &of_bus_type);
 }
 
-int __init
-cg14_setup(char *arg)
+void __exit cg14_exit(void)
 {
-       /* No cmdline options yet... */
-       return 0;
+       of_unregister_driver(&cg14_driver);
 }
 
 module_init(cg14_init);
-
-#ifdef MODULE
 module_exit(cg14_exit);
-#endif
 
 MODULE_DESCRIPTION("framebuffer driver for CGfourteen chipsets");
-MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
+MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
+MODULE_VERSION("2.0");
 MODULE_LICENSE("GPL");
index 3de6e1b5ab2f4008efd29b32805c9e3bd874dec1..9c8c753ef4541de8710966e9c87480bc407b5faf 100644 (file)
@@ -1,6 +1,6 @@
 /* cg3.c: CGTHREE frame buffer driver
  *
- * Copyright (C) 2003 David S. Miller (davem@redhat.com)
+ * Copyright (C) 2003, 2006 David S. Miller (davem@davemloft.net)
  * Copyright (C) 1996,1998 Jakub Jelinek (jj@ultra.linux.cz)
  * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
  * Copyright (C) 1997 Eddie C. Dost (ecd@skynet.be)
@@ -19,8 +19,9 @@
 #include <linux/mm.h>
 
 #include <asm/io.h>
-#include <asm/sbus.h>
 #include <asm/oplib.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/fbio.h>
 
 #include "sbuslib.h"
@@ -80,30 +81,30 @@ enum cg3_type {
 };
 
 struct bt_regs {
-       volatile u32 addr;
-       volatile u32 color_map;
-       volatile u32 control;
-       volatile u32 cursor;
+       u32 addr;
+       u32 color_map;
+       u32 control;
+       u32 cursor;
 };
 
 struct cg3_regs {
        struct bt_regs  cmap;
-       volatile u8     control;
-       volatile u8     status;
-       volatile u8     cursor_start;
-       volatile u8     cursor_end;
-       volatile u8     h_blank_start;
-       volatile u8     h_blank_end;
-       volatile u8     h_sync_start;
-       volatile u8     h_sync_end;
-       volatile u8     comp_sync_end;
-       volatile u8     v_blank_start_high;
-       volatile u8     v_blank_start_low;
-       volatile u8     v_blank_end;
-       volatile u8     v_sync_start;
-       volatile u8     v_sync_end;
-       volatile u8     xfer_holdoff_start;
-       volatile u8     xfer_holdoff_end;
+       u8      control;
+       u8      status;
+       u8      cursor_start;
+       u8      cursor_end;
+       u8      h_blank_start;
+       u8      h_blank_end;
+       u8      h_sync_start;
+       u8      h_sync_end;
+       u8      comp_sync_end;
+       u8      v_blank_start_high;
+       u8      v_blank_start_low;
+       u8      v_blank_end;
+       u8      v_sync_start;
+       u8      v_sync_end;
+       u8      xfer_holdoff_start;
+       u8      xfer_holdoff_end;
 };
 
 /* Offset of interesting structures in the OBIO space */
@@ -120,9 +121,8 @@ struct cg3_par {
 #define CG3_FLAG_RDI           0x00000002
 
        unsigned long           physbase;
+       unsigned long           which_io;
        unsigned long           fbsize;
-
-       struct sbus_dev         *sdev;
 };
 
 /**
@@ -235,7 +235,7 @@ static int cg3_mmap(struct fb_info *info, struct vm_area_struct *vma)
 
        return sbusfb_mmap_helper(cg3_mmap_map,
                                  par->physbase, par->fbsize,
-                                 par->sdev->reg_addrs[0].which_io,
+                                 par->which_io,
                                  vma);
 }
 
@@ -252,11 +252,9 @@ static int cg3_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
  */
 
 static void
-cg3_init_fix(struct fb_info *info, int linebytes)
+cg3_init_fix(struct fb_info *info, int linebytes, struct device_node *dp)
 {
-       struct cg3_par *par = (struct cg3_par *)info->par;
-
-       strlcpy(info->fix.id, par->sdev->prom_name, sizeof(info->fix.id));
+       strlcpy(info->fix.id, dp->name, sizeof(info->fix.id));
 
        info->fix.type = FB_TYPE_PACKED_PIXELS;
        info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
@@ -267,16 +265,15 @@ cg3_init_fix(struct fb_info *info, int linebytes)
 }
 
 static void cg3_rdi_maybe_fixup_var(struct fb_var_screeninfo *var,
-                                   struct sbus_dev *sdev)
+                                   struct device_node *dp)
 {
-       char buffer[40];
+       char *params;
        char *p;
        int ww, hh;
 
-       *buffer = 0;
-       prom_getstring(sdev->prom_node, "params", buffer, sizeof(buffer));
-       if (*buffer) {
-               ww = simple_strtoul(buffer, &p, 10);
+       params = of_get_property(dp, "params", NULL);
+       if (params) {
+               ww = simple_strtoul(params, &p, 10);
                if (ww && *p == 'x') {
                        hh = simple_strtoul(p + 1, &p, 10);
                        if (hh && *p == '-') {
@@ -348,11 +345,11 @@ static void cg3_do_default_mode(struct cg3_par *par)
                sbus_writeb(p[1], regp);
        }
        for (p = cg3_dacvals; *p; p += 2) {
-               volatile u8 __iomem *regp;
+               u8 __iomem *regp;
 
-               regp = (volatile u8 __iomem *)&par->regs->cmap.addr;
+               regp = (u8 __iomem *)&par->regs->cmap.addr;
                sbus_writeb(p[0], regp);
-               regp = (volatile u8 __iomem *)&par->regs->cmap.control;
+               regp = (u8 __iomem *)&par->regs->cmap.control;
                sbus_writeb(p[1], regp);
        }
 }
@@ -360,129 +357,137 @@ static void cg3_do_default_mode(struct cg3_par *par)
 struct all_info {
        struct fb_info info;
        struct cg3_par par;
-       struct list_head list;
 };
-static LIST_HEAD(cg3_list);
 
-static void cg3_init_one(struct sbus_dev *sdev)
+static int __devinit cg3_init_one(struct of_device *op)
 {
+       struct device_node *dp = op->node;
        struct all_info *all;
-       int linebytes;
-
-       all = kmalloc(sizeof(*all), GFP_KERNEL);
-       if (!all) {
-               printk(KERN_ERR "cg3: Cannot allocate memory.\n");
-               return;
-       }
-       memset(all, 0, sizeof(*all));
+       int linebytes, err;
 
-       INIT_LIST_HEAD(&all->list);
+       all = kzalloc(sizeof(*all), GFP_KERNEL);
+       if (!all)
+               return -ENOMEM;
 
        spin_lock_init(&all->par.lock);
-       all->par.sdev = sdev;
 
-       all->par.physbase = sdev->reg_addrs[0].phys_addr;
+       all->par.physbase = op->resource[0].start;
+       all->par.which_io = op->resource[0].flags & IORESOURCE_BITS;
 
-       sbusfb_fill_var(&all->info.var, sdev->prom_node, 8);
+       sbusfb_fill_var(&all->info.var, dp->node, 8);
        all->info.var.red.length = 8;
        all->info.var.green.length = 8;
        all->info.var.blue.length = 8;
-       if (!strcmp(sdev->prom_name, "cgRDI"))
+       if (!strcmp(dp->name, "cgRDI"))
                all->par.flags |= CG3_FLAG_RDI;
        if (all->par.flags & CG3_FLAG_RDI)
-               cg3_rdi_maybe_fixup_var(&all->info.var, sdev);
+               cg3_rdi_maybe_fixup_var(&all->info.var, dp);
 
-       linebytes = prom_getintdefault(sdev->prom_node, "linebytes",
-                                      all->info.var.xres);
+       linebytes = of_getintprop_default(dp, "linebytes",
+                                         all->info.var.xres);
        all->par.fbsize = PAGE_ALIGN(linebytes * all->info.var.yres);
 
-       all->par.regs = sbus_ioremap(&sdev->resource[0], CG3_REGS_OFFSET,
-                            sizeof(struct cg3_regs), "cg3 regs");
+       all->par.regs = of_ioremap(&op->resource[0], CG3_REGS_OFFSET,
+                                  sizeof(struct cg3_regs), "cg3 regs");
 
        all->info.flags = FBINFO_DEFAULT;
        all->info.fbops = &cg3_ops;
-#ifdef CONFIG_SPARC32
-       all->info.screen_base = (char __iomem *)
-               prom_getintdefault(sdev->prom_node, "address", 0);
-#endif
-       if (!all->info.screen_base)
-               all->info.screen_base =
-                       sbus_ioremap(&sdev->resource[0], CG3_RAM_OFFSET,
-                                    all->par.fbsize, "cg3 ram");
+       all->info.screen_base =
+               of_ioremap(&op->resource[0], CG3_RAM_OFFSET,
+                          all->par.fbsize, "cg3 ram");
        all->info.par = &all->par;
 
        cg3_blank(0, &all->info);
 
-       if (!prom_getbool(sdev->prom_node, "width"))
+       if (!of_find_property(dp, "width", NULL))
                cg3_do_default_mode(&all->par);
 
        if (fb_alloc_cmap(&all->info.cmap, 256, 0)) {
-               printk(KERN_ERR "cg3: Could not allocate color map.\n");
+               of_iounmap(all->par.regs, sizeof(struct cg3_regs));
+               of_iounmap(all->info.screen_base, all->par.fbsize);
                kfree(all);
-               return;
+               return -ENOMEM;
        }
        fb_set_cmap(&all->info.cmap, &all->info);
 
-       cg3_init_fix(&all->info, linebytes);
+       cg3_init_fix(&all->info, linebytes, dp);
 
-       if (register_framebuffer(&all->info) < 0) {
-               printk(KERN_ERR "cg3: Could not register framebuffer.\n");
+       err = register_framebuffer(&all->info);
+       if (err < 0) {
                fb_dealloc_cmap(&all->info.cmap);
+               of_iounmap(all->par.regs, sizeof(struct cg3_regs));
+               of_iounmap(all->info.screen_base, all->par.fbsize);
                kfree(all);
-               return;
+               return err;
        }
 
-       list_add(&all->list, &cg3_list);
+       dev_set_drvdata(&op->dev, all);
+
+       printk("%s: cg3 at %lx:%lx\n",
+              dp->full_name, all->par.which_io, all->par.physbase);
 
-       printk("cg3: %s at %lx:%lx\n",
-              sdev->prom_name,
-              (long) sdev->reg_addrs[0].which_io,
-              (long) sdev->reg_addrs[0].phys_addr);
+       return 0;
 }
 
-int __init cg3_init(void)
+static int __devinit cg3_probe(struct of_device *dev, const struct of_device_id *match)
 {
-       struct sbus_bus *sbus;
-       struct sbus_dev *sdev;
+       struct of_device *op = to_of_device(&dev->dev);
 
-       if (fb_get_options("cg3fb", NULL))
-               return -ENODEV;
+       return cg3_init_one(op);
+}
 
-       for_all_sbusdev(sdev, sbus) {
-               if (!strcmp(sdev->prom_name, "cgthree") ||
-                   !strcmp(sdev->prom_name, "cgRDI"))
-                       cg3_init_one(sdev);
-       }
+static int __devexit cg3_remove(struct of_device *dev)
+{
+       struct all_info *all = dev_get_drvdata(&dev->dev);
+
+       unregister_framebuffer(&all->info);
+       fb_dealloc_cmap(&all->info.cmap);
+
+       of_iounmap(all->par.regs, sizeof(struct cg3_regs));
+       of_iounmap(all->info.screen_base, all->par.fbsize);
+
+       kfree(all);
+
+       dev_set_drvdata(&dev->dev, NULL);
 
        return 0;
 }
 
-void __exit cg3_exit(void)
-{
-       struct list_head *pos, *tmp;
+static struct of_device_id cg3_match[] = {
+       {
+               .name = "cgthree",
+       },
+       {
+               .name = "cgRDI",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(of, cg3_match);
 
-       list_for_each_safe(pos, tmp, &cg3_list) {
-               struct all_info *all = list_entry(pos, typeof(*all), list);
+static struct of_platform_driver cg3_driver = {
+       .name           = "cg3",
+       .match_table    = cg3_match,
+       .probe          = cg3_probe,
+       .remove         = __devexit_p(cg3_remove),
+};
 
-               unregister_framebuffer(&all->info);
-               fb_dealloc_cmap(&all->info.cmap);
-               kfree(all);
-       }
+static int __init cg3_init(void)
+{
+       if (fb_get_options("cg3fb", NULL))
+               return -ENODEV;
+
+       return of_register_driver(&cg3_driver, &of_bus_type);
 }
 
-int __init
-cg3_setup(char *arg)
+static void __exit cg3_exit(void)
 {
-       /* No cmdline options yet... */
-       return 0;
+       of_unregister_driver(&cg3_driver);
 }
 
 module_init(cg3_init);
-
-#ifdef MODULE
 module_exit(cg3_exit);
-#endif
 
 MODULE_DESCRIPTION("framebuffer driver for CGthree chipsets");
-MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
+MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
+MODULE_VERSION("2.0");
 MODULE_LICENSE("GPL");
index 7aab91ead6818ee70d7484aedacc001a6ecd8739..64146be2eeb0c746a65ca96799ff5850a7477794 100644 (file)
@@ -1,6 +1,6 @@
 /* cg6.c: CGSIX (GX, GXplus, TGX) frame buffer driver
  *
- * Copyright (C) 2003 David S. Miller (davem@redhat.com)
+ * Copyright (C) 2003, 2006 David S. Miller (davem@davemloft.net)
  * Copyright (C) 1996,1998 Jakub Jelinek (jj@ultra.linux.cz)
  * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
  * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be)
@@ -19,8 +19,8 @@
 #include <linux/mm.h>
 
 #include <asm/io.h>
-#include <asm/sbus.h>
-#include <asm/oplib.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/fbio.h>
 
 #include "sbuslib.h"
@@ -164,89 +164,89 @@ static struct fb_ops cg6_ops = {
 
 /* The contents are unknown */
 struct cg6_tec {
-       volatile int tec_matrix;
-       volatile int tec_clip;
-       volatile int tec_vdc;
+       int tec_matrix;
+       int tec_clip;
+       int tec_vdc;
 };
 
 struct cg6_thc {
-        uint thc_pad0[512];
-       volatile uint thc_hs;           /* hsync timing */
-       volatile uint thc_hsdvs;
-       volatile uint thc_hd;
-       volatile uint thc_vs;           /* vsync timing */
-       volatile uint thc_vd;
-       volatile uint thc_refresh;
-       volatile uint thc_misc;
-       uint thc_pad1[56];
-       volatile uint thc_cursxy;       /* cursor x,y position (16 bits each) */
-       volatile uint thc_cursmask[32]; /* cursor mask bits */
-       volatile uint thc_cursbits[32]; /* what to show where mask enabled */
+        u32 thc_pad0[512];
+       u32 thc_hs;             /* hsync timing */
+       u32 thc_hsdvs;
+       u32 thc_hd;
+       u32 thc_vs;             /* vsync timing */
+       u32 thc_vd;
+       u32 thc_refresh;
+       u32 thc_misc;
+       u32 thc_pad1[56];
+       u32 thc_cursxy; /* cursor x,y position (16 bits each) */
+       u32 thc_cursmask[32];   /* cursor mask bits */
+       u32 thc_cursbits[32];   /* what to show where mask enabled */
 };
 
 struct cg6_fbc {
-       u32             xxx0[1];
-       volatile u32    mode;
-       volatile u32    clip;
-       u32             xxx1[1];            
-       volatile u32    s;
-       volatile u32    draw;
-       volatile u32    blit;
-       volatile u32    font;
-       u32             xxx2[24];
-       volatile u32    x0, y0, z0, color0;
-       volatile u32    x1, y1, z1, color1;
-       volatile u32    x2, y2, z2, color2;
-       volatile u32    x3, y3, z3, color3;
-       volatile u32    offx, offy;
-       u32             xxx3[2];
-       volatile u32    incx, incy;
-       u32             xxx4[2];
-       volatile u32    clipminx, clipminy;
-       u32             xxx5[2];
-       volatile u32    clipmaxx, clipmaxy;
-       u32             xxx6[2];
-       volatile u32    fg;
-       volatile u32    bg;
-       volatile u32    alu;
-       volatile u32    pm;
-       volatile u32    pixelm;
-       u32             xxx7[2];
-       volatile u32    patalign;
-       volatile u32    pattern[8];
-       u32             xxx8[432];
-       volatile u32    apointx, apointy, apointz;
-       u32             xxx9[1];
-       volatile u32    rpointx, rpointy, rpointz;
-       u32             xxx10[5];
-       volatile u32    pointr, pointg, pointb, pointa;
-       volatile u32    alinex, aliney, alinez;
-       u32             xxx11[1];
-       volatile u32    rlinex, rliney, rlinez;
-       u32             xxx12[5];
-       volatile u32    liner, lineg, lineb, linea;
-       volatile u32    atrix, atriy, atriz;
-       u32             xxx13[1];
-       volatile u32    rtrix, rtriy, rtriz;
-       u32             xxx14[5];
-       volatile u32    trir, trig, trib, tria;
-       volatile u32    aquadx, aquady, aquadz;
-       u32             xxx15[1];
-       volatile u32    rquadx, rquady, rquadz;
-       u32             xxx16[5];
-       volatile u32    quadr, quadg, quadb, quada;
-       volatile u32    arectx, arecty, arectz;
-       u32             xxx17[1];
-       volatile u32    rrectx, rrecty, rrectz;
-       u32             xxx18[5];
-       volatile u32    rectr, rectg, rectb, recta;
+       u32     xxx0[1];
+       u32     mode;
+       u32     clip;
+       u32     xxx1[1];            
+       u32     s;
+       u32     draw;
+       u32     blit;
+       u32     font;
+       u32     xxx2[24];
+       u32     x0, y0, z0, color0;
+       u32     x1, y1, z1, color1;
+       u32     x2, y2, z2, color2;
+       u32     x3, y3, z3, color3;
+       u32     offx, offy;
+       u32     xxx3[2];
+       u32     incx, incy;
+       u32     xxx4[2];
+       u32     clipminx, clipminy;
+       u32     xxx5[2];
+       u32     clipmaxx, clipmaxy;
+       u32     xxx6[2];
+       u32     fg;
+       u32     bg;
+       u32     alu;
+       u32     pm;
+       u32     pixelm;
+       u32     xxx7[2];
+       u32     patalign;
+       u32     pattern[8];
+       u32     xxx8[432];
+       u32     apointx, apointy, apointz;
+       u32     xxx9[1];
+       u32     rpointx, rpointy, rpointz;
+       u32     xxx10[5];
+       u32     pointr, pointg, pointb, pointa;
+       u32     alinex, aliney, alinez;
+       u32     xxx11[1];
+       u32     rlinex, rliney, rlinez;
+       u32     xxx12[5];
+       u32     liner, lineg, lineb, linea;
+       u32     atrix, atriy, atriz;
+       u32     xxx13[1];
+       u32     rtrix, rtriy, rtriz;
+       u32     xxx14[5];
+       u32     trir, trig, trib, tria;
+       u32     aquadx, aquady, aquadz;
+       u32     xxx15[1];
+       u32     rquadx, rquady, rquadz;
+       u32     xxx16[5];
+       u32     quadr, quadg, quadb, quada;
+       u32     arectx, arecty, arectz;
+       u32     xxx17[1];
+       u32     rrectx, rrecty, rrectz;
+       u32     xxx18[5];
+       u32     rectr, rectg, rectb, recta;
 };
 
 struct bt_regs {
-       volatile u32 addr;
-       volatile u32 color_map;
-       volatile u32 control;
-       volatile u32 cursor;
+       u32 addr;
+       u32 color_map;
+       u32 control;
+       u32 cursor;
 };
 
 struct cg6_par {
@@ -255,15 +255,14 @@ struct cg6_par {
        struct cg6_fbc          __iomem *fbc;
        struct cg6_thc          __iomem *thc;
        struct cg6_tec          __iomem *tec;
-       volatile u32            __iomem *fhc;
+       u32                     __iomem *fhc;
 
        u32                     flags;
 #define CG6_FLAG_BLANKED       0x00000001
 
        unsigned long           physbase;
+       unsigned long           which_io;
        unsigned long           fbsize;
-
-       struct sbus_dev         *sdev;
 };
 
 static int cg6_sync(struct fb_info *info)
@@ -529,8 +528,7 @@ static int cg6_mmap(struct fb_info *info, struct vm_area_struct *vma)
 
        return sbusfb_mmap_helper(cg6_mmap_map,
                                  par->physbase, par->fbsize,
-                                 par->sdev->reg_addrs[0].which_io,
-                                 vma);
+                                 par->which_io, vma);
 }
 
 static int cg6_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
@@ -658,62 +656,75 @@ static void cg6_chip_init(struct fb_info *info)
 struct all_info {
        struct fb_info info;
        struct cg6_par par;
-       struct list_head list;
 };
-static LIST_HEAD(cg6_list);
 
-static void cg6_init_one(struct sbus_dev *sdev)
+static void cg6_unmap_regs(struct all_info *all)
 {
-       struct all_info *all;
-       int linebytes;
+       if (all->par.fbc)
+               of_iounmap(all->par.fbc, 4096);
+       if (all->par.tec)
+               of_iounmap(all->par.tec, sizeof(struct cg6_tec));
+       if (all->par.thc)
+               of_iounmap(all->par.thc, sizeof(struct cg6_thc));
+       if (all->par.bt)
+               of_iounmap(all->par.bt, sizeof(struct bt_regs));
+       if (all->par.fhc)
+               of_iounmap(all->par.fhc, sizeof(u32));
+
+       if (all->info.screen_base)
+               of_iounmap(all->info.screen_base, all->par.fbsize);
+}
 
-       all = kmalloc(sizeof(*all), GFP_KERNEL);
-       if (!all) {
-               printk(KERN_ERR "cg6: Cannot allocate memory.\n");
-               return;
-       }
-       memset(all, 0, sizeof(*all));
+static int __devinit cg6_init_one(struct of_device *op)
+{
+       struct device_node *dp = op->node;
+       struct all_info *all;
+       int linebytes, err;
 
-       INIT_LIST_HEAD(&all->list);
+       all = kzalloc(sizeof(*all), GFP_KERNEL);
+       if (!all)
+               return -ENOMEM;
 
        spin_lock_init(&all->par.lock);
-       all->par.sdev = sdev;
 
-       all->par.physbase = sdev->reg_addrs[0].phys_addr;
+       all->par.physbase = op->resource[0].start;
+       all->par.which_io = op->resource[0].flags & IORESOURCE_BITS;
 
-       sbusfb_fill_var(&all->info.var, sdev->prom_node, 8);
+       sbusfb_fill_var(&all->info.var, dp->node, 8);
        all->info.var.red.length = 8;
        all->info.var.green.length = 8;
        all->info.var.blue.length = 8;
 
-       linebytes = prom_getintdefault(sdev->prom_node, "linebytes",
-                                      all->info.var.xres);
+       linebytes = of_getintprop_default(dp, "linebytes",
+                                         all->info.var.xres);
        all->par.fbsize = PAGE_ALIGN(linebytes * all->info.var.yres);
-       if (prom_getbool(sdev->prom_node, "dblbuf"))
+       if (of_find_property(dp, "dblbuf", NULL))
                all->par.fbsize *= 4;
 
-       all->par.fbc = sbus_ioremap(&sdev->resource[0], CG6_FBC_OFFSET,
-                            4096, "cgsix fbc");
-       all->par.tec = sbus_ioremap(&sdev->resource[0], CG6_TEC_OFFSET,
-                            sizeof(struct cg6_tec), "cgsix tec");
-       all->par.thc = sbus_ioremap(&sdev->resource[0], CG6_THC_OFFSET,
-                            sizeof(struct cg6_thc), "cgsix thc");
-       all->par.bt = sbus_ioremap(&sdev->resource[0], CG6_BROOKTREE_OFFSET,
-                            sizeof(struct bt_regs), "cgsix dac");
-       all->par.fhc = sbus_ioremap(&sdev->resource[0], CG6_FHC_OFFSET,
-                            sizeof(u32), "cgsix fhc");
+       all->par.fbc = of_ioremap(&op->resource[0], CG6_FBC_OFFSET,
+                                 4096, "cgsix fbc");
+       all->par.tec = of_ioremap(&op->resource[0], CG6_TEC_OFFSET,
+                                 sizeof(struct cg6_tec), "cgsix tec");
+       all->par.thc = of_ioremap(&op->resource[0], CG6_THC_OFFSET,
+                                 sizeof(struct cg6_thc), "cgsix thc");
+       all->par.bt = of_ioremap(&op->resource[0], CG6_BROOKTREE_OFFSET,
+                                sizeof(struct bt_regs), "cgsix dac");
+       all->par.fhc = of_ioremap(&op->resource[0], CG6_FHC_OFFSET,
+                                 sizeof(u32), "cgsix fhc");
 
        all->info.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_IMAGEBLIT |
                           FBINFO_HWACCEL_COPYAREA | FBINFO_HWACCEL_FILLRECT;
        all->info.fbops = &cg6_ops;
-#ifdef CONFIG_SPARC32
-       all->info.screen_base = (char __iomem *)
-               prom_getintdefault(sdev->prom_node, "address", 0);
-#endif
-       if (!all->info.screen_base)
-               all->info.screen_base = 
-                       sbus_ioremap(&sdev->resource[0], CG6_RAM_OFFSET,
-                                    all->par.fbsize, "cgsix ram");
+
+       all->info.screen_base =  of_ioremap(&op->resource[0], CG6_RAM_OFFSET,
+                                           all->par.fbsize, "cgsix ram");
+       if (!all->par.fbc || !all->par.tec || !all->par.thc ||
+           !all->par.bt || !all->par.fhc || !all->info.screen_base) {
+               cg6_unmap_regs(all);
+               kfree(all);
+               return -ENOMEM;
+       }
+
        all->info.par = &all->par;
 
        all->info.var.accel_flags = FB_ACCELF_TEXT;
@@ -723,72 +734,90 @@ static void cg6_init_one(struct sbus_dev *sdev)
        cg6_blank(0, &all->info);
 
        if (fb_alloc_cmap(&all->info.cmap, 256, 0)) {
-               printk(KERN_ERR "cg6: Could not allocate color map.\n");
+               cg6_unmap_regs(all);
                kfree(all);
-               return;
+               return -ENOMEM;
        }
 
        fb_set_cmap(&all->info.cmap, &all->info);
        cg6_init_fix(&all->info, linebytes);
 
-       if (register_framebuffer(&all->info) < 0) {
-               printk(KERN_ERR "cg6: Could not register framebuffer.\n");
+       err = register_framebuffer(&all->info);
+       if (err < 0) {
+               cg6_unmap_regs(all);
                fb_dealloc_cmap(&all->info.cmap);
                kfree(all);
-               return;
+               return err;
        }
 
-       list_add(&all->list, &cg6_list);
+       dev_set_drvdata(&op->dev, all);
 
-       printk("cg6: CGsix [%s] at %lx:%lx\n",
+       printk("%s: CGsix [%s] at %lx:%lx\n",
+              dp->full_name,
               all->info.fix.id,
-              (long) sdev->reg_addrs[0].which_io,
-              (long) sdev->reg_addrs[0].phys_addr);
+              all->par.which_io, all->par.physbase);
+
+       return 0;
 }
 
-int __init cg6_init(void)
+static int __devinit cg6_probe(struct of_device *dev, const struct of_device_id *match)
 {
-       struct sbus_bus *sbus;
-       struct sbus_dev *sdev;
+       struct of_device *op = to_of_device(&dev->dev);
 
-       if (fb_get_options("cg6fb", NULL))
-               return -ENODEV;
+       return cg6_init_one(op);
+}
 
-       for_all_sbusdev(sdev, sbus) {
-               if (!strcmp(sdev->prom_name, "cgsix") ||
-                   !strcmp(sdev->prom_name, "cgthree+"))
-                       cg6_init_one(sdev);
-       }
+static int __devexit cg6_remove(struct of_device *dev)
+{
+       struct all_info *all = dev_get_drvdata(&dev->dev);
+
+       unregister_framebuffer(&all->info);
+       fb_dealloc_cmap(&all->info.cmap);
+
+       cg6_unmap_regs(all);
+
+       kfree(all);
+
+       dev_set_drvdata(&dev->dev, NULL);
 
        return 0;
 }
 
-void __exit cg6_exit(void)
-{
-       struct list_head *pos, *tmp;
+static struct of_device_id cg6_match[] = {
+       {
+               .name = "cgsix",
+       },
+       {
+               .name = "cgthree+",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(of, cg6_match);
 
-       list_for_each_safe(pos, tmp, &cg6_list) {
-               struct all_info *all = list_entry(pos, typeof(*all), list);
+static struct of_platform_driver cg6_driver = {
+       .name           = "cg6",
+       .match_table    = cg6_match,
+       .probe          = cg6_probe,
+       .remove         = __devexit_p(cg6_remove),
+};
 
-               unregister_framebuffer(&all->info);
-               fb_dealloc_cmap(&all->info.cmap);
-               kfree(all);
-       }
+static int __init cg6_init(void)
+{
+       if (fb_get_options("cg6fb", NULL))
+               return -ENODEV;
+
+       return of_register_driver(&cg6_driver, &of_bus_type);
 }
 
-int __init
-cg6_setup(char *arg)
+static void __exit cg6_exit(void)
 {
-       /* No cmdline options yet... */
-       return 0;
+       of_unregister_driver(&cg6_driver);
 }
 
 module_init(cg6_init);
-
-#ifdef MODULE
 module_exit(cg6_exit);
-#endif
 
 MODULE_DESCRIPTION("framebuffer driver for CGsix chipsets");
-MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
+MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
+MODULE_VERSION("2.0");
 MODULE_LICENSE("GPL");
index d76bbfac92ccf15e3e9a8141547b89c3fa8dbb13..0e465c80ef241f261e7948425eca67c82d1a60a4 100644 (file)
@@ -14,7 +14,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index dda240eb73609c5f93a0efa7895548d5f47603cf..7355da09c721bc8fa7ad1fee66f51d4356abe7c3 100644 (file)
@@ -36,7 +36,6 @@
 
 #define CIRRUSFB_VERSION "2.0-pre2"
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index eea422eb1ab56b8bf83bcae1083e51066beeca98..308850df16fea8bafaa7c610cf954f87fc7cd866 100644 (file)
@@ -10,7 +10,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/fb.h>
index 1ecda91e5a9ce254784ced7b7c2f5340c0c6eb6e..878707a0439824488cbdd7ae5d81b214e6dd2129 100644 (file)
@@ -22,7 +22,6 @@
 #define DUMMY_ROWS     ORIG_VIDEO_LINES
 #elif defined(__hppa__)
 /* set by Kconfig. Use 80x25 for 640x480 and 160x64 for 1280x1024 */
-#include <linux/config.h>
 #define DUMMY_COLUMNS  CONFIG_DUMMY_CONSOLE_COLUMNS
 #define DUMMY_ROWS     CONFIG_DUMMY_CONSOLE_ROWS
 #else
index 5dc4083552d844b9b4618d7b599599e7a63bed80..94e9f7069bef085cfa37707e0875b63ffe161801 100644 (file)
@@ -58,7 +58,6 @@
 
 #undef FBCONDEBUG
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/sched.h>
index 3487a636370af24199b0db23f015ce38f0418ee3..f244ad066d688852af1826a8f3b0aabc550c0b6a 100644 (file)
@@ -11,7 +11,6 @@
 #ifndef _VIDEO_FBCON_H
 #define _VIDEO_FBCON_H
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/vt_buffer.h>
 #include <linux/vt_kern.h>
index 990289a69b785163ac95b3dfb28dde61e03d3b0b..4481c80b8b2a12b533b206cda6e19775ea6bbe1b 100644 (file)
@@ -8,7 +8,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/fb.h>
index d44c5fa515fb3e9156d93d0e057c17d01d238e7d..7f92c06afea7a7b749e9ce8e7dba20b691f8ac43 100644 (file)
@@ -8,7 +8,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/fb.h>
index 2dc091fbd5c9c0d29066817b1c0c4ae436ef2178..00884e013f0f2713591bad338b978ac37713b5cf 100644 (file)
@@ -8,7 +8,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/fb.h>
index f56ed068a5bc753f3b54a52da1f8941ad60e0a34..ab91005e64dc67d07688dc24a175b2fa68d45f83 100644 (file)
@@ -8,7 +8,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/fb.h>
index 2d2e39632e2d72032d402cc124b0baf22e8f2af3..40f3d4eeb1980256aafd9bb506c2b8d90b51de6b 100644 (file)
@@ -1,6 +1,5 @@
 /* Acorn-like font definition, with PC graphics characters */
 
-#include <linux/config.h>
 #include <linux/font.h>
 
 static const unsigned char acorndata_8x8[] = {
index 0cc1bfda76a684c22584108526201531c34507e1..c960728b7e82dd2fe6439f2a7364cabdcede9c43 100644 (file)
@@ -12,7 +12,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index d6e6ad537f9f73e8a05c5a5ff698bc08f0547161..5cd5e114d1e67cb9e1f4be2fe9302e6f8ae8d70a 100644 (file)
@@ -5,7 +5,6 @@
  * Copyright (C) 1998  Jakub Jelinek  (jj@ultra.linux.cz)
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 74ac2acaf72c820b60ca65f6d4e46ed7f67c7fe6..88e7038eab889f68eedc0ace5911cac131e3ec93 100644 (file)
@@ -13,7 +13,6 @@
  * 
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 153352ca9461c030515c755e8867f465cf0fff1a..d981fe4d86c6b18dc5396dc99a032b5f02ca455d 100644 (file)
@@ -8,7 +8,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/fb.h>
index 01401cd63ac061279a382f9884cb86424f2d0cd7..05735ff4e9c5205d311c7cf39e20ff62dcececc9 100644 (file)
@@ -33,7 +33,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/sched.h>
index 655301a8671c139f4ead17f56b05ad89a3a26d03..acdd6a103dbb49d97c881274c0314e691382f1e0 100644 (file)
@@ -31,7 +31,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 55a3514157ed743e09035bdf9a866d8f7e942deb..2e2924957d8f81a00d335957ada78df74e35eff4 100644 (file)
@@ -36,7 +36,6 @@
  * (which, incidentally, is about the same saving as a 2.5in hard disk
  * entering standby mode.)
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index bd7e1c040781d597b29583b0cc3f781f91cf2355..de4fc43e51c1a2b1e954e9bd03b519fed2568d70 100644 (file)
@@ -9,7 +9,6 @@
  *
  * Integraphics Cyber2000 frame buffer device
  */
-#include <linux/config.h>
 
 /*
  * Internal CyberPro sizes and offsets.
index 0ae0a97b0fed05c5ea8129b018d2179eecac87bc..94a66c2d2cf528a7f9f31c1c209ef3841f6433a1 100644 (file)
@@ -14,7 +14,6 @@
 
 #define CYBLAFB_PIXMAPSIZE 8192
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/fb.h>
index a171daab0ad0b7467f97c5fde87fefb1ec1f8569..33034f81114d48e64b860528db1cc5c70ab269e0 100644 (file)
@@ -11,7 +11,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/compat.h>
index 7633e41adda158a38688c056057fd15c91bf974d..2a0e8210d398e6c964aa69028161cd3af471a44d 100644 (file)
@@ -1,6 +1,6 @@
 /* ffb.c: Creator/Elite3D frame buffer driver
  *
- * Copyright (C) 2003 David S. Miller (davem@redhat.com)
+ * Copyright (C) 2003, 2006 David S. Miller (davem@davemloft.net)
  * Copyright (C) 1997,1998,1999 Jakub Jelinek (jj@ultra.linux.cz)
  *
  * Driver layout based loosely on tgafb.c, see that file for credits.
@@ -19,7 +19,8 @@
 
 #include <asm/io.h>
 #include <asm/upa.h>
-#include <asm/oplib.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/fbio.h>
 
 #include "sbuslib.h"
@@ -184,161 +185,161 @@ static struct fb_ops ffb_ops = {
 
 struct ffb_fbc {
        /* Next vertex registers */
-       u32             xxx1[3];
-       volatile u32    alpha;
-       volatile u32    red;
-       volatile u32    green;
-       volatile u32    blue;
-       volatile u32    depth;
-       volatile u32    y;
-       volatile u32    x;
-       u32             xxx2[2];
-       volatile u32    ryf;
-       volatile u32    rxf;
-       u32             xxx3[2];
+       u32     xxx1[3];
+       u32     alpha;
+       u32     red;
+       u32     green;
+       u32     blue;
+       u32     depth;
+       u32     y;
+       u32     x;
+       u32     xxx2[2];
+       u32     ryf;
+       u32     rxf;
+       u32     xxx3[2];
        
-       volatile u32    dmyf;
-       volatile u32    dmxf;
-       u32             xxx4[2];
-       volatile u32    ebyi;
-       volatile u32    ebxi;
-       u32             xxx5[2];
-       volatile u32    by;
-       volatile u32    bx;
-       u32             dy;
-       u32             dx;
-       volatile u32    bh;
-       volatile u32    bw;
-       u32             xxx6[2];
+       u32     dmyf;
+       u32     dmxf;
+       u32     xxx4[2];
+       u32     ebyi;
+       u32     ebxi;
+       u32     xxx5[2];
+       u32     by;
+       u32     bx;
+       u32     dy;
+       u32     dx;
+       u32     bh;
+       u32     bw;
+       u32     xxx6[2];
        
-       u32             xxx7[32];
+       u32     xxx7[32];
        
        /* Setup unit vertex state register */
-       volatile u32    suvtx;
-       u32             xxx8[63];
+       u32     suvtx;
+       u32     xxx8[63];
        
        /* Control registers */
-       volatile u32    ppc;
-       volatile u32    wid;
-       volatile u32    fg;
-       volatile u32    bg;
-       volatile u32    consty;
-       volatile u32    constz;
-       volatile u32    xclip;
-       volatile u32    dcss;
-       volatile u32    vclipmin;
-       volatile u32    vclipmax;
-       volatile u32    vclipzmin;
-       volatile u32    vclipzmax;
-       volatile u32    dcsf;
-       volatile u32    dcsb;
-       volatile u32    dczf;
-       volatile u32    dczb;
+       u32     ppc;
+       u32     wid;
+       u32     fg;
+       u32     bg;
+       u32     consty;
+       u32     constz;
+       u32     xclip;
+       u32     dcss;
+       u32     vclipmin;
+       u32     vclipmax;
+       u32     vclipzmin;
+       u32     vclipzmax;
+       u32     dcsf;
+       u32     dcsb;
+       u32     dczf;
+       u32     dczb;
        
-       u32             xxx9;
-       volatile u32    blendc;
-       volatile u32    blendc1;
-       volatile u32    blendc2;
-       volatile u32    fbramitc;
-       volatile u32    fbc;
-       volatile u32    rop;
-       volatile u32    cmp;
-       volatile u32    matchab;
-       volatile u32    matchc;
-       volatile u32    magnab;
-       volatile u32    magnc;
-       volatile u32    fbcfg0;
-       volatile u32    fbcfg1;
-       volatile u32    fbcfg2;
-       volatile u32    fbcfg3;
+       u32     xxx9;
+       u32     blendc;
+       u32     blendc1;
+       u32     blendc2;
+       u32     fbramitc;
+       u32     fbc;
+       u32     rop;
+       u32     cmp;
+       u32     matchab;
+       u32     matchc;
+       u32     magnab;
+       u32     magnc;
+       u32     fbcfg0;
+       u32     fbcfg1;
+       u32     fbcfg2;
+       u32     fbcfg3;
        
-       u32             ppcfg;
-       volatile u32    pick;
-       volatile u32    fillmode;
-       volatile u32    fbramwac;
-       volatile u32    pmask;
-       volatile u32    xpmask;
-       volatile u32    ypmask;
-       volatile u32    zpmask;
-       volatile u32    clip0min;
-       volatile u32    clip0max;
-       volatile u32    clip1min;
-       volatile u32    clip1max;
-       volatile u32    clip2min;
-       volatile u32    clip2max;
-       volatile u32    clip3min;
-       volatile u32    clip3max;
+       u32     ppcfg;
+       u32     pick;
+       u32     fillmode;
+       u32     fbramwac;
+       u32     pmask;
+       u32     xpmask;
+       u32     ypmask;
+       u32     zpmask;
+       u32     clip0min;
+       u32     clip0max;
+       u32     clip1min;
+       u32     clip1max;
+       u32     clip2min;
+       u32     clip2max;
+       u32     clip3min;
+       u32     clip3max;
        
        /* New 3dRAM III support regs */
-       volatile u32    rawblend2;
-       volatile u32    rawpreblend;
-       volatile u32    rawstencil;
-       volatile u32    rawstencilctl;
-       volatile u32    threedram1;
-       volatile u32    threedram2;
-       volatile u32    passin;
-       volatile u32    rawclrdepth;
-       volatile u32    rawpmask;
-       volatile u32    rawcsrc;
-       volatile u32    rawmatch;
-       volatile u32    rawmagn;
-       volatile u32    rawropblend;
-       volatile u32    rawcmp;
-       volatile u32    rawwac;
-       volatile u32    fbramid;
+       u32     rawblend2;
+       u32     rawpreblend;
+       u32     rawstencil;
+       u32     rawstencilctl;
+       u32     threedram1;
+       u32     threedram2;
+       u32     passin;
+       u32     rawclrdepth;
+       u32     rawpmask;
+       u32     rawcsrc;
+       u32     rawmatch;
+       u32     rawmagn;
+       u32     rawropblend;
+       u32     rawcmp;
+       u32     rawwac;
+       u32     fbramid;
        
-       volatile u32    drawop;
-       u32             xxx10[2];
-       volatile u32    fontlpat;
-       u32             xxx11;
-       volatile u32    fontxy;
-       volatile u32    fontw;
-       volatile u32    fontinc;
-       volatile u32    font;
-       u32             xxx12[3];
-       volatile u32    blend2;
-       volatile u32    preblend;
-       volatile u32    stencil;
-       volatile u32    stencilctl;
-
-       u32             xxx13[4];       
-       volatile u32    dcss1;
-       volatile u32    dcss2;
-       volatile u32    dcss3;
-       volatile u32    widpmask;
-       volatile u32    dcs2;
-       volatile u32    dcs3;
-       volatile u32    dcs4;
-       u32             xxx14;
-       volatile u32    dcd2;
-       volatile u32    dcd3;
-       volatile u32    dcd4;
-       u32             xxx15;
+       u32     drawop;
+       u32     xxx10[2];
+       u32     fontlpat;
+       u32     xxx11;
+       u32     fontxy;
+       u32     fontw;
+       u32     fontinc;
+       u32     font;
+       u32     xxx12[3];
+       u32     blend2;
+       u32     preblend;
+       u32     stencil;
+       u32     stencilctl;
+
+       u32     xxx13[4];       
+       u32     dcss1;
+       u32     dcss2;
+       u32     dcss3;
+       u32     widpmask;
+       u32     dcs2;
+       u32     dcs3;
+       u32     dcs4;
+       u32     xxx14;
+       u32     dcd2;
+       u32     dcd3;
+       u32     dcd4;
+       u32     xxx15;
        
-       volatile u32    pattern[32];
+       u32     pattern[32];
        
-       u32             xxx16[256];
+       u32     xxx16[256];
        
-       volatile u32    devid;
-       u32             xxx17[63];
+       u32     devid;
+       u32     xxx17[63];
        
-       volatile u32    ucsr;
-       u32             xxx18[31];
+       u32     ucsr;
+       u32     xxx18[31];
        
-       volatile u32    mer;
+       u32     mer;
 };
 
 struct ffb_dac {
-       volatile u32    type;
-       volatile u32    value;
-       volatile u32    type2;
-       volatile u32    value2;
+       u32     type;
+       u32     value;
+       u32     type2;
+       u32     value2;
 };
 
 struct ffb_par {
        spinlock_t              lock;
-       struct ffb_fbc          *fbc;
-       struct ffb_dac          *dac;
+       struct ffb_fbc __iomem  *fbc;
+       struct ffb_dac __iomem  *dac;
 
        u32                     flags;
 #define FFB_FLAG_AFB           0x00000001
@@ -353,16 +354,13 @@ struct ffb_par {
        unsigned long           physbase;
        unsigned long           fbsize;
 
-       char                    name[64];
-       int                     prom_node;
-       int                     prom_parent_node;
        int                     dac_rev;
        int                     board_type;
 };
 
 static void FFBFifo(struct ffb_par *par, int n)
 {
-       struct ffb_fbc *fbc;
+       struct ffb_fbc __iomem *fbc;
        int cache = par->fifo_cache;
 
        if (cache - n < 0) {
@@ -375,7 +373,7 @@ static void FFBFifo(struct ffb_par *par, int n)
 
 static void FFBWait(struct ffb_par *par)
 {
-       struct ffb_fbc *fbc;
+       struct ffb_fbc __iomem *fbc;
        int limit = 10000;
 
        fbc = par->fbc;
@@ -408,8 +406,8 @@ static __inline__ void ffb_rop(struct ffb_par *par, u32 rop)
 
 static void ffb_switch_from_graph(struct ffb_par *par)
 {
-       struct ffb_fbc *fbc = par->fbc;
-       struct ffb_dac *dac = par->dac;
+       struct ffb_fbc __iomem *fbc = par->fbc;
+       struct ffb_dac __iomem *dac = par->dac;
        unsigned long flags;
 
        spin_lock_irqsave(&par->lock, flags);
@@ -462,7 +460,7 @@ static int ffb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
 static void ffb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
 {
        struct ffb_par *par = (struct ffb_par *) info->par;
-       struct ffb_fbc *fbc = par->fbc;
+       struct ffb_fbc __iomem *fbc = par->fbc;
        unsigned long flags;
        u32 fg;
 
@@ -505,7 +503,7 @@ static void
 ffb_copyarea(struct fb_info *info, const struct fb_copyarea *area) 
 {
        struct ffb_par *par = (struct ffb_par *) info->par;
-       struct ffb_fbc *fbc = par->fbc;
+       struct ffb_fbc __iomem *fbc = par->fbc;
        unsigned long flags;
 
        if (area->dx != area->sx ||
@@ -541,7 +539,7 @@ ffb_copyarea(struct fb_info *info, const struct fb_copyarea *area)
 static void ffb_imageblit(struct fb_info *info, const struct fb_image *image)
 {
        struct ffb_par *par = (struct ffb_par *) info->par;
-       struct ffb_fbc *fbc = par->fbc;
+       struct ffb_fbc __iomem *fbc = par->fbc;
        const u8 *data = image->data;
        unsigned long flags;
        u32 fg, bg, xy;
@@ -664,7 +662,7 @@ static int
 ffb_blank(int blank, struct fb_info *info)
 {
        struct ffb_par *par = (struct ffb_par *) info->par;
-       struct ffb_dac *dac = par->dac;
+       struct ffb_dac __iomem *dac = par->dac;
        unsigned long flags;
        u32 tmp;
 
@@ -883,78 +881,42 @@ ffb_init_fix(struct fb_info *info)
        info->fix.accel = FB_ACCEL_SUN_CREATOR;
 }
 
-static int ffb_apply_upa_parent_ranges(int parent,
-                                      struct linux_prom64_registers *regs)
-{
-       struct linux_prom64_ranges ranges[PROMREG_MAX];
-       char name[128];
-       int len, i;
-
-       prom_getproperty(parent, "name", name, sizeof(name));
-       if (strcmp(name, "upa") != 0)
-               return 0;
-
-       len = prom_getproperty(parent, "ranges", (void *) ranges, sizeof(ranges));
-       if (len <= 0)
-               return 1;
-
-       len /= sizeof(struct linux_prom64_ranges);
-       for (i = 0; i < len; i++) {
-               struct linux_prom64_ranges *rng = &ranges[i];
-               u64 phys_addr = regs->phys_addr;
-
-               if (phys_addr >= rng->ot_child_base &&
-                   phys_addr < (rng->ot_child_base + rng->or_size)) {
-                       regs->phys_addr -= rng->ot_child_base;
-                       regs->phys_addr += rng->ot_parent_base;
-                       return 0;
-               }
-       }
-
-       return 1;
-}
-
 struct all_info {
        struct fb_info info;
        struct ffb_par par;
        u32 pseudo_palette[256];
-       struct list_head list;
 };
-static LIST_HEAD(ffb_list);
 
-static void ffb_init_one(int node, int parent)
+static int ffb_init_one(struct of_device *op)
 {
-       struct linux_prom64_registers regs[2*PROMREG_MAX];
-       struct ffb_fbc *fbc;
-       struct ffb_dac *dac;
+       struct device_node *dp = op->node;
+       struct ffb_fbc __iomem *fbc;
+       struct ffb_dac __iomem *dac;
        struct all_info *all;
+       int err;
 
-       if (prom_getproperty(node, "reg", (void *) regs, sizeof(regs)) <= 0) {
-               printk("ffb: Cannot get reg device node property.\n");
-               return;
-       }
+       all = kzalloc(sizeof(*all), GFP_KERNEL);
+       if (!all)
+               return -ENOMEM;
 
-       if (ffb_apply_upa_parent_ranges(parent, &regs[0])) {
-               printk("ffb: Cannot apply parent ranges to regs.\n");
-               return;
+       spin_lock_init(&all->par.lock);
+       all->par.fbc = of_ioremap(&op->resource[2], 0,
+                                 sizeof(struct ffb_fbc), "ffb fbc");
+       if (!all->par.fbc) {
+               kfree(all);
+               return -ENOMEM;
        }
 
-       all = kmalloc(sizeof(*all), GFP_KERNEL);
-       if (!all) {
-               printk(KERN_ERR "ffb: Cannot allocate memory.\n");
-               return;
+       all->par.dac = of_ioremap(&op->resource[1], 0,
+                                 sizeof(struct ffb_dac), "ffb dac");
+       if (!all->par.dac) {
+               of_iounmap(all->par.fbc, sizeof(struct ffb_fbc));
+               kfree(all);
+               return -ENOMEM;
        }
-       memset(all, 0, sizeof(*all));
-
-       INIT_LIST_HEAD(&all->list);     
 
-       spin_lock_init(&all->par.lock);
-       all->par.fbc = (struct ffb_fbc *)(regs[0].phys_addr + FFB_FBC_REGS_POFF);
-       all->par.dac = (struct ffb_dac *)(regs[0].phys_addr + FFB_DAC_POFF);
        all->par.rop_cache = FFB_ROP_NEW;
-       all->par.physbase = regs[0].phys_addr;
-       all->par.prom_node = node;
-       all->par.prom_parent_node = parent;
+       all->par.physbase = op->resource[0].start;
 
        /* Don't mention copyarea, so SCROLL_REDRAW is always
         * used.  It is the fastest on this chip.
@@ -968,7 +930,7 @@ static void ffb_init_one(int node, int parent)
        all->info.par = &all->par;
        all->info.pseudo_palette = all->pseudo_palette;
 
-       sbusfb_fill_var(&all->info.var, all->par.prom_node, 32);
+       sbusfb_fill_var(&all->info.var, dp->node, 32);
        all->par.fbsize = PAGE_ALIGN(all->info.var.xres *
                                     all->info.var.yres *
                                     4);
@@ -976,14 +938,13 @@ static void ffb_init_one(int node, int parent)
 
        all->info.var.accel_flags = FB_ACCELF_TEXT;
 
-       prom_getstring(node, "name", all->par.name, sizeof(all->par.name));
-       if (!strcmp(all->par.name, "SUNW,afb"))
+       if (!strcmp(dp->name, "SUNW,afb"))
                all->par.flags |= FFB_FLAG_AFB;
 
-       all->par.board_type = prom_getintdefault(node, "board_type", 0);
+       all->par.board_type = of_getintprop_default(dp, "board_type", 0);
 
        fbc = all->par.fbc;
-       if((upa_readl(&fbc->ucsr) & FFB_UCSR_ALL_ERRORS) != 0)
+       if ((upa_readl(&fbc->ucsr) & FFB_UCSR_ALL_ERRORS) != 0)
                upa_writel(FFB_UCSR_ALL_ERRORS, &fbc->ucsr);
 
        ffb_switch_from_graph(&all->par);
@@ -1008,81 +969,88 @@ static void ffb_init_one(int node, int parent)
        if (fb_alloc_cmap(&all->info.cmap, 256, 0)) {
                printk(KERN_ERR "ffb: Could not allocate color map.\n");
                kfree(all);
-               return;
+               return -ENOMEM;
        }
 
        ffb_init_fix(&all->info);
 
-       if (register_framebuffer(&all->info) < 0) {
+       err = register_framebuffer(&all->info);
+       if (err < 0) {
                printk(KERN_ERR "ffb: Could not register framebuffer.\n");
                fb_dealloc_cmap(&all->info.cmap);
                kfree(all);
-               return;
+               return err;
        }
 
-       list_add(&all->list, &ffb_list);
+       dev_set_drvdata(&op->dev, all);
 
-       printk("ffb: %s at %016lx type %d DAC %d\n",
+       printk("%s: %s at %016lx, type %d, DAC revision %d\n",
+              dp->full_name,
               ((all->par.flags & FFB_FLAG_AFB) ? "AFB" : "FFB"),
-              regs[0].phys_addr, all->par.board_type, all->par.dac_rev);
+              all->par.physbase, all->par.board_type, all->par.dac_rev);
+
+       return 0;
 }
 
-static void ffb_scan_siblings(int root)
+static int __devinit ffb_probe(struct of_device *dev, const struct of_device_id *match)
 {
-       int node, child;
-
-       child = prom_getchild(root);
-       for (node = prom_searchsiblings(child, "SUNW,ffb"); node;
-            node = prom_searchsiblings(prom_getsibling(node), "SUNW,ffb"))
-               ffb_init_one(node, root);
-       for (node = prom_searchsiblings(child, "SUNW,afb"); node;
-            node = prom_searchsiblings(prom_getsibling(node), "SUNW,afb"))
-               ffb_init_one(node, root);
+       struct of_device *op = to_of_device(&dev->dev);
+
+       return ffb_init_one(op);
 }
 
-int __init ffb_init(void)
+static int __devexit ffb_remove(struct of_device *dev)
 {
-       int root;
+       struct all_info *all = dev_get_drvdata(&dev->dev);
 
-       if (fb_get_options("ffb", NULL))
-               return -ENODEV;
+       unregister_framebuffer(&all->info);
+       fb_dealloc_cmap(&all->info.cmap);
 
-       ffb_scan_siblings(prom_root_node);
+       of_iounmap(all->par.fbc, sizeof(struct ffb_fbc));
+       of_iounmap(all->par.dac, sizeof(struct ffb_dac));
 
-       root = prom_getchild(prom_root_node);
-       for (root = prom_searchsiblings(root, "upa"); root;
-            root = prom_searchsiblings(prom_getsibling(root), "upa"))
-               ffb_scan_siblings(root);
+       kfree(all);
+
+       dev_set_drvdata(&dev->dev, NULL);
 
        return 0;
 }
 
-void __exit ffb_exit(void)
-{
-       struct list_head *pos, *tmp;
+static struct of_device_id ffb_match[] = {
+       {
+               .name = "SUNW,ffb",
+       },
+       {
+               .name = "SUNW,afb",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(of, ffb_match);
+
+static struct of_platform_driver ffb_driver = {
+       .name           = "ffb",
+       .match_table    = ffb_match,
+       .probe          = ffb_probe,
+       .remove         = __devexit_p(ffb_remove),
+};
 
-       list_for_each_safe(pos, tmp, &ffb_list) {
-               struct all_info *all = list_entry(pos, typeof(*all), list);
+int __init ffb_init(void)
+{
+       if (fb_get_options("ffb", NULL))
+               return -ENODEV;
 
-               unregister_framebuffer(&all->info);
-               fb_dealloc_cmap(&all->info.cmap);
-               kfree(all);
-       }
+       return of_register_driver(&ffb_driver, &of_bus_type);
 }
 
-int __init
-ffb_setup(char *arg)
+void __exit ffb_exit(void)
 {
-       /* No cmdline options yet... */
-       return 0;
+       of_unregister_driver(&ffb_driver);
 }
 
 module_init(ffb_init);
-
-#ifdef MODULE
 module_exit(ffb_exit);
-#endif
 
 MODULE_DESCRIPTION("framebuffer driver for Creator/Elite3D chipsets");
-MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
+MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
+MODULE_VERSION("2.0");
 MODULE_LICENSE("GPL");
index 5e25b98601967722df5e6014fbfb35d97abedcb7..bf0e60b5a3b645c71e64430657e22366250ae141 100644 (file)
@@ -9,7 +9,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/platform_device.h>
 #include <linux/dma-mapping.h>
index f04ca721f94c53895f19f72b23e2998b48d2ffc7..01864767450dbd3e70e47f8060e038d18380854f 100644 (file)
@@ -11,7 +11,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 3fe3ae1aff120425c834b1568af7cb4e49d0234d..c1f7b49975dd1a8bb78fd1817ddfd33cd3e5018a 100644 (file)
@@ -8,7 +8,6 @@
  *  License. See the file COPYING in the main directory of this archive for
  *  more details.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index a1f7d80f0ac103928003127b7c6a2fb90c66f7b2..fbe8a2c4b04c158b9df60d7f3770f5e934b5098c 100644 (file)
@@ -29,7 +29,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/string.h>
index 7b1c168c834d6db07431d1cc89d158d31bcf0df2..cdbae173d69a4ef393eb7ecd84545204478503f8 100644 (file)
@@ -207,10 +207,6 @@ static int __init imacfb_probe(struct platform_device *dev)
                size_remap = size_total;
        imacfb_fix.smem_len = size_remap;
 
-#ifndef __i386__
-       screen_info.imacpm_seg = 0;
-#endif
-
        if (!request_mem_region(imacfb_fix.smem_start, size_total, "imacfb")) {
                printk(KERN_WARNING
                       "imacfb: cannot reserve video memory at 0x%lx\n",
index f73c642b50c2b6d28d040d12efbaf055010e4971..5f393d985b11270f800cdd84c3f500d04bd9bef7 100644 (file)
@@ -16,7 +16,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 1718baaeed2a6b2271135d6bda6358c333f839c9..0f9b2fdc28b19f4117c01f4b96e98728936b865c 100644 (file)
@@ -18,7 +18,6 @@
 
 //#define DEBUG 1
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 0a0a8b199ecc510f90858dd33cc45f3de34669fb..3f39d84015f1bccb7c96d057fcd71de7806ba55a 100644 (file)
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 7533b3dd08ac96b247579dc77f5ec1fe15f8a0d0..3b78a57924f0483135fdaffa04af1e017d98d8ca 100644 (file)
@@ -19,7 +19,6 @@
 
 /* $DHD: intelfb/intelfbhw.c,v 1.9 2003/06/27 15:06:25 dawes Exp $ */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 477ad297de4e03f7a9096c745ef2f885d878dde2..2fdbe9b2b04bfcf5dfd68355fdad1037959f5805 100644 (file)
@@ -9,7 +9,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index a23cfdb9d826391ff5d4007fb33f884da0d53f1c..f3a24338d9ac830b0b67051fe5e76f09979ee611 100644 (file)
@@ -1,6 +1,6 @@
 /* leo.c: LEO frame buffer driver
  *
- * Copyright (C) 2003 David S. Miller (davem@redhat.com)
+ * Copyright (C) 2003, 2006 David S. Miller (davem@davemloft.net)
  * Copyright (C) 1996-1999 Jakub Jelinek (jj@ultra.linux.cz)
  * Copyright (C) 1997 Michal Rehacek (Michal.Rehacek@st.mff.cuni.cz)
  *
@@ -18,8 +18,8 @@
 #include <linux/mm.h>
 
 #include <asm/io.h>
-#include <asm/sbus.h>
-#include <asm/oplib.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/fbio.h>
 
 #include "sbuslib.h"
@@ -80,10 +80,10 @@ static struct fb_ops leo_ops = {
 
 struct leo_cursor {
        u8              xxx0[16];
-       volatile u32    cur_type;
-       volatile u32    cur_misc;
-       volatile u32    cur_cursxy;
-       volatile u32    cur_data;
+       u32     cur_type;
+       u32     cur_misc;
+       u32     cur_cursxy;
+       u32     cur_data;
 };
 
 #define LEO_KRN_TYPE_CLUT0     0x00001000
@@ -99,27 +99,27 @@ struct leo_cursor {
 #define LEO_KRN_CSR_UNK2       0x00000001
 
 struct leo_lx_krn {
-       volatile u32    krn_type;
-       volatile u32    krn_csr;
-       volatile u32    krn_value;
+       u32     krn_type;
+       u32     krn_csr;
+       u32     krn_value;
 };
 
 struct leo_lc_ss0_krn {
-       volatile u32    misc;
+       u32     misc;
        u8              xxx0[0x800-4];
-       volatile u32    rev;
+       u32     rev;
 };
 
 struct leo_lc_ss0_usr {
-       volatile u32    csr;
-       volatile u32    addrspace;
-       volatile u32    fontmsk;
-       volatile u32    fontt;
-       volatile u32    extent;
-       volatile u32    src;
+       u32     csr;
+       u32     addrspace;
+       u32     fontmsk;
+       u32     fontt;
+       u32     extent;
+       u32     src;
        u32             dst;
-       volatile u32    copy;
-       volatile u32    fill;
+       u32     copy;
+       u32     fill;
 };
 
 struct leo_lc_ss1_krn {
@@ -132,47 +132,47 @@ struct leo_lc_ss1_usr {
 
 struct leo_ld {
        u8              xxx0[0xe00];
-       volatile u32    csr;
-       volatile u32    wid;
-       volatile u32    wmask;
-       volatile u32    widclip;
-       volatile u32    vclipmin;
-       volatile u32    vclipmax;
-       volatile u32    pickmin;        /* SS1 only */
-       volatile u32    pickmax;        /* SS1 only */
-       volatile u32    fg;
-       volatile u32    bg;
-       volatile u32    src;            /* Copy/Scroll (SS0 only) */
-       volatile u32    dst;            /* Copy/Scroll/Fill (SS0 only) */
-       volatile u32    extent;         /* Copy/Scroll/Fill size (SS0 only) */
+       u32     csr;
+       u32     wid;
+       u32     wmask;
+       u32     widclip;
+       u32     vclipmin;
+       u32     vclipmax;
+       u32     pickmin;        /* SS1 only */
+       u32     pickmax;        /* SS1 only */
+       u32     fg;
+       u32     bg;
+       u32     src;            /* Copy/Scroll (SS0 only) */
+       u32     dst;            /* Copy/Scroll/Fill (SS0 only) */
+       u32     extent;         /* Copy/Scroll/Fill size (SS0 only) */
        u32             xxx1[3];
-       volatile u32    setsem;         /* SS1 only */
-       volatile u32    clrsem;         /* SS1 only */
-       volatile u32    clrpick;        /* SS1 only */
-       volatile u32    clrdat;         /* SS1 only */
-       volatile u32    alpha;          /* SS1 only */
+       u32     setsem;         /* SS1 only */
+       u32     clrsem;         /* SS1 only */
+       u32     clrpick;        /* SS1 only */
+       u32     clrdat;         /* SS1 only */
+       u32     alpha;          /* SS1 only */
        u8              xxx2[0x2c];
-       volatile u32    winbg;
-       volatile u32    planemask;
-       volatile u32    rop;
-       volatile u32    z;
-       volatile u32    dczf;           /* SS1 only */
-       volatile u32    dczb;           /* SS1 only */
-       volatile u32    dcs;            /* SS1 only */
-       volatile u32    dczs;           /* SS1 only */
-       volatile u32    pickfb;         /* SS1 only */
-       volatile u32    pickbb;         /* SS1 only */
-       volatile u32    dcfc;           /* SS1 only */
-       volatile u32    forcecol;       /* SS1 only */
-       volatile u32    door[8];        /* SS1 only */
-       volatile u32    pick[5];        /* SS1 only */
+       u32     winbg;
+       u32     planemask;
+       u32     rop;
+       u32     z;
+       u32     dczf;           /* SS1 only */
+       u32     dczb;           /* SS1 only */
+       u32     dcs;            /* SS1 only */
+       u32     dczs;           /* SS1 only */
+       u32     pickfb;         /* SS1 only */
+       u32     pickbb;         /* SS1 only */
+       u32     dcfc;           /* SS1 only */
+       u32     forcecol;       /* SS1 only */
+       u32     door[8];        /* SS1 only */
+       u32     pick[5];        /* SS1 only */
 };
 
 #define LEO_SS1_MISC_ENABLE    0x00000001
 #define LEO_SS1_MISC_STEREO    0x00000002
 struct leo_ld_ss1 {
-       u8              xxx0[0xef4];
-       volatile u32    ss1_misc;
+       u8      xxx0[0xef4];
+       u32     ss1_misc;
 };
 
 struct leo_ld_gbl {
@@ -193,9 +193,8 @@ struct leo_par {
 #define LEO_FLAG_BLANKED       0x00000001
 
        unsigned long           physbase;
+       unsigned long           which_io;
        unsigned long           fbsize;
-
-       struct sbus_dev         *sdev;
 };
 
 static void leo_wait(struct leo_lx_krn __iomem *lx_krn)
@@ -368,8 +367,7 @@ static int leo_mmap(struct fb_info *info, struct vm_area_struct *vma)
 
        return sbusfb_mmap_helper(leo_mmap_map,
                                  par->physbase, par->fbsize,
-                                 par->sdev->reg_addrs[0].which_io,
-                                 vma);
+                                 par->which_io, vma);
 }
 
 static int leo_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
@@ -385,11 +383,9 @@ static int leo_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
  */
 
 static void
-leo_init_fix(struct fb_info *info)
+leo_init_fix(struct fb_info *info, struct device_node *dp)
 {
-       struct leo_par *par = (struct leo_par *)info->par;
-
-       strlcpy(info->fix.id, par->sdev->prom_name, sizeof(info->fix.id));
+       strlcpy(info->fix.id, dp->name, sizeof(info->fix.id));
 
        info->fix.type = FB_TYPE_PACKED_PIXELS;
        info->fix.visual = FB_VISUAL_TRUECOLOR;
@@ -532,60 +528,74 @@ static void leo_fixup_var_rgb(struct fb_var_screeninfo *var)
 struct all_info {
        struct fb_info info;
        struct leo_par par;
-       struct list_head list;
 };
-static LIST_HEAD(leo_list);
 
-static void leo_init_one(struct sbus_dev *sdev)
+static void leo_unmap_regs(struct all_info *all)
 {
-       struct all_info *all;
-       int linebytes;
+       if (all->par.lc_ss0_usr)
+               of_iounmap(all->par.lc_ss0_usr, 0x1000);
+       if (all->par.ld_ss0)
+               of_iounmap(all->par.ld_ss0, 0x1000);
+       if (all->par.ld_ss1)
+               of_iounmap(all->par.ld_ss1, 0x1000);
+       if (all->par.lx_krn)
+               of_iounmap(all->par.lx_krn, 0x1000);
+       if (all->par.cursor)
+               of_iounmap(all->par.cursor, sizeof(struct leo_cursor));
+       if (all->info.screen_base)
+               of_iounmap(all->info.screen_base, 0x800000);
+}
 
-       all = kmalloc(sizeof(*all), GFP_KERNEL);
-       if (!all) {
-               printk(KERN_ERR "leo: Cannot allocate memory.\n");
-               return;
-       }
-       memset(all, 0, sizeof(*all));
+static int __devinit leo_init_one(struct of_device *op)
+{
+       struct device_node *dp = op->node;
+       struct all_info *all;
+       int linebytes, err;
 
-       INIT_LIST_HEAD(&all->list);
+       all = kzalloc(sizeof(*all), GFP_KERNEL);
+       if (!all)
+               return -ENOMEM;
 
        spin_lock_init(&all->par.lock);
-       all->par.sdev = sdev;
 
-       all->par.physbase = sdev->reg_addrs[0].phys_addr;
+       all->par.physbase = op->resource[0].start;
+       all->par.which_io = op->resource[0].flags & IORESOURCE_BITS;
 
-       sbusfb_fill_var(&all->info.var, sdev->prom_node, 32);
+       sbusfb_fill_var(&all->info.var, dp->node, 32);
        leo_fixup_var_rgb(&all->info.var);
 
-       linebytes = prom_getintdefault(sdev->prom_node, "linebytes",
-                                      all->info.var.xres);
+       linebytes = of_getintprop_default(dp, "linebytes",
+                                         all->info.var.xres);
        all->par.fbsize = PAGE_ALIGN(linebytes * all->info.var.yres);
 
-#ifdef CONFIG_SPARC32
-       all->info.screen_base = (char __iomem *)
-               prom_getintdefault(sdev->prom_node, "address", 0);
-#endif
-       if (!all->info.screen_base)
-               all->info.screen_base = 
-                       sbus_ioremap(&sdev->resource[0], LEO_OFF_SS0,
-                                    0x800000, "leo ram");
-
        all->par.lc_ss0_usr =
-               sbus_ioremap(&sdev->resource[0], LEO_OFF_LC_SS0_USR,
-                            0x1000, "leolc ss0usr");
+               of_ioremap(&op->resource[0], LEO_OFF_LC_SS0_USR,
+                          0x1000, "leolc ss0usr");
        all->par.ld_ss0 =
-               sbus_ioremap(&sdev->resource[0], LEO_OFF_LD_SS0,
-                            0x1000, "leold ss0");
+               of_ioremap(&op->resource[0], LEO_OFF_LD_SS0,
+                          0x1000, "leold ss0");
        all->par.ld_ss1 =
-               sbus_ioremap(&sdev->resource[0], LEO_OFF_LD_SS1,
-                            0x1000, "leold ss1");
+               of_ioremap(&op->resource[0], LEO_OFF_LD_SS1,
+                          0x1000, "leold ss1");
        all->par.lx_krn =
-               sbus_ioremap(&sdev->resource[0], LEO_OFF_LX_KRN,
-                            0x1000, "leolx krn");
+               of_ioremap(&op->resource[0], LEO_OFF_LX_KRN,
+                          0x1000, "leolx krn");
        all->par.cursor =
-               sbus_ioremap(&sdev->resource[0], LEO_OFF_LX_CURSOR,
-                            sizeof(struct leo_cursor), "leolx cursor");
+               of_ioremap(&op->resource[0], LEO_OFF_LX_CURSOR,
+                          sizeof(struct leo_cursor), "leolx cursor");
+       all->info.screen_base = 
+               of_ioremap(&op->resource[0], LEO_OFF_SS0,
+                          0x800000, "leo ram");
+       if (!all->par.lc_ss0_usr ||
+           !all->par.ld_ss0 ||
+           !all->par.ld_ss1 ||
+           !all->par.lx_krn ||
+           !all->par.cursor ||
+           !all->info.screen_base) {
+               leo_unmap_regs(all);
+               kfree(all);
+               return -ENOMEM;
+       }
 
        all->info.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
        all->info.fbops = &leo_ops;
@@ -597,69 +607,85 @@ static void leo_init_one(struct sbus_dev *sdev)
        leo_blank(0, &all->info);
 
        if (fb_alloc_cmap(&all->info.cmap, 256, 0)) {
-               printk(KERN_ERR "leo: Could not allocate color map.\n");
+               leo_unmap_regs(all);
                kfree(all);
-               return;
+               return -ENOMEM;;
        }
 
-       leo_init_fix(&all->info);
+       leo_init_fix(&all->info, dp);
 
-       if (register_framebuffer(&all->info) < 0) {
-               printk(KERN_ERR "leo: Could not register framebuffer.\n");
+       err = register_framebuffer(&all->info);
+       if (err < 0) {
                fb_dealloc_cmap(&all->info.cmap);
+               leo_unmap_regs(all);
                kfree(all);
-               return;
+               return err;
        }
 
-       list_add(&all->list, &leo_list);
+       dev_set_drvdata(&op->dev, all);
+
+       printk("%s: leo at %lx:%lx\n",
+              dp->full_name,
+              all->par.which_io, all->par.physbase);
 
-       printk("leo: %s at %lx:%lx\n",
-              sdev->prom_name,
-              (long) sdev->reg_addrs[0].which_io,
-              (long) sdev->reg_addrs[0].phys_addr);
+       return 0;
 }
 
-int __init leo_init(void)
+static int __devinit leo_probe(struct of_device *dev, const struct of_device_id *match)
 {
-       struct sbus_bus *sbus;
-       struct sbus_dev *sdev;
+       struct of_device *op = to_of_device(&dev->dev);
 
-       if (fb_get_options("leofb", NULL))
-               return -ENODEV;
+       return leo_init_one(op);
+}
 
-       for_all_sbusdev(sdev, sbus) {
-               if (!strcmp(sdev->prom_name, "leo"))
-                       leo_init_one(sdev);
-       }
+static int __devexit leo_remove(struct of_device *dev)
+{
+       struct all_info *all = dev_get_drvdata(&dev->dev);
+
+       unregister_framebuffer(&all->info);
+       fb_dealloc_cmap(&all->info.cmap);
+
+       leo_unmap_regs(all);
+
+       kfree(all);
+
+       dev_set_drvdata(&dev->dev, NULL);
 
        return 0;
 }
 
-void __exit leo_exit(void)
-{
-       struct list_head *pos, *tmp;
+static struct of_device_id leo_match[] = {
+       {
+               .name = "leo",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(of, leo_match);
+
+static struct of_platform_driver leo_driver = {
+       .name           = "leo",
+       .match_table    = leo_match,
+       .probe          = leo_probe,
+       .remove         = __devexit_p(leo_remove),
+};
 
-       list_for_each_safe(pos, tmp, &leo_list) {
-               struct all_info *all = list_entry(pos, typeof(*all), list);
+static int __init leo_init(void)
+{
+       if (fb_get_options("leofb", NULL))
+               return -ENODEV;
 
-               unregister_framebuffer(&all->info);
-               fb_dealloc_cmap(&all->info.cmap);
-               kfree(all);
-       }
+       return of_register_driver(&leo_driver, &of_bus_type);
 }
 
-int __init
-leo_setup(char *arg)
+static void __exit leo_exit(void)
 {
-       /* No cmdline options yet... */
-       return 0;
+       of_unregister_driver(&leo_driver);
 }
 
 module_init(leo_init);
-#ifdef MODULE
 module_exit(leo_exit);
-#endif
 
 MODULE_DESCRIPTION("framebuffer driver for LEO chipsets");
-MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
+MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
+MODULE_VERSION("2.0");
 MODULE_LICENSE("GPL");
index 788fa812c871a851c457d61834adac900445c5ec..80c03618eb535910b7796eab43006c0b841422f7 100644 (file)
@@ -9,7 +9,6 @@
  *  Copyright (C) 2003 Geert Uytterhoeven <geert@linux-m68k.org>
  */
 
-#include <linux/config.h>
 #include <linux/linux_logo.h>
 #include <linux/stddef.h>
 #include <linux/module.h>
index d21321ca7c39603eb9d61f053ba1b1e474149a43..ab2149531a0413e596d43009a6d3c9d26bc4ab3d 100644 (file)
@@ -15,7 +15,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/fb.h>
 #include <linux/string.h>
index a456e67a5b004270048a7a38a351bee3d410c9f8..c4b570b4a4df0e448365acd66f7c6ab8c7284303 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #include "matroxfb_DAC1064.h"
 #include "matroxfb_misc.h"
index 56513a5d220b03d44531c2b677441bd3f3b2380a..df39c3193735743ce21043a92c6aefce81d7cd37 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef __MATROXFB_DAC1064_H__
 #define __MATROXFB_DAC1064_H__
 
-#include <linux/config.h>
 
 #include "matroxfb_base.h"
 
index 23ebad0a12d8ca55a0d598cf4219868e03cfa045..a5690a5f29d585f69f069c43e7b783af8f494475 100644 (file)
@@ -78,7 +78,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #include "matroxfb_Ti3026.h"
 #include "matroxfb_misc.h"
index 536e5f69de9fb338f3ef6983f3c728592e2b216c..27872aaa0a17d494d5cadc73de0609093744f99f 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef __MATROXFB_TI3026_H__
 #define __MATROXFB_TI3026_H__
 
-#include <linux/config.h>
 
 #include "matroxfb_base.h"
 
index f4ddd3431f179055e54b12118162c26b40cf2278..8b5bf7972ee3c6631c0bb44428d83b82e033f77e 100644 (file)
@@ -99,7 +99,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/version.h>
 
 #define __OLD_VIDIOC_
index b71737178d0d9bcbbfc328d62e88aae7433dbc7c..b95779b57c0650e69070ebf028aefa9fd96f8651 100644 (file)
@@ -25,7 +25,6 @@
 /* Guard accelerator accesses with spin_lock_irqsave... */
 #undef MATROXFB_USE_SPINLOCKS
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 263d801ef78fd00898d0447205236c39b03c604f..18886b629cb1bb3c8fcea5cb9a0f4132f0fdb20c 100644 (file)
@@ -84,7 +84,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #include "matroxfb_misc.h"
 #include <linux/interrupt.h>
index 2f156b724d1ccf00901de1f6f1eac2c8e0c08100..773855a311e83d7b1e51c7fb1cad1b6a73fe79b4 100644 (file)
@@ -54,7 +54,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 1edb1c432b753ed4349600e4d82a4142bb8b38e3..19eef3a090232854860ad993365993dc7e5f68f6 100644 (file)
@@ -10,7 +10,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 7a03d040b1a3255bb0d9e2a5dbc4828b49c36c42..8209106e26eee00fbbbe2e2c282a87675e11dbba 100644 (file)
@@ -10,7 +10,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 7b5cffb2785127dca434b8e55804198a7e27d3c4..b02d6033cc0c021740c539269c0b35f878fc4eca 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index ad1434e3f2277ff33bbc5dad7224ceff8e7da4a5..bfeb11bd4712239c73f425f7ec5840f3dad8e3c6 100644 (file)
@@ -12,7 +12,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 0d19575053598b665a6d425805672860e614bb6b..56ac51d6a7f3f0380b0a76dc7f86ed28948cf8b3 100644 (file)
@@ -1,6 +1,6 @@
 /* p9100.c: P9100 frame buffer driver
  *
- * Copyright (C) 2003 David S. Miller (davem@redhat.com)
+ * Copyright (C) 2003, 2006 David S. Miller (davem@davemloft.net)
  * Copyright 1999 Derrick J Brashear (shadow@dementia.org)
  *
  * Driver layout based loosely on tgafb.c, see that file for credits.
@@ -17,8 +17,8 @@
 #include <linux/mm.h>
 
 #include <asm/io.h>
-#include <asm/sbus.h>
-#include <asm/oplib.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/fbio.h>
 
 #include "sbuslib.h"
@@ -72,60 +72,60 @@ static struct fb_ops p9100_ops = {
 
 struct p9100_regs {
        /* Registers for the system control */
-       volatile u32 sys_base;
-       volatile u32 sys_config;
-       volatile u32 sys_intr;
-       volatile u32 sys_int_ena;
-       volatile u32 sys_alt_rd;
-       volatile u32 sys_alt_wr;
-       volatile u32 sys_xxx[58];
+       u32 sys_base;
+       u32 sys_config;
+       u32 sys_intr;
+       u32 sys_int_ena;
+       u32 sys_alt_rd;
+       u32 sys_alt_wr;
+       u32 sys_xxx[58];
 
        /* Registers for the video control */
-       volatile u32 vid_base;
-       volatile u32 vid_hcnt;
-       volatile u32 vid_htotal;
-       volatile u32 vid_hsync_rise;
-       volatile u32 vid_hblank_rise;
-       volatile u32 vid_hblank_fall;
-       volatile u32 vid_hcnt_preload;
-       volatile u32 vid_vcnt;
-       volatile u32 vid_vlen;
-       volatile u32 vid_vsync_rise;
-       volatile u32 vid_vblank_rise;
-       volatile u32 vid_vblank_fall;
-       volatile u32 vid_vcnt_preload;
-       volatile u32 vid_screenpaint_addr;
-       volatile u32 vid_screenpaint_timectl1;
-       volatile u32 vid_screenpaint_qsfcnt;
-       volatile u32 vid_screenpaint_timectl2;
-       volatile u32 vid_xxx[15];
+       u32 vid_base;
+       u32 vid_hcnt;
+       u32 vid_htotal;
+       u32 vid_hsync_rise;
+       u32 vid_hblank_rise;
+       u32 vid_hblank_fall;
+       u32 vid_hcnt_preload;
+       u32 vid_vcnt;
+       u32 vid_vlen;
+       u32 vid_vsync_rise;
+       u32 vid_vblank_rise;
+       u32 vid_vblank_fall;
+       u32 vid_vcnt_preload;
+       u32 vid_screenpaint_addr;
+       u32 vid_screenpaint_timectl1;
+       u32 vid_screenpaint_qsfcnt;
+       u32 vid_screenpaint_timectl2;
+       u32 vid_xxx[15];
 
        /* Registers for the video control */
-       volatile u32 vram_base;
-       volatile u32 vram_memcfg;
-       volatile u32 vram_refresh_pd;
-       volatile u32 vram_refresh_cnt;
-       volatile u32 vram_raslo_max;
-       volatile u32 vram_raslo_cur;
-       volatile u32 pwrup_cfg;
-       volatile u32 vram_xxx[25];
+       u32 vram_base;
+       u32 vram_memcfg;
+       u32 vram_refresh_pd;
+       u32 vram_refresh_cnt;
+       u32 vram_raslo_max;
+       u32 vram_raslo_cur;
+       u32 pwrup_cfg;
+       u32 vram_xxx[25];
 
        /* Registers for IBM RGB528 Palette */
-       volatile u32 ramdac_cmap_wridx; 
-       volatile u32 ramdac_palette_data;
-       volatile u32 ramdac_pixel_mask;
-       volatile u32 ramdac_palette_rdaddr;
-       volatile u32 ramdac_idx_lo;
-       volatile u32 ramdac_idx_hi;
-       volatile u32 ramdac_idx_data;
-       volatile u32 ramdac_idx_ctl;
-       volatile u32 ramdac_xxx[1784];
+       u32 ramdac_cmap_wridx; 
+       u32 ramdac_palette_data;
+       u32 ramdac_pixel_mask;
+       u32 ramdac_palette_rdaddr;
+       u32 ramdac_idx_lo;
+       u32 ramdac_idx_hi;
+       u32 ramdac_idx_data;
+       u32 ramdac_idx_ctl;
+       u32 ramdac_xxx[1784];
 };
 
 struct p9100_cmd_parameng {
-       volatile u32 parameng_status;
-       volatile u32 parameng_bltcmd;
-       volatile u32 parameng_quadcmd;
+       u32 parameng_status;
+       u32 parameng_bltcmd;
+       u32 parameng_quadcmd;
 };
 
 struct p9100_par {
@@ -136,9 +136,8 @@ struct p9100_par {
 #define P9100_FLAG_BLANKED     0x00000001
 
        unsigned long           physbase;
+       unsigned long           which_io;
        unsigned long           fbsize;
-
-       struct sbus_dev         *sdev;
 };
 
 /**
@@ -227,8 +226,7 @@ static int p9100_mmap(struct fb_info *info, struct vm_area_struct *vma)
 
        return sbusfb_mmap_helper(p9100_mmap_map,
                                  par->physbase, par->fbsize,
-                                 par->sdev->reg_addrs[0].which_io,
-                                 vma);
+                                 par->which_io, vma);
 }
 
 static int p9100_ioctl(struct fb_info *info, unsigned int cmd,
@@ -245,12 +243,9 @@ static int p9100_ioctl(struct fb_info *info, unsigned int cmd,
  *  Initialisation
  */
 
-static void
-p9100_init_fix(struct fb_info *info, int linebytes)
+static void p9100_init_fix(struct fb_info *info, int linebytes, struct device_node *dp)
 {
-       struct p9100_par *par = (struct p9100_par *)info->par;
-
-       strlcpy(info->fix.id, par->sdev->prom_name, sizeof(info->fix.id));
+       strlcpy(info->fix.id, dp->name, sizeof(info->fix.id));
 
        info->fix.type = FB_TYPE_PACKED_PIXELS;
        info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
@@ -263,121 +258,137 @@ p9100_init_fix(struct fb_info *info, int linebytes)
 struct all_info {
        struct fb_info info;
        struct p9100_par par;
-       struct list_head list;
 };
-static LIST_HEAD(p9100_list);
 
-static void p9100_init_one(struct sbus_dev *sdev)
+static int __devinit p9100_init_one(struct of_device *op)
 {
+       struct device_node *dp = op->node;
        struct all_info *all;
-       int linebytes;
-
-       all = kmalloc(sizeof(*all), GFP_KERNEL);
-       if (!all) {
-               printk(KERN_ERR "p9100: Cannot allocate memory.\n");
-               return;
-       }
-       memset(all, 0, sizeof(*all));
+       int linebytes, err;
 
-       INIT_LIST_HEAD(&all->list);
+       all = kzalloc(sizeof(*all), GFP_KERNEL);
+       if (!all)
+               return -ENOMEM;
 
        spin_lock_init(&all->par.lock);
-       all->par.sdev = sdev;
 
        /* This is the framebuffer and the only resource apps can mmap.  */
-       all->par.physbase = sdev->reg_addrs[2].phys_addr;
+       all->par.physbase = op->resource[2].start;
+       all->par.which_io = op->resource[2].flags & IORESOURCE_BITS;
 
-       sbusfb_fill_var(&all->info.var, sdev->prom_node, 8);
+       sbusfb_fill_var(&all->info.var, dp->node, 8);
        all->info.var.red.length = 8;
        all->info.var.green.length = 8;
        all->info.var.blue.length = 8;
 
-       linebytes = prom_getintdefault(sdev->prom_node, "linebytes",
-                                      all->info.var.xres);
+       linebytes = of_getintprop_default(dp, "linebytes",
+                                         all->info.var.xres);
        all->par.fbsize = PAGE_ALIGN(linebytes * all->info.var.yres);
 
-       all->par.regs = sbus_ioremap(&sdev->resource[0], 0,
-                            sizeof(struct p9100_regs), "p9100 regs");
+       all->par.regs = of_ioremap(&op->resource[0], 0,
+                                  sizeof(struct p9100_regs), "p9100 regs");
+       if (!all->par.regs) {
+               kfree(all);
+               return -ENOMEM;
+       }
 
        all->info.flags = FBINFO_DEFAULT;
        all->info.fbops = &p9100_ops;
-#ifdef CONFIG_SPARC32
-       all->info.screen_base = (char __iomem *)
-               prom_getintdefault(sdev->prom_node, "address", 0);
-#endif
-       if (!all->info.screen_base)
-               all->info.screen_base = sbus_ioremap(&sdev->resource[2], 0,
-                                    all->par.fbsize, "p9100 ram");
+       all->info.screen_base = of_ioremap(&op->resource[2], 0,
+                                          all->par.fbsize, "p9100 ram");
+       if (!all->info.screen_base) {
+               of_iounmap(all->par.regs, sizeof(struct p9100_regs));
+               kfree(all);
+               return -ENOMEM;
+       }
        all->info.par = &all->par;
 
        p9100_blank(0, &all->info);
 
        if (fb_alloc_cmap(&all->info.cmap, 256, 0)) {
-               printk(KERN_ERR "p9100: Could not allocate color map.\n");
+               of_iounmap(all->par.regs, sizeof(struct p9100_regs));
+               of_iounmap(all->info.screen_base, all->par.fbsize);
                kfree(all);
-               return;
+               return -ENOMEM;
        }
 
-       p9100_init_fix(&all->info, linebytes);
+       p9100_init_fix(&all->info, linebytes, dp);
 
-       if (register_framebuffer(&all->info) < 0) {
-               printk(KERN_ERR "p9100: Could not register framebuffer.\n");
+       err = register_framebuffer(&all->info);
+       if (err < 0) {
                fb_dealloc_cmap(&all->info.cmap);
+               of_iounmap(all->par.regs, sizeof(struct p9100_regs));
+               of_iounmap(all->info.screen_base, all->par.fbsize);
                kfree(all);
-               return;
+               return err;
        }
        fb_set_cmap(&all->info.cmap, &all->info);
 
-       list_add(&all->list, &p9100_list);
+       dev_set_drvdata(&op->dev, all);
+
+       printk("%s: p9100 at %lx:%lx\n",
+              dp->full_name,
+              all->par.which_io, all->par.physbase);
 
-       printk("p9100: %s at %lx:%lx\n",
-              sdev->prom_name,
-              (long) sdev->reg_addrs[0].which_io,
-              (long) sdev->reg_addrs[0].phys_addr);
+       return 0;
 }
 
-int __init p9100_init(void)
+static int __devinit p9100_probe(struct of_device *dev, const struct of_device_id *match)
 {
-       struct sbus_bus *sbus;
-       struct sbus_dev *sdev;
+       struct of_device *op = to_of_device(&dev->dev);
 
-       if (fb_get_options("p9100fb", NULL))
-               return -ENODEV;
+       return p9100_init_one(op);
+}
 
-       for_all_sbusdev(sdev, sbus) {
-               if (!strcmp(sdev->prom_name, "p9100"))
-                       p9100_init_one(sdev);
-       }
+static int __devexit p9100_remove(struct of_device *dev)
+{
+       struct all_info *all = dev_get_drvdata(&dev->dev);
+
+       unregister_framebuffer(&all->info);
+       fb_dealloc_cmap(&all->info.cmap);
+
+       of_iounmap(all->par.regs, sizeof(struct p9100_regs));
+       of_iounmap(all->info.screen_base, all->par.fbsize);
+
+       kfree(all);
+
+       dev_set_drvdata(&dev->dev, NULL);
 
        return 0;
 }
 
-void __exit p9100_exit(void)
-{
-       struct list_head *pos, *tmp;
+static struct of_device_id p9100_match[] = {
+       {
+               .name = "p9100",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(of, p9100_match);
 
-       list_for_each_safe(pos, tmp, &p9100_list) {
-               struct all_info *all = list_entry(pos, typeof(*all), list);
+static struct of_platform_driver p9100_driver = {
+       .name           = "p9100",
+       .match_table    = p9100_match,
+       .probe          = p9100_probe,
+       .remove         = __devexit_p(p9100_remove),
+};
 
-               unregister_framebuffer(&all->info);
-               fb_dealloc_cmap(&all->info.cmap);
-               kfree(all);
-       }
+static int __init p9100_init(void)
+{
+       if (fb_get_options("p9100fb", NULL))
+               return -ENODEV;
+
+       return of_register_driver(&p9100_driver, &of_bus_type);
 }
 
-int __init
-p9100_setup(char *arg)
+static void __exit p9100_exit(void)
 {
-       /* No cmdline options yet... */
-       return 0;
+       of_unregister_driver(&p9100_driver);
 }
 
 module_init(p9100_init);
-
-#ifdef MODULE
 module_exit(p9100_exit);
-#endif
 
 MODULE_DESCRIPTION("framebuffer driver for P9100 chipsets");
-MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
+MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
+MODULE_VERSION("2.0");
 MODULE_LICENSE("GPL");
index 335e3746555983bb4678c325fef450aab47f75ef..450e802e0aa8fb55f30a9d953016ed1209e128dc 100644 (file)
@@ -17,7 +17,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 4e963930b50ae40ee358e19e999e12dc5b3db368..49a203e1591c748f1233d6afbaa36aaa11efd572 100644 (file)
@@ -27,7 +27,6 @@
  * 
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index 52c18a35fb411d0cd5c6f8b9c3d81010195ddc2a..0e0f977b05ee29a466fb7b07054e846750a76cf3 100644 (file)
@@ -52,7 +52,6 @@
  *  Wed Feb 21 14:47:06 CET 2001, v 1.0.0: First working version
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index ec4bacf9dd2e90d2c4b0d696356bdcfff6ee9b53..4a1e0e8569200e39d7e6de0ec7f0f9d88014949a 100644 (file)
@@ -56,7 +56,6 @@
 #include <linux/tty.h>
 #include <linux/slab.h>
 #include <linux/delay.h>
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/fb.h>
 #include <linux/init.h>
index 809fc5eefc15b2a84c434ec84a3e407070471de4..54663a9baf43e01b3680f2f99933be851191b6cd 100644 (file)
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index 12af58c5cf1f44cc205fc2b7c44bef90c6b78861..2788655e6e7de76c93e96d2c2ba5850565c69b19 100644 (file)
@@ -29,7 +29,6 @@
  *     doublescan modes are broken
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 8b1967fc116ad19636309da4bd0cd77f4ed7ed9a..9751c37c0bfd57de13b4c182090c2adcc0422dd7 100644 (file)
@@ -12,7 +12,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 440ff445689b79b81a915617cd18556638991804..7fa13fc9c4135837fdef1a7b94e18ef41a2a71ac 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef __RIVAFB_H
 #define __RIVAFB_H
 
-#include <linux/config.h>
 #include <linux/fb.h>
 #include <video/vga.h>
 #include <linux/i2c.h>
index feec47bdd47996dbe4ab22ee8fbbc3859585a8dd..a5333c1907898ef71a301eecd75d8e3e56cbb5fd 100644 (file)
@@ -28,7 +28,6 @@
  * more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/platform_device.h>
 #include <linux/delay.h>
index d9831fd4234184c92a0a4468839eb2612cec5388..553fd84af44fbc948d1c03105ca20adb5ea126a3 100644 (file)
  *     - Add patch 681/1 and clean up stork definitions.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 21debed863ac4d459bd9222b544841fe862eb476..e83befd16d634328ddb6029df79aaa3330f1a5a1 100644 (file)
@@ -10,7 +10,6 @@
  * for more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 78883cf66a4d8876b6aa6754de16d588e696aee3..4729af477fbf0300af93400eb1de4e279f294339 100644 (file)
@@ -41,7 +41,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index c0cc5e3ba7b5fe28d689071a52836897d8450627..ebb6756aea0894b9546db8b7a1e8ff2b739fa7c8 100644 (file)
@@ -9,7 +9,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
index 634c0a9d219b1a1da486c76633deb21c41f8c2a0..7ecab87cef027cece07ad55c987bd96a280f4a39 100644 (file)
@@ -73,7 +73,6 @@
 #ifdef SIS_CP
 #undef SIS_CP
 #endif
-#include <linux/config.h>
 #include <linux/version.h>
 #include <linux/types.h>
 #include <asm/io.h>
index c3e070a6effd9f61a25f5a98e2d8ba674da37954..f13faddc618102f3040a8370ace0203f2344372a 100644 (file)
@@ -8043,8 +8043,8 @@ SiS_SetCHTVReg(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short
       SiS_SetCH700x(SiS_Pr,0x01,0x28);
 
       /* Set video bandwidth
-            High bandwith Luma composite video filter(S0=1)
-            low bandwith Luma S-video filter (S2-1=00)
+            High bandwidth Luma composite video filter(S0=1)
+            low bandwidth Luma S-video filter (S2-1=00)
            disable peak filter in S-video channel (S3=0)
            high bandwidth Chroma Filter (S5-4=11)
            =00110001=0x31
index f475b21a85cfa6f87161698a84ef8e65d4c98df4..bc321dc57e92ebc1ceb4b70eadd1c2934c72fcf8 100644 (file)
@@ -67,7 +67,6 @@
 #ifdef SIS_CP
 #undef SIS_CP
 #endif
-#include <linux/config.h>
 #include <linux/version.h>
 #include <linux/types.h>
 #include <asm/io.h>
index cc856d90903c147dd8139014c565bf5601d6a95e..09f5d758b6c02b79d3aab802698664c949f9de0d 100644 (file)
@@ -30,7 +30,6 @@
 #include "vgatypes.h"
 #include "vstruct.h"
 
-#include <linux/config.h>
 #include <linux/version.h>
 #include <linux/types.h>
 #include <linux/fb.h>
index 841ca3190cd4d15fbe329763016a0e5639698bc9..f59568020eb220d7a720a10c73c87b3b5dadb66e 100644 (file)
@@ -90,7 +90,6 @@
 /**********************************************************************/
 
 #ifdef SIS_LINUX_KERNEL
-#include <linux/config.h>
 #include <linux/version.h>
 
 #ifdef CONFIG_FB_SIS_300
index 0b6e625d7331672d5ff8e6ab04d42a02adb2cf74..a259446ca7fe3f883afb49fee8f67dd787b936d2 100644 (file)
@@ -24,7 +24,6 @@
 #ifndef _SIS_H_
 #define _SIS_H_
 
-#include <linux/config.h>
 #include <linux/version.h>
 
 #include "osdef.h"
index bab933e6c6a697ffe8dcd804517b69c8363506b8..3b7ce032e2ed6af47599e9336c01d37bdc864e8c 100644 (file)
@@ -28,7 +28,6 @@
  *                     for more information and updates)
  */
 
-#include <linux/config.h>
 #include <linux/version.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index c63c0e721b827c1093dca5c03d069bb3b881870c..b848ca7db7f9798c7d94d530775cc6be279885b2 100644 (file)
@@ -33,7 +33,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/version.h>
 #include <linux/module.h>
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
index c44de90ca12e7078b373cba7e76c108c5b0676fe..dad54e73147b4d68420fb5c189889c94213f34bd 100644 (file)
@@ -82,7 +82,6 @@
  * Includes
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index 4a292aae6eb26878e69277a1f53eb58da759a8a8..3e16e2d9d55dd50a39187b9d332e41b67b4723e1 100644 (file)
@@ -54,7 +54,6 @@
 #undef DEBUG_STIFB_REGS                /* debug sti register accesses */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 9b36b9df535f2cdcd45207f63612631258628ed3..e046e20f02b91aead446abd4b62afa1117aaff7a 100644 (file)
@@ -25,7 +25,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 95b918229d9b13e6f35879d39ccc78924f43ec7c..6990ab11cd06ef184bee2ea364885ae6c7741a61 100644 (file)
@@ -1,6 +1,6 @@
 /* tcx.c: TCX frame buffer driver
  *
- * Copyright (C) 2003 David S. Miller (davem@redhat.com)
+ * Copyright (C) 2003, 2006 David S. Miller (davem@davemloft.net)
  * Copyright (C) 1996,1998 Jakub Jelinek (jj@ultra.linux.cz)
  * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
  * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be)
@@ -19,8 +19,8 @@
 #include <linux/mm.h>
 
 #include <asm/io.h>
-#include <asm/sbus.h>
-#include <asm/oplib.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/fbio.h>
 
 #include "sbuslib.h"
@@ -77,32 +77,32 @@ static struct fb_ops tcx_ops = {
 
 /* The contents are unknown */
 struct tcx_tec {
-       volatile u32 tec_matrix;
-       volatile u32 tec_clip;
-       volatile u32 tec_vdc;
+       u32 tec_matrix;
+       u32 tec_clip;
+       u32 tec_vdc;
 };
 
 struct tcx_thc {
-       volatile u32 thc_rev;
+       u32 thc_rev;
         u32 thc_pad0[511];
-       volatile u32 thc_hs;            /* hsync timing */
-       volatile u32 thc_hsdvs;
-       volatile u32 thc_hd;
-       volatile u32 thc_vs;            /* vsync timing */
-       volatile u32 thc_vd;
-       volatile u32 thc_refresh;
-       volatile u32 thc_misc;
+       u32 thc_hs;             /* hsync timing */
+       u32 thc_hsdvs;
+       u32 thc_hd;
+       u32 thc_vs;             /* vsync timing */
+       u32 thc_vd;
+       u32 thc_refresh;
+       u32 thc_misc;
        u32 thc_pad1[56];
-       volatile u32 thc_cursxy;        /* cursor x,y position (16 bits each) */
-       volatile u32 thc_cursmask[32];  /* cursor mask bits */
-       volatile u32 thc_cursbits[32];  /* what to show where mask enabled */
+       u32 thc_cursxy; /* cursor x,y position (16 bits each) */
+       u32 thc_cursmask[32];   /* cursor mask bits */
+       u32 thc_cursbits[32];   /* what to show where mask enabled */
 };
 
 struct bt_regs {
-       volatile u32 addr;
-       volatile u32 color_map;
-       volatile u32 control;
-       volatile u32 cursor;
+       u32 addr;
+       u32 color_map;
+       u32 control;
+       u32 cursor;
 };
 
 #define TCX_MMAP_ENTRIES 14
@@ -112,24 +112,23 @@ struct tcx_par {
        struct bt_regs          __iomem *bt;
        struct tcx_thc          __iomem *thc;
        struct tcx_tec          __iomem *tec;
-       volatile u32            __iomem *cplane;
+       u32                     __iomem *cplane;
 
        u32                     flags;
 #define TCX_FLAG_BLANKED       0x00000001
 
        unsigned long           physbase;
+       unsigned long           which_io;
        unsigned long           fbsize;
 
        struct sbus_mmap_map    mmap_map[TCX_MMAP_ENTRIES];
        int                     lowdepth;
-
-       struct sbus_dev         *sdev;
 };
 
 /* Reset control plane so that WID is 8-bit plane. */
 static void __tcx_set_control_plane (struct tcx_par *par)
 {
-       volatile u32 __iomem *p, *pend;
+       u32 __iomem *p, *pend;
         
        if (par->lowdepth)
                return;
@@ -307,8 +306,7 @@ static int tcx_mmap(struct fb_info *info, struct vm_area_struct *vma)
 
        return sbusfb_mmap_helper(par->mmap_map,
                                  par->physbase, par->fbsize,
-                                 par->sdev->reg_addrs[0].which_io,
-                                 vma);
+                                 par->which_io, vma);
 }
 
 static int tcx_ioctl(struct fb_info *info, unsigned int cmd,
@@ -350,48 +348,71 @@ tcx_init_fix(struct fb_info *info, int linebytes)
 struct all_info {
        struct fb_info info;
        struct tcx_par par;
-       struct list_head list;
 };
-static LIST_HEAD(tcx_list);
 
-static void tcx_init_one(struct sbus_dev *sdev)
+static void tcx_unmap_regs(struct all_info *all)
 {
-       struct all_info *all;
-       int linebytes, i;
+       if (all->par.tec)
+               of_iounmap(all->par.tec, sizeof(struct tcx_tec));
+       if (all->par.thc)
+               of_iounmap(all->par.thc, sizeof(struct tcx_thc));
+       if (all->par.bt)
+               of_iounmap(all->par.bt, sizeof(struct bt_regs));
+       if (all->par.cplane)
+               of_iounmap(all->par.cplane, all->par.fbsize * sizeof(u32));
+       if (all->info.screen_base)
+               of_iounmap(all->info.screen_base, all->par.fbsize);
+}
 
-       all = kmalloc(sizeof(*all), GFP_KERNEL);
-       if (!all) {
-               printk(KERN_ERR "tcx: Cannot allocate memory.\n");
-               return;
-       }
-       memset(all, 0, sizeof(*all));
+static int __devinit tcx_init_one(struct of_device *op)
+{
+       struct device_node *dp = op->node;
+       struct all_info *all;
+       int linebytes, i, err;
 
-       INIT_LIST_HEAD(&all->list);
+       all = kzalloc(sizeof(*all), GFP_KERNEL);
+       if (!all)
+               return -ENOMEM;
 
        spin_lock_init(&all->par.lock);
-       all->par.sdev = sdev;
 
-       all->par.lowdepth = prom_getbool(sdev->prom_node, "tcx-8-bit");
+       all->par.lowdepth =
+               (of_find_property(dp, "tcx-8-bit", NULL) != NULL);
 
-       sbusfb_fill_var(&all->info.var, sdev->prom_node, 8);
+       sbusfb_fill_var(&all->info.var, dp->node, 8);
        all->info.var.red.length = 8;
        all->info.var.green.length = 8;
        all->info.var.blue.length = 8;
 
-       linebytes = prom_getintdefault(sdev->prom_node, "linebytes",
-                                      all->info.var.xres);
+       linebytes = of_getintprop_default(dp, "linebytes",
+                                         all->info.var.xres);
        all->par.fbsize = PAGE_ALIGN(linebytes * all->info.var.yres);
 
-       all->par.tec = sbus_ioremap(&sdev->resource[7], 0,
-                            sizeof(struct tcx_tec), "tcx tec");
-       all->par.thc = sbus_ioremap(&sdev->resource[9], 0,
-                            sizeof(struct tcx_thc), "tcx thc");
-       all->par.bt = sbus_ioremap(&sdev->resource[8], 0,
-                            sizeof(struct bt_regs), "tcx dac");
+       all->par.tec = of_ioremap(&op->resource[7], 0,
+                                 sizeof(struct tcx_tec), "tcx tec");
+       all->par.thc = of_ioremap(&op->resource[9], 0,
+                                 sizeof(struct tcx_thc), "tcx thc");
+       all->par.bt = of_ioremap(&op->resource[8], 0,
+                                sizeof(struct bt_regs), "tcx dac");
+       all->info.screen_base = of_ioremap(&op->resource[0], 0,
+                                          all->par.fbsize, "tcx ram");
+       if (!all->par.tec || !all->par.thc ||
+           !all->par.bt || !all->info.screen_base) {
+               tcx_unmap_regs(all);
+               kfree(all);
+               return -ENOMEM;
+       }
+
        memcpy(&all->par.mmap_map, &__tcx_mmap_map, sizeof(all->par.mmap_map));
        if (!all->par.lowdepth) {
-               all->par.cplane = sbus_ioremap(&sdev->resource[4], 0,
-                                    all->par.fbsize * sizeof(u32), "tcx cplane");
+               all->par.cplane = of_ioremap(&op->resource[4], 0,
+                                            all->par.fbsize * sizeof(u32),
+                                            "tcx cplane");
+               if (!all->par.cplane) {
+                       tcx_unmap_regs(all);
+                       kfree(all);
+                       return -ENOMEM;
+               }
        } else {
                all->par.mmap_map[1].size = SBUS_MMAP_EMPTY;
                all->par.mmap_map[4].size = SBUS_MMAP_EMPTY;
@@ -400,6 +421,8 @@ static void tcx_init_one(struct sbus_dev *sdev)
        }
 
        all->par.physbase = 0;
+       all->par.which_io = op->resource[0].flags & IORESOURCE_BITS;
+
        for (i = 0; i < TCX_MMAP_ENTRIES; i++) {
                int j;
 
@@ -416,18 +439,11 @@ static void tcx_init_one(struct sbus_dev *sdev)
                        j = i;
                        break;
                };
-               all->par.mmap_map[i].poff = sdev->reg_addrs[j].phys_addr;
+               all->par.mmap_map[i].poff = op->resource[j].start;
        }
 
        all->info.flags = FBINFO_DEFAULT;
        all->info.fbops = &tcx_ops;
-#ifdef CONFIG_SPARC32
-       all->info.screen_base = (char __iomem *)
-               prom_getintdefault(sdev->prom_node, "address", 0);
-#endif
-       if (!all->info.screen_base)
-               all->info.screen_base = sbus_ioremap(&sdev->resource[0], 0,
-                                    all->par.fbsize, "tcx ram");
        all->info.par = &all->par;
 
        /* Initialize brooktree DAC. */
@@ -445,72 +461,88 @@ static void tcx_init_one(struct sbus_dev *sdev)
        tcx_blank(FB_BLANK_UNBLANK, &all->info);
 
        if (fb_alloc_cmap(&all->info.cmap, 256, 0)) {
-               printk(KERN_ERR "tcx: Could not allocate color map.\n");
+               tcx_unmap_regs(all);
                kfree(all);
-               return;
+               return -ENOMEM;
        }
 
        fb_set_cmap(&all->info.cmap, &all->info);
        tcx_init_fix(&all->info, linebytes);
 
-       if (register_framebuffer(&all->info) < 0) {
-               printk(KERN_ERR "tcx: Could not register framebuffer.\n");
+       err = register_framebuffer(&all->info);
+       if (err < 0) {
                fb_dealloc_cmap(&all->info.cmap);
+               tcx_unmap_regs(all);
                kfree(all);
-               return;
+               return err;
        }
 
-       list_add(&all->list, &tcx_list);
+       dev_set_drvdata(&op->dev, all);
 
-       printk("tcx: %s at %lx:%lx, %s\n",
-              sdev->prom_name,
-              (long) sdev->reg_addrs[0].which_io,
-              (long) sdev->reg_addrs[0].phys_addr,
+       printk("%s: TCX at %lx:%lx, %s\n",
+              dp->full_name,
+              all->par.which_io,
+              op->resource[0].start,
               all->par.lowdepth ? "8-bit only" : "24-bit depth");
+
+       return 0;
 }
 
-int __init tcx_init(void)
+static int __devinit tcx_probe(struct of_device *dev, const struct of_device_id *match)
 {
-       struct sbus_bus *sbus;
-       struct sbus_dev *sdev;
+       struct of_device *op = to_of_device(&dev->dev);
 
-       if (fb_get_options("tcxfb", NULL))
-               return -ENODEV;
+       return tcx_init_one(op);
+}
 
-       for_all_sbusdev(sdev, sbus) {
-               if (!strcmp(sdev->prom_name, "SUNW,tcx"))
-                       tcx_init_one(sdev);
-       }
+static int __devexit tcx_remove(struct of_device *dev)
+{
+       struct all_info *all = dev_get_drvdata(&dev->dev);
+
+       unregister_framebuffer(&all->info);
+       fb_dealloc_cmap(&all->info.cmap);
+
+       tcx_unmap_regs(all);
+
+       kfree(all);
+
+       dev_set_drvdata(&dev->dev, NULL);
 
        return 0;
 }
 
-void __exit tcx_exit(void)
-{
-       struct list_head *pos, *tmp;
+static struct of_device_id tcx_match[] = {
+       {
+               .name = "SUNW,tcx",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(of, tcx_match);
 
-       list_for_each_safe(pos, tmp, &tcx_list) {
-               struct all_info *all = list_entry(pos, typeof(*all), list);
+static struct of_platform_driver tcx_driver = {
+       .name           = "tcx",
+       .match_table    = tcx_match,
+       .probe          = tcx_probe,
+       .remove         = __devexit_p(tcx_remove),
+};
 
-               unregister_framebuffer(&all->info);
-               fb_dealloc_cmap(&all->info.cmap);
-               kfree(all);
-       }
+int __init tcx_init(void)
+{
+       if (fb_get_options("tcxfb", NULL))
+               return -ENODEV;
+
+       return of_register_driver(&tcx_driver, &of_bus_type);
 }
 
-int __init
-tcx_setup(char *arg)
+void __exit tcx_exit(void)
 {
-       /* No cmdline options yet... */
-       return 0;
+       of_unregister_driver(&tcx_driver);
 }
 
 module_init(tcx_init);
-
-#ifdef MODULE
 module_exit(tcx_exit);
-#endif
 
 MODULE_DESCRIPTION("framebuffer driver for TCX chipsets");
-MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
+MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
+MODULE_VERSION("2.0");
 MODULE_LICENSE("GPL");
index 5e5328d682db52aee991d6b48fa11951395250ba..239b1496874b826a444e3bb49c9ebc8542a50a62 100644 (file)
@@ -58,7 +58,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 41f8c2d938924ad431359e5b2d0eaa791b26cad6..14175cdb9c9c837ab097e915c7415cf3d1ae0b8d 100644 (file)
@@ -15,7 +15,6 @@
  *     TGUI acceleration       
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/fb.h>
 #include <linux/init.h>
index 2bdeb4baa9529c53426a76dfd27a9b3afbee9c2d..1d76c035050ea2297bbb45139c18412b1725a8e3 100644 (file)
@@ -39,7 +39,6 @@
  *  more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index 15179ec62339f4dd6a02897442ded8bf85d6ab3e..d94efafc77b57362ee8e29e8fdf2e118b69756a4 100644 (file)
@@ -13,7 +13,6 @@
  * archive for more details.  
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/fb.h>
index 0dd532d3a5d60e5a1d62965b89e5b530f15777a2..e8517c3d8e82df3d9b34f9049a29bdedd0a61b0e 100644 (file)
@@ -9,7 +9,6 @@
  *     David Mosberger-Tang, Martin Mares
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
index a767e05b60bf3d03eb9438344246be3bdc71bbfc..1e898144eb7c167bb3a2ad30dc1760c8cb8f19ba 100644 (file)
@@ -24,7 +24,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
index 981fe8ecd78045b315c1709502590d50dd6fb213..ae91555c155894be0b0118bc075e095ae01b5262 100644 (file)
@@ -27,7 +27,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/list.h>
index 6f2617820a4ef3ad001bad832978ea55ad379774..8556097fcda869bf8aea8197ad879c0cfbb6fa41 100644 (file)
@@ -24,7 +24,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
index 583e827baebd9e09e56d8ed572a03516c03ef1d0..34b96114a28d479ae319c0c9524fe942c96cc1eb 100644 (file)
@@ -21,7 +21,6 @@
  *  Boston, MA  02111-1301  USA
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
index b7608af07ce8b44db2c3378f0a1b3f49efb65191..70492ccb43850843dafe2ea0c35945e251a1bd75 100644 (file)
@@ -20,7 +20,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
index 8d45ed6688376461f357ca69d6ec6c9abe3c671a..90a79c784549f108f4929a7865295deaf0a69b23 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
index 94e0a7fd9fc2c30b6954001620a975005a742e29..34d43355beb7212c4226bd248aa68e4bd0e2612e 100644 (file)
@@ -25,7 +25,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/in.h>
 #include <linux/module.h>
 #include <linux/net.h>
index d37416eb57919d8caa20e21b81b37b8ce4701fa9..22f7ccd58d38725f7c23f5064c3ace5047aba97f 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
index d4f0aa3c87f2fc2717413169d5ec651cda144aa8..9dfd259a70b477c4f0bb67d33c4ed2311fde405c 100644 (file)
@@ -31,7 +31,6 @@
 #include <linux/string.h>
 #include <linux/smp_lock.h>
 #include <linux/inet.h>
-#include <linux/version.h>
 #include <linux/pagemap.h>
 #include <linux/idr.h>
 
index 1a8e46084f0e1b25f14dc12417429dd79e94529f..c3c47eda7574fc24a6cbb33e4730a16140c1c988 100644 (file)
@@ -31,7 +31,6 @@
 #include <linux/string.h>
 #include <linux/smp_lock.h>
 #include <linux/inet.h>
-#include <linux/version.h>
 #include <linux/list.h>
 #include <asm/uaccess.h>
 #include <linux/idr.h>
index 8b15bb22cacac67b4d8e6e28ef95e272501ed98e..63320d4e15d260fc0e7800d2bc0d2a54141666ff 100644 (file)
@@ -25,7 +25,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
index 6dc8cfd6d80cf7e57a73e1be4828b945667894d4..53f5c6d6112127661e13703e51b6a8b1e17b95ca 100644 (file)
@@ -326,7 +326,7 @@ source "fs/xfs/Kconfig"
 
 config OCFS2_FS
        tristate "OCFS2 file system support (EXPERIMENTAL)"
-       depends on NET && EXPERIMENTAL
+       depends on NET && SYSFS && EXPERIMENTAL
        select CONFIGFS_FS
        select JBD
        select CRC32
@@ -356,6 +356,16 @@ config OCFS2_FS
                  - POSIX ACLs
                  - readpages / writepages (not user visible)
 
+config OCFS2_DEBUG_MASKLOG
+       bool "OCFS2 logging support"
+       depends on OCFS2_FS
+       default y
+       help
+         The ocfs2 filesystem has an extensive logging system.  The system
+         allows selection of events to log via files in /sys/o2cb/logmask/.
+         This option will enlarge your kernel, but it allows debugging of
+         ocfs2 filesystem issues.
+
 config MINIX_FS
        tristate "Minix fs support"
        help
index 7b075fc397da7bcffece6dcde249afdf2d097f1e..d3c7905b2ddc007decc5084e5a5a6761ac52b43a 100644 (file)
@@ -9,7 +9,6 @@
  *
  *  Common directory handling for ADFS
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
 #include <linux/adfs_fs.h>
index a83e889a97cd7d8d79dd04fe29b5f0f43edbe890..fcaeead9696b135f6481ff93afd7829980d53e5e 100644 (file)
@@ -325,7 +325,7 @@ befs_read_inode(struct inode *inode)
        if (!bh) {
                befs_error(sb, "unable to read inode block - "
                           "inode = %lu", inode->i_ino);
-               goto unaquire_none;
+               goto unacquire_none;
        }
 
        raw_inode = (befs_inode *) bh->b_data;
@@ -334,7 +334,7 @@ befs_read_inode(struct inode *inode)
 
        if (befs_check_inode(sb, raw_inode, inode->i_ino) != BEFS_OK) {
                befs_error(sb, "Bad inode: %lu", inode->i_ino);
-               goto unaquire_bh;
+               goto unacquire_bh;
        }
 
        inode->i_mode = (umode_t) fs32_to_cpu(sb, raw_inode->mode);
@@ -402,17 +402,17 @@ befs_read_inode(struct inode *inode)
                befs_error(sb, "Inode %lu is not a regular file, "
                           "directory or symlink. THAT IS WRONG! BeFS has no "
                           "on disk special files", inode->i_ino);
-               goto unaquire_bh;
+               goto unacquire_bh;
        }
 
        brelse(bh);
        befs_debug(sb, "<--- befs_read_inode()");
        return;
 
-      unaquire_bh:
+      unacquire_bh:
        brelse(bh);
 
-      unaquire_none:
+      unacquire_none:
        make_bad_inode(inode);
        befs_debug(sb, "<--- befs_read_inode() - Bad inode");
        return;
@@ -761,14 +761,14 @@ befs_fill_super(struct super_block *sb, void *data, int silent)
                printk(KERN_ERR
                       "BeFS(%s): Unable to allocate memory for private "
                       "portion of superblock. Bailing.\n", sb->s_id);
-               goto unaquire_none;
+               goto unacquire_none;
        }
        befs_sb = BEFS_SB(sb);
        memset(befs_sb, 0, sizeof(befs_sb_info));
 
        if (!parse_options((char *) data, &befs_sb->mount_opts)) {
                befs_error(sb, "cannot parse mount options");
-               goto unaquire_priv_sbp;
+               goto unacquire_priv_sbp;
        }
 
        befs_debug(sb, "---> befs_fill_super()");
@@ -794,7 +794,7 @@ befs_fill_super(struct super_block *sb, void *data, int silent)
 
        if (!(bh = sb_bread(sb, sb_block))) {
                befs_error(sb, "unable to read superblock");
-               goto unaquire_priv_sbp;
+               goto unacquire_priv_sbp;
        }
 
        /* account for offset of super block on x86 */
@@ -809,20 +809,20 @@ befs_fill_super(struct super_block *sb, void *data, int silent)
        }
 
        if (befs_load_sb(sb, disk_sb) != BEFS_OK)
-               goto unaquire_bh;
+               goto unacquire_bh;
 
        befs_dump_super_block(sb, disk_sb);
 
        brelse(bh);
 
        if (befs_check_sb(sb) != BEFS_OK)
-               goto unaquire_priv_sbp;
+               goto unacquire_priv_sbp;
 
        if( befs_sb->num_blocks > ~((sector_t)0) ) {
                befs_error(sb, "blocks count: %Lu "
                        "is larger than the host can use",
                        befs_sb->num_blocks);
-               goto unaquire_priv_sbp;
+               goto unacquire_priv_sbp;
        }
 
        /*
@@ -838,7 +838,7 @@ befs_fill_super(struct super_block *sb, void *data, int silent)
        if (!sb->s_root) {
                iput(root);
                befs_error(sb, "get root inode failed");
-               goto unaquire_priv_sbp;
+               goto unacquire_priv_sbp;
        }
 
        /* load nls library */
@@ -860,13 +860,13 @@ befs_fill_super(struct super_block *sb, void *data, int silent)
 
        return 0;
 /*****************/
-      unaquire_bh:
+      unacquire_bh:
        brelse(bh);
 
-      unaquire_priv_sbp:
+      unacquire_priv_sbp:
        kfree(sb->s_fs_info);
 
-      unaquire_none:
+      unacquire_none:
        sb->s_fs_info = NULL;
        return -EINVAL;
 }
@@ -925,18 +925,18 @@ init_befs_fs(void)
 
        err = befs_init_inodecache();
        if (err)
-               goto unaquire_none;
+               goto unacquire_none;
 
        err = register_filesystem(&befs_fs_type);
        if (err)
-               goto unaquire_inodecache;
+               goto unacquire_inodecache;
 
        return 0;
 
-unaquire_inodecache:
+unacquire_inodecache:
        befs_destroy_inodecache();
 
-unaquire_none:
+unacquire_none:
        return err;
 }
 
index c94d52eafd1bc3c98c9ca5108228ebd762565d36..a62fd4018a201199fcb113d37920f3a643c3d321 100644 (file)
@@ -16,7 +16,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 00a91dc25d164154fac1326f39129257bc72c94f..32b5d625ce9c7c311835139eea61e8b98896a7b1 100644 (file)
@@ -32,7 +32,6 @@
 #include <asm/uaccess.h>
 #include <asm/pgtable.h>
 
-#include <linux/config.h>
 
 #include <linux/elf.h>
 
index 909cb0595b4e5279a54176cf52e2a2287a4c0bef..9633a490dab0ae71063f86fcbd7c3de72114a2ea 100644 (file)
@@ -5,7 +5,6 @@
  *  Copyright (C) 2001  Andrea Arcangeli <andrea@suse.de> SuSE
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/fcntl.h>
index e9994722f4a30959019e1df6e0516f8da23b9402..3660dcb975912d5a831a7940192df8f53354024d 100644 (file)
@@ -18,7 +18,6 @@
  * async buffer flushing, 1999 Andrea Arcangeli <andrea@suse.de>
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/syscalls.h>
 #include <linux/fs.h>
@@ -852,7 +851,7 @@ int __set_page_dirty_buffers(struct page *page)
                write_lock_irq(&mapping->tree_lock);
                if (page->mapping) {    /* Race with truncate? */
                        if (mapping_cap_account_dirty(mapping))
-                               inc_page_state(nr_dirty);
+                               __inc_zone_page_state(page, NR_FILE_DIRTY);
                        radix_tree_tag_set(&mapping->page_tree,
                                                page_index(page),
                                                PAGECACHE_TAG_DIRTY);
index 97986635b641393dd1b39cfc43eb4acdc1dbfc4e..a4cbc6706ef0062343ca8ef6d2db18c429bd8f2e 100644 (file)
@@ -4,7 +4,6 @@
  *  Copyright (C) 1991, 1992  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/fs.h>
 #include <linux/slab.h>
index 031cdf2932568ae5dea33d4813d5b8bac314e1c5..2e75883b7f549ef4e9f09573fb20900a35a5838b 100644 (file)
@@ -17,7 +17,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 5861eb42e6260135ff491f95512e961e60c3e11a..944d2b9e092d27262e6ec669ff792bdb8a4e0df4 100644 (file)
@@ -324,7 +324,7 @@ out:
        return rc;
 }
 
-/* Try to reaquire byte range locks that were released when session */
+/* Try to reacquire byte range locks that were released when session */
 /* to server was lost */
 static int cifs_relock_file(struct cifsFileInfo *cifsFile)
 {
index f0b10757288f332907af862204c9dd7fa9d53c32..1c82e9a7d7c8a799698e404e1b50b31031ac3021 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/time.h>
 #include <linux/mm.h>
 #include <linux/sysctl.h>
index d8d50a70c58d65064931f6b0b5a8f2fa1beaf1a0..4063a939697768d990faa971a4488efe21f80dcb 100644 (file)
@@ -10,7 +10,6 @@
  * ioctls.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/compat.h>
 #include <linux/kernel.h>
index 207f8006fd6c82cab6fa7e62d07d8ae342dec1b2..df025453dd97648ce94383aff057146d47955f9d 100644 (file)
@@ -211,7 +211,7 @@ static void remove_dir(struct dentry * d)
        struct configfs_dirent * sd;
 
        sd = d->d_fsdata;
-       list_del_init(&sd->s_sibling);
+       list_del_init(&sd->s_sibling);
        configfs_put(sd);
        if (d->d_inode)
                simple_rmdir(parent->d_inode,d);
@@ -330,7 +330,7 @@ static int configfs_detach_prep(struct dentry *dentry)
 
                        ret = configfs_detach_prep(sd->s_dentry);
                        if (!ret)
-                               continue;
+                               continue;
                } else
                        ret = -ENOTEMPTY;
 
@@ -931,7 +931,7 @@ int configfs_rename_dir(struct config_item * item, const char *new_name)
 
        new_dentry = lookup_one_len(new_name, parent, strlen(new_name));
        if (!IS_ERR(new_dentry)) {
-               if (!new_dentry->d_inode) {
+               if (!new_dentry->d_inode) {
                        error = config_item_set_name(item, "%s", new_name);
                        if (!error) {
                                d_add(new_dentry, NULL);
index e5512e295cf2970b865d7ee398ed41d87634e067..fb65e0800a86b66fa6afe2bad9a99c624daddebf 100644 (file)
@@ -66,7 +66,7 @@ static void fill_item_path(struct config_item * item, char * buffer, int length)
 }
 
 static int create_link(struct config_item *parent_item,
-                      struct config_item *item,
+                      struct config_item *item,
                       struct dentry *dentry)
 {
        struct configfs_dirent *target_sd = item->ci_dentry->d_fsdata;
index 48b44a714b3558c5f73099315094799b680b82ff..c6e3535be1928663ad183405336fcdb7a62507f3 100644 (file)
@@ -14,7 +14,6 @@
  * the dcache entry is deleted or garbage collected.
  */
 
-#include <linux/config.h>
 #include <linux/syscalls.h>
 #include <linux/string.h>
 #include <linux/mm.h>
index 8749339bf4f6c5ed45cdaf37239751c4d05663d4..0c4b0674854bbe0a47506a00ea1b5ef4b2529e4d 100644 (file)
@@ -12,7 +12,6 @@
  * to the pair and can be looked up from userspace.
  */
 
-#include <linux/config.h>
 #include <linux/syscalls.h>
 #include <linux/module.h>
 #include <linux/slab.h>
index 66a505422e5cbb8f75756022366a27a16688628b..39640fd034580f66c8f58ed9329e8220d4392c07 100644 (file)
@@ -13,7 +13,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/fs.h>
 #include <linux/pagemap.h>
index 6fa1e04f8415f61d9f866b4d9e4b257c07ac0636..e8ae3042b806464649ceb767b721a0e7b4d9fa79 100644 (file)
@@ -16,7 +16,6 @@
 /* uncomment to get debug messages from the debug filesystem, ah the irony. */
 /* #define DEBUG */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/fs.h>
 #include <linux/mount.h>
index c8494f513eaf578ce674e74219597f7d6f6b47ec..8344ba73a2a670d37d2b08a2587e149490f87eaa 100644 (file)
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -22,7 +22,6 @@
  * formats. 
  */
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/file.h>
 #include <linux/mman.h>
index 433a213a8bd9450f7f1ab3e7926002217d6cf1f9..d4870432ecfc9be0d6d3b35807a57501c2d517f6 100644 (file)
@@ -11,7 +11,6 @@
  *        David S. Miller (davem@caip.rutgers.edu), 1995
  */
 
-#include <linux/config.h>
 #include "ext2.h"
 #include <linux/quotaops.h>
 #include <linux/sched.h>
index 308c252568c6ed131a74377a0ebf9e2262002037..de85c61c58c57548cd302ebace431b29bfee8241 100644 (file)
@@ -12,7 +12,6 @@
  *        David S. Miller (davem@caip.rutgers.edu), 1995
  */
 
-#include <linux/config.h>
 #include <linux/quotaops.h>
 #include <linux/sched.h>
 #include <linux/backing-dev.h>
index d4233b2e6436ec3926110bb7c5160060ba6dd239..9f43879d6d68dd7dd859eb331b988c7f3e6fb754 100644 (file)
@@ -16,7 +16,6 @@
  *        David S. Miller (davem@caip.rutgers.edu), 1995
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/fs.h>
index 67cfeb66e897328869b1a34fb1c709b2aa356779..bf8175b2ced95ed1cb69ed541f76437dbe2f29f0 100644 (file)
@@ -6,7 +6,6 @@
   (C) 2001 Andreas Gruenbacher, <a.gruenbacher@computer.org>
 */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/xattr.h>
 
index 96172e89ddc3ca945eb959db272658fef495e479..a504a40d6d2944206f081ef3beacef1df84f244f 100644 (file)
@@ -11,7 +11,6 @@
  *        David S. Miller (davem@caip.rutgers.edu), 1995
  */
 
-#include <linux/config.h>
 #include <linux/time.h>
 #include <linux/capability.h>
 #include <linux/fs.h>
index dfd811895d8f4564e8a2781c4786132fa1e96eba..5e1337fd878a93c4bbd079e3daea0bf3c2d8ec3d 100644 (file)
@@ -8,7 +8,6 @@
  * This could probably be made into a module, because it is not often in use.
  */
 
-#include <linux/config.h>
 
 #define EXT3FS_DEBUG
 
index b7483360a2db4ab49b796d370d0089b23c6d95f8..f2dd71336612472df0c574af403e4960280310c2 100644 (file)
@@ -16,7 +16,6 @@
  *        David S. Miller (davem@caip.rutgers.edu), 1995
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/fs.h>
index 2ceae38f3d49726293f36997cb5b514a7d05bc2e..6b1ae1c6182c04bf43173a941b422b9f93d29335 100644 (file)
@@ -6,7 +6,6 @@
   (C) 2001 Andreas Gruenbacher, <a.gruenbacher@computer.org>
 */
 
-#include <linux/config.h>
 #include <linux/xattr.h>
 
 /* Magic value in attribute blocks */
index 506d5307108d71be668f4c00d25960c9d7528307..0131ba06e1ee48bc9714805efa8b15a11a21edcc 100644 (file)
@@ -5,7 +5,6 @@
  *  Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/slab.h>
 #include <linux/file.h>
index 031b27a4bc9a170a9436f73353e10864fe78d5d1..892643dc9af10a1a6fbf7c858fd430ab209a5724 100644 (file)
@@ -464,8 +464,8 @@ void sync_inodes_sb(struct super_block *sb, int wait)
                .range_start    = 0,
                .range_end      = LLONG_MAX,
        };
-       unsigned long nr_dirty = read_page_state(nr_dirty);
-       unsigned long nr_unstable = read_page_state(nr_unstable);
+       unsigned long nr_dirty = global_page_state(NR_FILE_DIRTY);
+       unsigned long nr_unstable = global_page_state(NR_UNSTABLE_NFS);
 
        wbc.nr_to_write = nr_dirty + nr_unstable +
                        (inodes_stat.nr_inodes - inodes_stat.nr_unused) +
index d9227bf14e86b2a93cee03e9ef2482c30cc4d2b8..34937ee83ab1052d2510d1ead5d3ca9fdf78af63 100644 (file)
@@ -12,7 +12,6 @@
  * Based on the minix file system code, (C) 1991, 1992 by Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/blkdev.h>
 #include <linux/mount.h>
index 0a92fa2336a2dd3bd88172f5aeb9e958fcd800b8..d279d5924f2857338815f9637567bad248f5a45e 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/pagemap.h>
index f42961eb983b476f66e591939e42450eb64641d0..0bf9f0444a964bb5398e50a533a5a942eb701eae 100644 (file)
@@ -4,7 +4,6 @@
  * (C) 1997 Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/mm.h>
 #include <linux/dcache.h>
@@ -452,15 +451,14 @@ static void prune_icache(int nr_to_scan)
                nr_pruned++;
        }
        inodes_stat.nr_unused -= nr_pruned;
+       if (current_is_kswapd())
+               __count_vm_events(KSWAPD_INODESTEAL, reap);
+       else
+               __count_vm_events(PGINODESTEAL, reap);
        spin_unlock(&inode_lock);
 
        dispose_list(&freeable);
        mutex_unlock(&iprune_mutex);
-
-       if (current_is_kswapd())
-               mod_page_state(kswapd_inodesteal, reap);
-       else
-               mod_page_state(pginodesteal, reap);
 }
 
 /*
index f8aeec3ca10c20985146e292023e5554b2290765..4b7660b09ac0679cd79481bc14727dbd4888eeb5 100644 (file)
@@ -4,7 +4,6 @@
  *  Copyright (C) 1991, 1992  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/syscalls.h>
 #include <linux/mm.h>
 #include <linux/smp_lock.h>
index 7fa76ed53c10333cfd703c97eb1fb25669985e12..93aa5715f224cd5163e070473dc04e6d76409667 100644 (file)
@@ -125,11 +125,24 @@ asmlinkage long sys_ioprio_set(int which, int who, int ioprio)
        return ret;
 }
 
+static int get_task_ioprio(struct task_struct *p)
+{
+       int ret;
+
+       ret = security_task_getioprio(p);
+       if (ret)
+               goto out;
+       ret = p->ioprio;
+out:
+       return ret;
+}
+
 asmlinkage long sys_ioprio_get(int which, int who)
 {
        struct task_struct *g, *p;
        struct user_struct *user;
        int ret = -ESRCH;
+       int tmpio;
 
        read_lock_irq(&tasklist_lock);
        switch (which) {
@@ -139,16 +152,19 @@ asmlinkage long sys_ioprio_get(int which, int who)
                        else
                                p = find_task_by_pid(who);
                        if (p)
-                               ret = p->ioprio;
+                               ret = get_task_ioprio(p);
                        break;
                case IOPRIO_WHO_PGRP:
                        if (!who)
                                who = process_group(current);
                        do_each_task_pid(who, PIDTYPE_PGID, p) {
+                               tmpio = get_task_ioprio(p);
+                               if (tmpio < 0)
+                                       continue;
                                if (ret == -ESRCH)
-                                       ret = p->ioprio;
+                                       ret = tmpio;
                                else
-                                       ret = ioprio_best(ret, p->ioprio);
+                                       ret = ioprio_best(ret, tmpio);
                        } while_each_task_pid(who, PIDTYPE_PGID, p);
                        break;
                case IOPRIO_WHO_USER:
@@ -163,10 +179,13 @@ asmlinkage long sys_ioprio_get(int which, int who)
                        do_each_thread(g, p) {
                                if (p->uid != user->uid)
                                        continue;
+                               tmpio = get_task_ioprio(p);
+                               if (tmpio < 0)
+                                       continue;
                                if (ret == -ESRCH)
-                                       ret = p->ioprio;
+                                       ret = tmpio;
                                else
-                                       ret = ioprio_best(ret, p->ioprio);
+                                       ret = ioprio_best(ret, tmpio);
                        } while_each_thread(g, p);
 
                        if (who)
index 3a39158cca964384e12d73bdbf9b4f7b84c645c6..731816332b12b5a310623fbc85134710714ddd41 100644 (file)
@@ -16,7 +16,6 @@
  * Transparent decompression of files on an iso9660 filesystem
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 
index 5440ea292c6964678ce6038db108633d69363962..27e276987fd2705536e3ea2e00e530f12cbfbe48 100644 (file)
@@ -10,7 +10,6 @@
  * 
  *  isofs directory handling functions
  */
-#include <linux/config.h>
 #include <linux/smp_lock.h>
 #include "isofs.h"
 
index bb11c7fb4019b4c8c1a860f661e704158d8a1321..14391361c8863b63e21fb87f5c2351d752ebcc10 100644 (file)
@@ -11,7 +11,6 @@
  *     2004  Paul Serice - NFS Export Operations
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 
index 5371a403130ae2b95900bc51864e54abc0e7e4df..9000f1effedf9523991c5692f0c61238e1645809 100644 (file)
@@ -55,7 +55,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/slab.h>
 #include <linux/jffs.h>
index c794d923df2ae46d1365c940f4bfa2d00968cbe6..9ee6ad29eff5de856f5401464346a5b110324bc3 100644 (file)
@@ -20,7 +20,6 @@
 #ifndef __LINUX_JFFS_FM_H__
 #define __LINUX_JFFS_FM_H__
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/jffs.h>
 #include <linux/mtd/mtd.h>
index 5c63e0cdcf4c76cb98cbc86e8fae3720023f2439..3681d0728ac7901f2179534ebec0f4d9c88afcf8 100644 (file)
@@ -15,7 +15,6 @@
 #error "The userspace support got too messy and was removed. Update your mkfs.jffs2"
 #endif
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
index 5fa494a792b2ab69cd66b1050620b9ccaee91108..3daf3bca03767050d1580f6731996e1aaa4d6e6f 100644 (file)
@@ -13,7 +13,6 @@
 #ifndef _JFFS2_DEBUG_H_
 #define _JFFS2_DEBUG_H_
 
-#include <linux/config.h>
 
 #ifndef CONFIG_JFFS2_FS_DEBUG
 #define CONFIG_JFFS2_FS_DEBUG 0
index 97caa77d60cf23db5ce8dc98848780e2a1caf49c..4780f82825d6fc3bbea2562b0ab245c40088625f 100644 (file)
@@ -12,7 +12,6 @@
  */
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/fs.h>
index b16c60bbcf6ed191d1ab2c08f75fe0b9dded1ec5..f752baa8d399a2feb1730a264630de22d93372a9 100644 (file)
@@ -14,7 +14,6 @@
 #ifndef __JFFS2_NODELIST_H__
 #define __JFFS2_NODELIST_H__
 
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/types.h>
 #include <linux/jffs2.h>
index 2378a662c2561660e10a592937f771bf74d8241e..68e3953419b4324504cbe8723a9b62e1cb48b3da 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/slab.h>
index ac3d66948e8ceae440e77d944bd2667f9a9e8e76..10c46231ce15c86bd2832c8fb838610368d558c2 100644 (file)
@@ -842,7 +842,7 @@ struct tlock *txLock(tid_t tid, struct inode *ip, struct metapage * mp,
        TXN_UNLOCK();
        release_metapage(mp);
        TXN_LOCK();
-       xtid = tlck->tid;       /* reaquire after dropping TXN_LOCK */
+       xtid = tlck->tid;       /* reacquire after dropping TXN_LOCK */
 
        jfs_info("txLock: in waitLock, tid = %d, xtid = %d, lid = %d",
                 tid, xtid, lid);
index 73d2aba084c62e09d8b1d85f3347ec8e32eae952..4f6cfebc82dbed167db0e5350613aec969f62f8e 100644 (file)
@@ -18,7 +18,6 @@
  */
 
 #include <linux/fs.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/parser.h>
 #include <linux/completion.h>
index 4db62098d3f42da5093747b70077c97c556290c8..5980c45998cc371332085f78abcd467452c41cc0 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/errno.h>
index fd56c8872f3444297aebef53fe3272db18189dba..9a991b52c647d7614cb014100c73b1124751b517 100644 (file)
@@ -12,7 +12,6 @@
  * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/sysctl.h>
index 3ef739120dff32b1a772514be25167e546b7d3af..baf5ae513481f97ade8d76d73a2079dcdfe5dc58 100644 (file)
@@ -20,7 +20,6 @@
  * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
index d210cf304e922f3f2eca906f0ec025cf2832f865..dbb66a3b5cd97ddd49f0b83a71fa177f31b8ec04 100644 (file)
@@ -7,7 +7,6 @@
  * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/time.h>
 #include <linux/slab.h>
index a570e5c8a930fe6525d8c65e96ebb32f285fbc83..2a4df9b3779a154d0a2c9c0a43b87295c9a3b808 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/string.h>
 #include <linux/time.h>
index f22a3764461a365981a29cbe0db61d4d92a97363..033ea4ac2c30be2590f36103d9f2f1fe4dd7023a 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/sched.h>
 #include <linux/utsname.h>
index b3ed212ea416f4686b1c5da0e37895d42bfa677e..fa7ed6a9fc2d2cf79a2633f8f6834311f8051be3 100644 (file)
@@ -8,7 +8,6 @@
  * Heavily rewritten.
  */
 
-#include <linux/config.h>
 #include <linux/syscalls.h>
 #include <linux/slab.h>
 #include <linux/sched.h>
index f0860c602d8bbcc14b51b1d7c96732653bed890c..b4ee89250e952047c20ec8f8d33919089bae46ab 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #include <linux/time.h>
 #include <linux/errno.h>
index 6c51c1198464efff9de569e5c98228b93206cf94..1ddf77b0b825d08282944604e582b78244852704 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <asm/system.h>
index eb3813ad136f192e5c0a7551eefc8cd417d09fb3..42039fe0653c0c3afc546748e060b005ca882fd8 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #include <asm/uaccess.h>
 #include <linux/capability.h>
index 52d60c3d8996210dac419106b1dc7862a6fb8856..e7d5a3097fe60d2ff05dc4d0a1fc28ba9683d867 100644 (file)
@@ -93,7 +93,7 @@ static struct page* ncp_file_mmap_nopage(struct vm_area_struct *area,
         */
        if (type)
                *type = VM_FAULT_MAJOR;
-       inc_page_state(pgmajfault);
+       count_vm_event(PGMAJFAULT);
        return page;
 }
 
index d9ebf6439f59a29793c7041adf0ff49915020e50..551e0bac7aac6fd20476b844c8929e0116002f77 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 
-#include <linux/config.h>
 
 #include "ncplib_kernel.h"
 
index 799e5c2bec55bf7d1f401e2b207d2c1e96e5d312..2441d1ab57dc57abe66ba24126b3b9221b1692bc 100644 (file)
@@ -12,7 +12,6 @@
 #ifndef _NCPLIB_H
 #define _NCPLIB_H
 
-#include <linux/config.h>
 
 #include <linux/fs.h>
 #include <linux/types.h>
index a6ec90cd8894b7ef58372d2b5174808375ae3e25..749a18d33599cb456fe8d1f06360de38e25a1fd6 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #ifdef CONFIG_NCPFS_PACKET_SIGNING
 
index 8783eb7ec6412915f1141c4fb88c162ecf01cbb7..11c2b252ebedd9f63f5da6b5f8d2003bd1baccfa 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #include <linux/time.h>
 #include <linux/errno.h>
index f76b1392a012cbc291de7284437d862dc0c7a253..ca92c240663564c319627de827c58deed0a635ea 100644 (file)
@@ -20,7 +20,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #include <asm/uaccess.h>
 
index d53f8c6a9ecb5483fe0467404d92e895acba5a75..fe0a6b8ac149cbb5cfb5808343948f44990fb752 100644 (file)
@@ -6,7 +6,6 @@
  * NFSv4 callback handling
  */
 
-#include <linux/config.h>
 #include <linux/completion.h>
 #include <linux/ip.h>
 #include <linux/module.h>
index 462cfceb50c508574378fd83d587112a89419809..7719483ecdfc0827171f1a8a8fd5b8a4aef42ba2 100644 (file)
@@ -5,7 +5,6 @@
  *
  * NFSv4 callback procedures
  */
-#include <linux/config.h>
 #include <linux/nfs4.h>
 #include <linux/nfs_fs.h>
 #include "nfs4_fs.h"
index c92991328d9a157bd503ed77fd0f4e2f71fbf29d..29f932192054004c6b0859fdacf89c530cab5a60 100644 (file)
@@ -5,7 +5,6 @@
  *
  * NFSv4 callback encode/decode procedures
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sunrpc/svc.h>
 #include <linux/nfs4.h>
index d3be923d4e437651ae4c6eadade69ec125e71d0e..9540a316c05e6e103a64cffd3dad567a170fbddb 100644 (file)
@@ -6,7 +6,6 @@
  * NFS file delegation management
  *
  */
-#include <linux/config.h>
 #include <linux/completion.h>
 #include <linux/kthread.h>
 #include <linux/module.h>
index 8ca9707be6c9d06f28a843fbe6282afd1d405e77..4cdd1b499e3566d1f31821c2fe776349d64a5bb0 100644 (file)
@@ -38,7 +38,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
index c5b916605fb012b856bdee1c5cc8c8b4d9a8c81a..d349fb2245da4dabe1c44ecd8700e2c90112e8ae 100644 (file)
@@ -13,7 +13,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 
index 96e5b82c153b7f688331549de5fb6c6e16b7a65a..090a36b07a2231a966eb01d3af19fe59d68b43e6 100644 (file)
@@ -38,7 +38,6 @@
  * subsequent patch.
  */
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/smp_lock.h>
 #include <linux/nfs_fs.h>
index d89f6fb3b3a3517fea9679caec85982584ad7d81..36e902a88ca1b92bd9e81cee86317fa18a427d63 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/file.h>
 #include <linux/sunrpc/clnt.h>
@@ -315,6 +314,7 @@ nfs_scan_lock_dirty(struct nfs_inode *nfsi, struct list_head *dst,
                                                req->wb_index, NFS_PAGE_TAG_DIRTY);
                                nfs_list_remove_request(req);
                                nfs_list_add_request(req, dst);
+                               dec_zone_page_state(req->wb_page, NR_FILE_DIRTY);
                                res++;
                        }
                }
index 32cf3773af0cdc0a21b41363e6ddc34c7a40bff2..52bf634260a11c162cd7b5a8859782ff5924a1bd 100644 (file)
@@ -15,7 +15,6 @@
  * within the RPC code when root squashing is suspected.
  */
 
-#include <linux/config.h>
 #include <linux/time.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index db61e51bb154747a949e63788c7bdd3e9765ffd2..2fe3403c24094bce4973b0f1b52b2cc26e760f0a 100644 (file)
@@ -3,7 +3,6 @@
  *
  * Sysctl interface to NFS parameters
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/linkage.h>
 #include <linux/ctype.h>
index 8fccb9cb173ba9588c6f8946ba69cc67485659c2..bca5734ca9fb524f02ce80d814512c0fbbc7e2fe 100644 (file)
@@ -46,7 +46,6 @@
  * Copyright (C) 1996, 1997, Olaf Kirch <okir@monad.swb.de>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/slab.h>
 #include <linux/mm.h>
@@ -497,7 +496,7 @@ nfs_mark_request_dirty(struct nfs_page *req)
        nfs_list_add_request(req, &nfsi->dirty);
        nfsi->ndirty++;
        spin_unlock(&nfsi->req_lock);
-       inc_page_state(nr_dirty);
+       inc_zone_page_state(req->wb_page, NR_FILE_DIRTY);
        mark_inode_dirty(inode);
 }
 
@@ -525,7 +524,7 @@ nfs_mark_request_commit(struct nfs_page *req)
        nfs_list_add_request(req, &nfsi->commit);
        nfsi->ncommit++;
        spin_unlock(&nfsi->req_lock);
-       inc_page_state(nr_unstable);
+       inc_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
        mark_inode_dirty(inode);
 }
 #endif
@@ -609,7 +608,6 @@ nfs_scan_dirty(struct inode *inode, struct list_head *dst, unsigned long idx_sta
        if (nfsi->ndirty != 0) {
                res = nfs_scan_lock_dirty(nfsi, dst, idx_start, npages);
                nfsi->ndirty -= res;
-               sub_page_state(nr_dirty,res);
                if ((nfsi->ndirty == 0) != list_empty(&nfsi->dirty))
                        printk(KERN_ERR "NFS: desynchronized value of nfs_i.ndirty.\n");
        }
@@ -1394,7 +1392,6 @@ static void nfs_commit_done(struct rpc_task *task, void *calldata)
 {
        struct nfs_write_data   *data = calldata;
        struct nfs_page         *req;
-       int res = 0;
 
         dprintk("NFS: %4d nfs_commit_done (status %d)\n",
                                 task->tk_pid, task->tk_status);
@@ -1406,6 +1403,7 @@ static void nfs_commit_done(struct rpc_task *task, void *calldata)
        while (!list_empty(&data->pages)) {
                req = nfs_list_entry(data->pages.next);
                nfs_list_remove_request(req);
+               dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
 
                dprintk("NFS: commit (%s/%Ld %d@%Ld)",
                        req->wb_context->dentry->d_inode->i_sb->s_id,
@@ -1432,9 +1430,7 @@ static void nfs_commit_done(struct rpc_task *task, void *calldata)
                nfs_mark_request_dirty(req);
        next:
                nfs_clear_page_writeback(req);
-               res++;
        }
-       sub_page_state(nr_unstable,res);
 }
 
 static const struct rpc_call_ops nfs_commit_ops = {
index a5a18d4aca40a89661ac5dc219c5041e83ac75bb..c043136a82caa862d9b72d7196047765490064a0 100644 (file)
@@ -4,7 +4,6 @@
  *     This should eventually move to userland.
  *
  */
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/file.h>
 #include <linux/fs.h>
index 3eec30000f3fb3955e029283e8a26bee184b66ba..01bc68c628ad16b92f84ce183e9cf908e09511c3 100644 (file)
@@ -126,7 +126,7 @@ static int expkey_parse(struct cache_detail *cd, char *mesg, int mlen)
        if (*ep)
                goto out;
        dprintk("found fsidtype %d\n", fsidtype);
-       if (fsidtype > 2)
+       if (key_len(fsidtype)==0) /* invalid type */
                goto out;
        if ((len=qword_get(&mesg, buf, PAGE_SIZE)) <= 0)
                goto out;
index dbaf3f93f3283f45e431e788aa23733f5c34b8b3..54b37b1d2e3a90576c5bddd3f24898dd316cd059 100644 (file)
@@ -33,7 +33,6 @@
  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/list.h>
 #include <linux/inet.h>
index 4b6aa60dfcebf81956fcd83cd34eb9f87967780f..bea6b94781145e7707c59dcaaaabf4cb98ea8a3f 100644 (file)
@@ -34,7 +34,6 @@
  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 
index 7c7d01672d35a4dc47bbd5ca5d059adcdc1c6598..9daa0b9feb8d027e438ef39c846daee95cf2d6cf 100644 (file)
@@ -1237,8 +1237,15 @@ find_file(struct inode *ino)
        return NULL;
 }
 
-#define TEST_ACCESS(x) ((x > 0 || x < 4)?1:0)
-#define TEST_DENY(x) ((x >= 0 || x < 5)?1:0)
+static int access_valid(u32 x)
+{
+       return (x > 0 && x < 4);
+}
+
+static int deny_valid(u32 x)
+{
+       return (x >= 0 && x < 5);
+}
 
 static void
 set_access(unsigned int *access, unsigned long bmap) {
@@ -1745,7 +1752,8 @@ nfsd4_process_open2(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nf
        int status;
 
        status = nfserr_inval;
-       if (!TEST_ACCESS(open->op_share_access) || !TEST_DENY(open->op_share_deny))
+       if (!access_valid(open->op_share_access)
+                       || !deny_valid(open->op_share_deny))
                goto out;
        /*
         * Lookup file; if found, lookup stateid and check open request,
@@ -1782,10 +1790,10 @@ nfsd4_process_open2(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nf
        } else {
                /* Stateid was not found, this is a new OPEN */
                int flags = 0;
+               if (open->op_share_access & NFS4_SHARE_ACCESS_READ)
+                       flags |= MAY_READ;
                if (open->op_share_access & NFS4_SHARE_ACCESS_WRITE)
-                       flags = MAY_WRITE;
-               else
-                       flags = MAY_READ;
+                       flags |= MAY_WRITE;
                status = nfs4_new_open(rqstp, &stp, dp, current_fh, flags);
                if (status)
                        goto out;
@@ -2070,16 +2078,12 @@ nfs4_preprocess_stateid_op(struct svc_fh *current_fh, stateid_t *stateid, int fl
        if (!stateid->si_fileid) { /* delegation stateid */
                if(!(dp = find_delegation_stateid(ino, stateid))) {
                        dprintk("NFSD: delegation stateid not found\n");
-                       if (nfs4_in_grace())
-                               status = nfserr_grace;
                        goto out;
                }
                stidp = &dp->dl_stateid;
        } else { /* open or lock stateid */
                if (!(stp = find_stateid(stateid, flags))) {
                        dprintk("NFSD: open or lock stateid not found\n");
-                       if (nfs4_in_grace())
-                               status = nfserr_grace;
                        goto out;
                }
                if ((flags & CHECK_FH) && nfs4_check_fh(current_fh, stp))
@@ -2252,8 +2256,9 @@ nfsd4_open_confirm(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfs
                        (int)current_fh->fh_dentry->d_name.len,
                        current_fh->fh_dentry->d_name.name);
 
-       if ((status = fh_verify(rqstp, current_fh, S_IFREG, 0)))
-               goto out;
+       status = fh_verify(rqstp, current_fh, S_IFREG, 0);
+       if (status)
+               return status;
 
        nfs4_lock_state();
 
@@ -2320,7 +2325,8 @@ nfsd4_open_downgrade(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct n
                        (int)current_fh->fh_dentry->d_name.len,
                        current_fh->fh_dentry->d_name.name);
 
-       if (!TEST_ACCESS(od->od_share_access) || !TEST_DENY(od->od_share_deny))
+       if (!access_valid(od->od_share_access)
+                       || !deny_valid(od->od_share_deny))
                return nfserr_inval;
 
        nfs4_lock_state();
index a1810e6a93e562fe9f5bbf3ed44086bddbf151c4..7046ac9cf97fa14e50743ed1cc4655d4b4ec26f7 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/linkage.h>
index 3f2ec2e6d06c7d4dc80d98749898e0d9e21589ab..ecc439d2565fda18ecbeb460ec18eb5cb3115742 100644 (file)
@@ -187,13 +187,6 @@ fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access)
                        goto out;
                }
 
-               /* Set user creds for this exportpoint */
-               error = nfsd_setuser(rqstp, exp);
-               if (error) {
-                       error = nfserrno(error);
-                       goto out;
-               }
-
                /*
                 * Look up the dentry using the NFS file handle.
                 */
@@ -251,6 +244,14 @@ fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access)
        }
        cache_get(&exp->h);
 
+       /* Set user creds for this exportpoint; necessary even in the "just
+        * checking" case because this may be a filehandle that was created by
+        * fh_compose, and that is about to be used in another nfsv4 compound
+        * operation */
+       error = nfserrno(nfsd_setuser(rqstp, exp));
+       if (error)
+               goto out;
+
        error = nfsd_mode_check(rqstp, dentry->d_inode->i_mode, type);
        if (error)
                goto out;
@@ -312,8 +313,8 @@ int
 fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry, struct svc_fh *ref_fh)
 {
        /* ref_fh is a reference file handle.
-        * if it is non-null, then we should compose a filehandle which is
-        * of the same version, where possible.
+        * if it is non-null and for the same filesystem, then we should compose
+        * a filehandle which is of the same version, where possible.
         * Currently, that means that if ref_fh->fh_handle.fh_version == 0xca
         * Then create a 32byte filehandle using nfs_fhbase_old
         *
@@ -332,7 +333,7 @@ fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry, st
                parent->d_name.name, dentry->d_name.name,
                (inode ? inode->i_ino : 0));
 
-       if (ref_fh) {
+       if (ref_fh && ref_fh->fh_export == exp) {
                ref_fh_version = ref_fh->fh_handle.fh_version;
                if (ref_fh_version == 0xca)
                        ref_fh_fsid_type = 0;
@@ -461,7 +462,7 @@ fh_update(struct svc_fh *fhp)
        } else {
                int size;
                if (fhp->fh_handle.fh_fileid_type != 0)
-                       goto out_uptodate;
+                       goto out;
                datap = fhp->fh_handle.fh_auth+
                        fhp->fh_handle.fh_size/4 -1;
                size = (fhp->fh_maxsize - fhp->fh_handle.fh_size)/4;
@@ -481,10 +482,6 @@ out_negative:
        printk(KERN_ERR "fh_update: %s/%s still negative!\n",
                dentry->d_parent->d_name.name, dentry->d_name.name);
        goto out;
-out_uptodate:
-       printk(KERN_ERR "fh_update: %s/%s already up-to-date!\n",
-               dentry->d_parent->d_name.name, dentry->d_name.name);
-       goto out;
 }
 
 /*
index 3790727e5dfdb8a8fb94ba4c5c7ca497d4ae6ae4..ec1decf29babd194b8ea8f2ae94912f252d770ec 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) 1995, 1996, 1997 Olaf Kirch <okir@monad.swb.de>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/time.h>
index 245eaa1fb59b2959cac3ebfb1a8a9d35c065a324..c9e3b5a8fe07d6ce8a790f668da75898cb0474f7 100644 (file)
@@ -16,7 +16,6 @@
  * Zerocpy NFS support (C) 2002 Hirokazu Takahashi <taka@valinux.co.jp>
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/time.h>
 #include <linux/errno.h>
@@ -673,7 +672,10 @@ nfsd_open(struct svc_rqst *rqstp, struct svc_fh *fhp, int type,
                goto out_nfserr;
 
        if (access & MAY_WRITE) {
-               flags = O_WRONLY|O_LARGEFILE;
+               if (access & MAY_READ)
+                       flags = O_RDWR|O_LARGEFILE;
+               else
+                       flags = O_WRONLY|O_LARGEFILE;
 
                DQUOT_INIT(inode);
        }
@@ -834,7 +836,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
        if (ra && ra->p_set)
                file->f_ra = ra->p_ra;
 
-       if (file->f_op->sendfile) {
+       if (file->f_op->sendfile && rqstp->rq_sendfile_ok) {
                svc_pushback_unused_pages(rqstp);
                err = file->f_op->sendfile(file, &offset, *count,
                                                 nfsd_read_actor, rqstp);
@@ -1517,14 +1519,15 @@ nfsd_link(struct svc_rqst *rqstp, struct svc_fh *ffhp,
                        err = nfserrno(err);
        }
 
-       fh_unlock(ffhp);
        dput(dnew);
+out_unlock:
+       fh_unlock(ffhp);
 out:
        return err;
 
 out_nfserr:
        err = nfserrno(err);
-       goto out;
+       goto out_unlock;
 }
 
 /*
@@ -1553,7 +1556,7 @@ nfsd_rename(struct svc_rqst *rqstp, struct svc_fh *ffhp, char *fname, int flen,
        tdir = tdentry->d_inode;
 
        err = (rqstp->rq_vers == 2) ? nfserr_acces : nfserr_xdev;
-       if (fdir->i_sb != tdir->i_sb)
+       if (ffhp->fh_export != tfhp->fh_export)
                goto out;
 
        err = nfserr_perm;
index a912debcd20b3c27850c4e5754e164888a0a9e9d..9de6b495f1128c09dd7c7d87767473e0431122cd 100644 (file)
@@ -10,7 +10,6 @@
 
 #include <linux/module.h>
 #include <linux/string.h>
-#include <linux/config.h>
 #include <linux/nls.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index c8064cae8f17edfc743c25b886c63135b30dbcf5..beda5bf96405df5f8c630ffe1197395969adf86a 100644 (file)
@@ -24,7 +24,6 @@
 #ifndef _LINUX_NTFS_SYSCTL_H
 #define _LINUX_NTFS_SYSCTL_H
 
-#include <linux/config.h>
 
 #if defined(DEBUG) && defined(CONFIG_SYSCTL)
 
index cca71317b6d6144e5bd381bacb9149a6f9fddde5..f1d1c342ce010a63cabbced4eac868bc134f08f9 100644 (file)
@@ -558,16 +558,9 @@ static int ocfs2_direct_IO_get_blocks(struct inode *inode, sector_t iblock,
        u64 vbo_max; /* file offset, max_blocks from iblock */
        u64 p_blkno;
        int contig_blocks;
-       unsigned char blocksize_bits;
+       unsigned char blocksize_bits = inode->i_sb->s_blocksize_bits;
        unsigned long max_blocks = bh_result->b_size >> inode->i_blkbits;
 
-       if (!inode || !bh_result) {
-               mlog(ML_ERROR, "inode or bh_result is null\n");
-               return -EIO;
-       }
-
-       blocksize_bits = inode->i_sb->s_blocksize_bits;
-
        /* This function won't even be called if the request isn't all
         * nicely aligned and of the right size, so there's no need
         * for us to check any of that. */
index 1d26cfcd9f8406a531ab8acd61a5c813633658a8..504595d6cf65c0f966aaf0d8ee3ce725837ac020 100644 (file)
@@ -517,6 +517,7 @@ static inline void o2hb_prepare_block(struct o2hb_region *reg,
        hb_block->hb_seq = cpu_to_le64(cputime);
        hb_block->hb_node = node_num;
        hb_block->hb_generation = cpu_to_le64(generation);
+       hb_block->hb_dead_ms = cpu_to_le32(o2hb_dead_threshold * O2HB_REGION_TIMEOUT_MS);
 
        /* This step must always happen last! */
        hb_block->hb_cksum = cpu_to_le32(o2hb_compute_block_crc_le(reg,
@@ -645,6 +646,8 @@ static int o2hb_check_slot(struct o2hb_region *reg,
        struct o2nm_node *node;
        struct o2hb_disk_heartbeat_block *hb_block = reg->hr_tmp_block;
        u64 cputime;
+       unsigned int dead_ms = o2hb_dead_threshold * O2HB_REGION_TIMEOUT_MS;
+       unsigned int slot_dead_ms;
 
        memcpy(hb_block, slot->ds_raw_block, reg->hr_block_bytes);
 
@@ -733,6 +736,23 @@ fire_callbacks:
                              &o2hb_live_slots[slot->ds_node_num]);
 
                slot->ds_equal_samples = 0;
+
+               /* We want to be sure that all nodes agree on the
+                * number of milliseconds before a node will be
+                * considered dead. The self-fencing timeout is
+                * computed from this value, and a discrepancy might
+                * result in heartbeat calling a node dead when it
+                * hasn't self-fenced yet. */
+               slot_dead_ms = le32_to_cpu(hb_block->hb_dead_ms);
+               if (slot_dead_ms && slot_dead_ms != dead_ms) {
+                       /* TODO: Perhaps we can fail the region here. */
+                       mlog(ML_ERROR, "Node %d on device %s has a dead count "
+                            "of %u ms, but our count is %u ms.\n"
+                            "Please double check your configuration values "
+                            "for 'O2CB_HEARTBEAT_THRESHOLD'\n",
+                            slot->ds_node_num, reg->hr_dev_name, slot_dead_ms,
+                            dead_ms);
+               }
                goto out;
        }
 
index 73edad782537d0458681751461fd0902c5a96dbd..a42628ba9ddf493a0b8b484f6765810dfb59f612 100644 (file)
 #define MLOG_MASK_PREFIX 0
 #endif
 
+/*
+ * When logging is disabled, force the bit test to 0 for anything other
+ * than errors and notices, allowing gcc to remove the code completely.
+ * When enabled, allow all masks.
+ */
+#if defined(CONFIG_OCFS2_DEBUG_MASKLOG)
+#define ML_ALLOWED_BITS ~0
+#else
+#define ML_ALLOWED_BITS (ML_ERROR|ML_NOTICE)
+#endif
+
 #define MLOG_MAX_BITS 64
 
 struct mlog_bits {
@@ -187,7 +198,8 @@ extern struct mlog_bits mlog_and_bits, mlog_not_bits;
 
 #define mlog(mask, fmt, args...) do {                                  \
        u64 __m = MLOG_MASK_PREFIX | (mask);                            \
-       if (__mlog_test_u64(__m, mlog_and_bits) &&                      \
+       if ((__m & ML_ALLOWED_BITS) &&                                  \
+           __mlog_test_u64(__m, mlog_and_bits) &&                      \
            !__mlog_test_u64(__m, mlog_not_bits)) {                     \
                if (__m & ML_ERROR)                                     \
                        __mlog_printk(KERN_ERR, "ERROR: "fmt , ##args); \
@@ -204,6 +216,7 @@ extern struct mlog_bits mlog_and_bits, mlog_not_bits;
                mlog(ML_ERROR, "status = %lld\n", (long long)_st);      \
 } while (0)
 
+#if defined(CONFIG_OCFS2_DEBUG_MASKLOG)
 #define mlog_entry(fmt, args...) do {                                  \
        mlog(ML_ENTRY, "ENTRY:" fmt , ##args);                          \
 } while (0)
@@ -247,6 +260,13 @@ extern struct mlog_bits mlog_and_bits, mlog_not_bits;
 #define mlog_exit_void() do {                                          \
        mlog(ML_EXIT, "EXIT\n");                                        \
 } while (0)
+#else
+#define mlog_entry(...)  do { } while (0)
+#define mlog_entry_void(...)  do { } while (0)
+#define mlog_exit(...)  do { } while (0)
+#define mlog_exit_ptr(...)  do { } while (0)
+#define mlog_exit_void(...)  do { } while (0)
+#endif  /* defined(CONFIG_OCFS2_DEBUG_MASKLOG) */
 
 #define mlog_bug_on_msg(cond, fmt, args...) do {                       \
        if (cond) {                                                     \
index 94096069cb43a0e11b33d944427522f2a1205317..3f4151da9709a8363a8c34bdcc04dbc5aeaf60bc 100644 (file)
@@ -32,6 +32,7 @@ struct o2hb_disk_heartbeat_block {
        __u8  hb_pad1[3];
        __le32 hb_cksum;
        __le64 hb_generation;
+       __le32 hb_dead_ms;
 };
 
 #endif /* _OCFS2_HEARTBEAT_H */
index 1591eb37a72366dc2e4ecbac76128e2d5b7e0d26..b650efa8c8bebd01991f43284287fdfaa49d1f41 100644 (file)
@@ -396,8 +396,8 @@ static void o2net_set_nn_state(struct o2net_node *nn,
        }
 
        if (was_valid && !valid) {
-               mlog(ML_NOTICE, "no longer connected to " SC_NODEF_FMT "\n",
-                    SC_NODEF_ARGS(old_sc));
+               printk(KERN_INFO "o2net: no longer connected to "
+                      SC_NODEF_FMT "\n", SC_NODEF_ARGS(old_sc));
                o2net_complete_nodes_nsw(nn);
        }
 
@@ -409,10 +409,10 @@ static void o2net_set_nn_state(struct o2net_node *nn,
                 * the only way to start connecting again is to down
                 * heartbeat and bring it back up. */
                cancel_delayed_work(&nn->nn_connect_expired);
-               mlog(ML_NOTICE, "%s " SC_NODEF_FMT "\n", 
-                    o2nm_this_node() > sc->sc_node->nd_num ?
-                       "connected to" : "accepted connection from",
-                    SC_NODEF_ARGS(sc));
+               printk(KERN_INFO "o2net: %s " SC_NODEF_FMT "\n",
+                      o2nm_this_node() > sc->sc_node->nd_num ?
+                               "connected to" : "accepted connection from",
+                      SC_NODEF_ARGS(sc));
        }
 
        /* trigger the connecting worker func as long as we're not valid,
@@ -1280,7 +1280,7 @@ static void o2net_idle_timer(unsigned long data)
 
        do_gettimeofday(&now);
 
-       mlog(ML_NOTICE, "connection to " SC_NODEF_FMT " has been idle for 10 "
+       printk(KERN_INFO "o2net: connection to " SC_NODEF_FMT " has been idle for 10 "
             "seconds, shutting it down.\n", SC_NODEF_ARGS(sc));
        mlog(ML_NOTICE, "here are some times that might help debug the "
             "situation: (tmr %ld.%ld now %ld.%ld dr %ld.%ld adv "
index ae47f450792f81f745d9a6a571b9b4f898adda3a..3d494d1a5f36360bd2f90983c05fff5b9b2f88a5 100644 (file)
@@ -213,11 +213,9 @@ int ocfs2_find_files_on_disk(const char *name,
                             struct ocfs2_dir_entry **dirent)
 {
        int status = -ENOENT;
-       struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
 
-       mlog_entry("(osb=%p, parent=%llu, name='%.*s', blkno=%p, inode=%p)\n",
-                  osb, (unsigned long long)OCFS2_I(inode)->ip_blkno,
-                  namelen, name, blkno, inode);
+       mlog_entry("(name=%.*s, blkno=%p, inode=%p, dirent_bh=%p, dirent=%p)\n",
+                  namelen, name, blkno, inode, dirent_bh, dirent);
 
        *dirent_bh = ocfs2_find_entry(name, namelen, inode, dirent);
        if (!*dirent_bh || !*dirent) {
index 9bdc9cf65991ab1286f25df5311d71853bf04d9c..14530ee7e11d92cd46da8f9a5b41e8ab6fbbaafe 100644 (file)
@@ -822,8 +822,6 @@ int dlm_begin_reco_handler(struct o2net_msg *msg, u32 len, void *data);
 int dlm_finalize_reco_handler(struct o2net_msg *msg, u32 len, void *data);
 int dlm_do_master_requery(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
                          u8 nodenum, u8 *real_master);
-int dlm_lockres_master_requery(struct dlm_ctxt *dlm,
-                              struct dlm_lock_resource *res, u8 *real_master);
 
 
 int dlm_dispatch_assert_master(struct dlm_ctxt *dlm,
index b8c23f7ba67e1caf791af2e8f4f28e8f0c6e6413..8d1065f8b3bdbaf7ccc5def928c4954ea3bd4a24 100644 (file)
@@ -408,12 +408,13 @@ static void __dlm_print_nodes(struct dlm_ctxt *dlm)
 
        assert_spin_locked(&dlm->spinlock);
 
-       mlog(ML_NOTICE, "Nodes in my domain (\"%s\"):\n", dlm->name);
+       printk(KERN_INFO "ocfs2_dlm: Nodes in domain (\"%s\"): ", dlm->name);
 
        while ((node = find_next_bit(dlm->domain_map, O2NM_MAX_NODES,
                                     node + 1)) < O2NM_MAX_NODES) {
-               mlog(ML_NOTICE, " node %d\n", node);
+               printk("%d ", node);
        }
+       printk("\n");
 }
 
 static int dlm_exit_domain_handler(struct o2net_msg *msg, u32 len, void *data)
@@ -429,7 +430,7 @@ static int dlm_exit_domain_handler(struct o2net_msg *msg, u32 len, void *data)
 
        node = exit_msg->node_idx;
 
-       mlog(0, "Node %u leaves domain %s\n", node, dlm->name);
+       printk(KERN_INFO "ocfs2_dlm: Node %u leaves domain %s\n", node, dlm->name);
 
        spin_lock(&dlm->spinlock);
        clear_bit(node, dlm->domain_map);
@@ -678,6 +679,8 @@ static int dlm_assert_joined_handler(struct o2net_msg *msg, u32 len, void *data)
                set_bit(assert->node_idx, dlm->domain_map);
                __dlm_set_joining_node(dlm, DLM_LOCK_RES_OWNER_UNKNOWN);
 
+               printk(KERN_INFO "ocfs2_dlm: Node %u joins domain %s\n",
+                      assert->node_idx, dlm->name);
                __dlm_print_nodes(dlm);
 
                /* notify anything attached to the heartbeat events */
index 29b2845f370d85b1a4b642af386553cd6178f708..594745fab0b5aa0ebcbccfc16d9090e65af4ac80 100644 (file)
@@ -95,6 +95,9 @@ static void dlm_reco_unlock_ast(void *astdata, enum dlm_status st);
 static void dlm_request_all_locks_worker(struct dlm_work_item *item,
                                         void *data);
 static void dlm_mig_lockres_worker(struct dlm_work_item *item, void *data);
+static int dlm_lockres_master_requery(struct dlm_ctxt *dlm,
+                                     struct dlm_lock_resource *res,
+                                     u8 *real_master);
 
 static u64 dlm_get_next_mig_cookie(void);
 
@@ -1484,8 +1487,9 @@ leave:
 
 
 
-int dlm_lockres_master_requery(struct dlm_ctxt *dlm,
-                              struct dlm_lock_resource *res, u8 *real_master)
+static int dlm_lockres_master_requery(struct dlm_ctxt *dlm,
+                                     struct dlm_lock_resource *res,
+                                     u8 *real_master)
 {
        struct dlm_node_iter iter;
        int nodenum;
index 4acd37286bdd7cb4b0807da5b338a9f6753ffb99..762eb1fbb34d87f67c7abcd6fe95e31a40590332 100644 (file)
@@ -2071,8 +2071,7 @@ int ocfs2_dlm_init(struct ocfs2_super *osb)
        }
 
        /* launch vote thread */
-       osb->vote_task = kthread_run(ocfs2_vote_thread, osb, "ocfs2vote-%d",
-                                    osb->osb_id);
+       osb->vote_task = kthread_run(ocfs2_vote_thread, osb, "ocfs2vote");
        if (IS_ERR(osb->vote_task)) {
                status = PTR_ERR(osb->vote_task);
                osb->vote_task = NULL;
index 1a5c69071df642afbe99a04ed348b33c955c9861..fcd4475d1f899754bb5ed61fa069b149a5e48c20 100644 (file)
@@ -298,7 +298,7 @@ static int ocfs2_extent_map_find_leaf(struct inode *inode,
 
                ret = ocfs2_extent_map_insert(inode, rec,
                                              le16_to_cpu(el->l_tree_depth));
-               if (ret) {
+               if (ret && (ret != -EEXIST)) {
                        mlog_errno(ret);
                        goto out_free;
                }
@@ -427,6 +427,11 @@ static int ocfs2_extent_map_insert_entry(struct ocfs2_extent_map *em,
 /*
  * Simple rule: on any return code other than -EAGAIN, anything left
  * in the insert_context will be freed.
+ *
+ * Simple rule #2: A return code of -EEXIST from this function or
+ * its calls to ocfs2_extent_map_insert_entry() signifies that another
+ * thread beat us to the insert.  It is not an actual error, but it
+ * tells the caller we have no more work to do.
  */
 static int ocfs2_extent_map_try_insert(struct inode *inode,
                                       struct ocfs2_extent_rec *rec,
@@ -448,22 +453,32 @@ static int ocfs2_extent_map_try_insert(struct inode *inode,
                goto out_unlock;
        }
 
+       /* Since insert_entry failed, the map MUST have old_ent */
        old_ent = ocfs2_extent_map_lookup(em, le32_to_cpu(rec->e_cpos),
-                                         le32_to_cpu(rec->e_clusters), NULL,
-                                         NULL);
+                                         le32_to_cpu(rec->e_clusters),
+                                         NULL, NULL);
 
        BUG_ON(!old_ent);
 
-       ret = -EEXIST;
-       if (old_ent->e_tree_depth < tree_depth)
+       if (old_ent->e_tree_depth < tree_depth) {
+               /* Another thread beat us to the lower tree_depth */
+               ret = -EEXIST;
                goto out_unlock;
+       }
 
        if (old_ent->e_tree_depth == tree_depth) {
+               /*
+                * Another thread beat us to this tree_depth.
+                * Let's make sure we agree with that thread (the
+                * extent_rec should be identical).
+                */
                if (!memcmp(rec, &old_ent->e_rec,
                            sizeof(struct ocfs2_extent_rec)))
                        ret = 0;
+               else
+                       /* FIXME: Should this be ESRCH/EBADR??? */
+                       ret = -EEXIST;
 
-               /* FIXME: Should this be ESRCH/EBADR??? */
                goto out_unlock;
        }
 
@@ -599,7 +614,7 @@ static int ocfs2_extent_map_insert(struct inode *inode,
                                                  tree_depth, &ctxt);
        } while (ret == -EAGAIN);
 
-       if (ret < 0)
+       if ((ret < 0) && (ret != -EEXIST))
                mlog_errno(ret);
 
        if (ctxt.left_ent)
index 910a601b2e9820cf4986e3e620faa534277cf072..f92bf1dd379a3faa46482d712c3f861aff8eb98e 100644 (file)
@@ -784,8 +784,7 @@ int ocfs2_journal_load(struct ocfs2_journal *journal)
        }
 
        /* Launch the commit thread */
-       osb->commit_task = kthread_run(ocfs2_commit_thread, osb, "ocfs2cmt-%d",
-                                      osb->osb_id);
+       osb->commit_task = kthread_run(ocfs2_commit_thread, osb, "ocfs2cmt");
        if (IS_ERR(osb->commit_task)) {
                status = PTR_ERR(osb->commit_task);
                osb->commit_task = NULL;
@@ -1118,7 +1117,7 @@ void ocfs2_recovery_thread(struct ocfs2_super *osb, int node_num)
                goto out;
 
        osb->recovery_thread_task =  kthread_run(__ocfs2_recovery_thread, osb,
-                                                "ocfs2rec-%d", osb->osb_id);
+                                                "ocfs2rec");
        if (IS_ERR(osb->recovery_thread_task)) {
                mlog_errno((int)PTR_ERR(osb->recovery_thread_task));
                osb->recovery_thread_task = NULL;
index 843cf9ddefe8aa659b09c23138da2184717074b2..83934e33e5b06de784e108672e552a4eb507feaf 100644 (file)
@@ -46,12 +46,12 @@ static struct page *ocfs2_nopage(struct vm_area_struct * area,
                                 unsigned long address,
                                 int *type)
 {
-       struct inode *inode = area->vm_file->f_dentry->d_inode;
        struct page *page = NOPAGE_SIGBUS;
        sigset_t blocked, oldset;
        int ret;
 
-       mlog_entry("(inode %lu, address %lu)\n", inode->i_ino, address);
+       mlog_entry("(area=%p, address=%lu, type=%p)\n", area, address,
+                  type);
 
        /* The best way to deal with signals in this path is
         * to block them upfront, rather than allowing the
index da1093039c01c0527fb21c970439dc113b19cf6a..cd4a6f253d13ac0a6bf7c70a50df905daccc6bec 100644 (file)
@@ -184,7 +184,6 @@ struct ocfs2_journal;
 struct ocfs2_journal_handle;
 struct ocfs2_super
 {
-       u32 osb_id;             /* id used by the proc interface */
        struct task_struct *commit_task;
        struct super_block *sb;
        struct inode *root_inode;
@@ -222,13 +221,11 @@ struct ocfs2_super
        unsigned long s_mount_opt;
 
        u16 max_slots;
-       u16 num_nodes;
        s16 node_num;
        s16 slot_num;
        int s_sectsize_bits;
        int s_clustersize;
        int s_clustersize_bits;
-       struct proc_dir_entry *proc_sub_dir; /* points to /proc/fs/ocfs2/<maj_min> */
 
        atomic_t vol_state;
        struct mutex recovery_lock;
@@ -294,7 +291,6 @@ struct ocfs2_super
 };
 
 #define OCFS2_SB(sb)       ((struct ocfs2_super *)(sb)->s_fs_info)
-#define OCFS2_MAX_OSB_ID             65536
 
 static inline int ocfs2_should_order_data(struct inode *inode)
 {
index 871627961d6df49a5a476c9a486e576c7ee417bf..aa6f5aadedc4f9f0d169e8b456e1d1e081b26c92 100644 (file)
@@ -264,7 +264,7 @@ int ocfs2_find_slot(struct ocfs2_super *osb)
        osb->slot_num = slot;
        spin_unlock(&si->si_lock);
 
-       mlog(ML_NOTICE, "taking node slot %d\n", osb->slot_num);
+       mlog(0, "taking node slot %d\n", osb->slot_num);
 
        status = ocfs2_update_disk_slots(osb, si);
        if (status < 0)
index cdf73393f094ee95667bb25654c9697991e79de0..382706a67ffdce24decb8349851384739e2d05e3 100644 (file)
 
 #include "buffer_head_io.h"
 
-/*
- * Globals
- */
-static spinlock_t ocfs2_globals_lock = SPIN_LOCK_UNLOCKED;
-
-static u32 osb_id;             /* Keeps track of next available OSB Id */
-
 static kmem_cache_t *ocfs2_inode_cachep = NULL;
 
 kmem_cache_t *ocfs2_lock_cache = NULL;
@@ -642,10 +635,9 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent)
 
        ocfs2_complete_mount_recovery(osb);
 
-       printk("ocfs2: Mounting device (%u,%u) on (node %d, slot %d) with %s "
-              "data mode.\n",
-              MAJOR(sb->s_dev), MINOR(sb->s_dev), osb->node_num,
-              osb->slot_num,
+       printk(KERN_INFO "ocfs2: Mounting device (%s) on (node %d, slot %d) "
+              "with %s data mode.\n",
+              osb->dev_str, osb->node_num, osb->slot_num,
               osb->s_mount_opt & OCFS2_MOUNT_DATA_WRITEBACK ? "writeback" :
               "ordered");
 
@@ -800,10 +792,6 @@ static int __init ocfs2_init(void)
                goto leave;
        }
 
-       spin_lock(&ocfs2_globals_lock);
-       osb_id = 0;
-       spin_unlock(&ocfs2_globals_lock);
-
        ocfs2_debugfs_root = debugfs_create_dir("ocfs2", NULL);
        if (!ocfs2_debugfs_root) {
                status = -EFAULT;
@@ -1020,7 +1008,7 @@ static int ocfs2_fill_local_node_info(struct ocfs2_super *osb)
                goto bail;
        }
 
-       mlog(ML_NOTICE, "I am node %d\n", osb->node_num);
+       mlog(0, "I am node %d\n", osb->node_num);
 
        status = 0;
 bail:
@@ -1191,8 +1179,8 @@ static void ocfs2_dismount_volume(struct super_block *sb, int mnt_err)
 
        atomic_set(&osb->vol_state, VOLUME_DISMOUNTED);
 
-       printk("ocfs2: Unmounting device (%u,%u) on (node %d)\n",
-              MAJOR(osb->sb->s_dev), MINOR(osb->sb->s_dev), osb->node_num);
+       printk(KERN_INFO "ocfs2: Unmounting device (%s) on (node %d)\n",
+              osb->dev_str, osb->node_num);
 
        ocfs2_delete_osb(osb);
        kfree(osb);
@@ -1212,8 +1200,6 @@ static int ocfs2_setup_osb_uuid(struct ocfs2_super *osb, const unsigned char *uu
        if (osb->uuid_str == NULL)
                return -ENOMEM;
 
-       memcpy(osb->uuid, uuid, OCFS2_VOL_UUID_LEN);
-
        for (i = 0, ptr = osb->uuid_str; i < OCFS2_VOL_UUID_LEN; i++) {
                /* print with null */
                ret = snprintf(ptr, 3, "%02X", uuid[i]);
@@ -1311,13 +1297,6 @@ static int ocfs2_initialize_super(struct super_block *sb,
                goto bail;
        }
 
-       osb->uuid = kmalloc(OCFS2_VOL_UUID_LEN, GFP_KERNEL);
-       if (!osb->uuid) {
-               mlog(ML_ERROR, "unable to alloc uuid\n");
-               status = -ENOMEM;
-               goto bail;
-       }
-
        di = (struct ocfs2_dinode *)bh->b_data;
 
        osb->max_slots = le16_to_cpu(di->id2.i_super.s_max_slots);
@@ -1327,7 +1306,7 @@ static int ocfs2_initialize_super(struct super_block *sb,
                status = -EINVAL;
                goto bail;
        }
-       mlog(ML_NOTICE, "max_slots for this device: %u\n", osb->max_slots);
+       mlog(0, "max_slots for this device: %u\n", osb->max_slots);
 
        init_waitqueue_head(&osb->osb_wipe_event);
        osb->osb_orphan_wipes = kcalloc(osb->max_slots,
@@ -1418,7 +1397,7 @@ static int ocfs2_initialize_super(struct super_block *sb,
                goto bail;
        }
 
-       memcpy(&uuid_net_key, &osb->uuid[i], sizeof(osb->net_key));
+       memcpy(&uuid_net_key, di->id2.i_super.s_uuid, sizeof(uuid_net_key));
        osb->net_key = le32_to_cpu(uuid_net_key);
 
        strncpy(osb->vol_label, di->id2.i_super.s_label, 63);
@@ -1484,18 +1463,6 @@ static int ocfs2_initialize_super(struct super_block *sb,
                goto bail;
        }
 
-       /*  Link this osb onto the global linked list of all osb structures. */
-       /*  The Global Link List is mainted for the whole driver . */
-       spin_lock(&ocfs2_globals_lock);
-       osb->osb_id = osb_id;
-       if (osb_id < OCFS2_MAX_OSB_ID)
-               osb_id++;
-       else {
-               mlog(ML_ERROR, "Too many volumes mounted\n");
-               status = -ENOMEM;
-       }
-       spin_unlock(&ocfs2_globals_lock);
-
 bail:
        mlog_exit(status);
        return status;
index 0c8a1294ec967f70e0906a9dfd37a5674da11113..c0f68aa6c17515c3353547ab1dd78ee169eb4b6a 100644 (file)
@@ -154,7 +154,7 @@ static void *ocfs2_follow_link(struct dentry *dentry,
        }
 
        status = vfs_follow_link(nd, link);
-       if (status)
+       if (status && status != -ENOENT)
                mlog_errno(status);
 bail:
        if (page) {
index c05085710fce5a32c689620c915dd3f9bf519712..1bc9f372c7d4cbf94c676f128ef66db757afb386 100644 (file)
@@ -12,7 +12,6 @@
  *  every single manufacturer of SCSI and IDE cards created their own
  *  method.
  */
-#include <linux/config.h>
 #include <linux/buffer_head.h>
 #include <linux/adfs_fs.h>
 
index 0f5b017aebad2ad1adb6657d819c52fa4b936153..63730282ad813688410809c25d22055c5cb38570 100644 (file)
@@ -91,7 +91,6 @@
  * - Code works, detects all the partitions.
  *
  ************************************************************/
-#include <linux/config.h>
 #include <linux/crc32.h>
 #include "check.h"
 #include "efi.h"
index c44fb0561448603fea42f9f758834b3ea641ad2b..2cc89d0475bff121145a423cd928cc71a31f3cea 100644 (file)
@@ -26,7 +26,6 @@
 #define FS_PART_EFI_H_INCLUDED
 
 #include <linux/types.h>
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/genhd.h>
 #include <linux/kernel.h>
index 830c55d86ab1f8e1a9903097e56ea8091efbe50e..d352a7381fed88ff20f5f1c7b9b6365a2264e436 100644 (file)
@@ -6,7 +6,6 @@
  * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000
  */
 
-#include <linux/config.h>
 #include <linux/buffer_head.h>
 #include <linux/hdreg.h>
 #include <linux/slab.h>
index 813292f21210d73ffa47f4013fab164743e9a3f9..c0871002d00d00f8c036d8b3a873f5a7e31a765b 100644 (file)
@@ -6,7 +6,6 @@
  *  Re-organised Feb 1998 Russell King
  */
 
-#include <linux/config.h>
 #include <linux/ctype.h>
 #include "check.h"
 #include "mac.h"
index 9935d254186ef10276781815193995895b3dab8b..8f12587c3129731fcd92392b41f8c86a9be3c646 100644 (file)
@@ -19,7 +19,6 @@
  *  Re-organised Feb 1998 Russell King
  */
 
-#include <linux/config.h>
 
 #include "check.h"
 #include "msdos.h"
index 7a76ad5702302e7e975d9cd49ce64fdec9daf6c4..7495d3e207757ab29ef9ef2a3dd717187ec5c228 100644 (file)
@@ -52,7 +52,6 @@
  *                      :  base.c too.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/time.h>
index 6ba7785319de46dd2020c6b1132c2bf9e4462fe9..243a94af0427b2630fb85f489a5419410dac3bfc 100644 (file)
@@ -49,7 +49,6 @@
 
 #include <asm/uaccess.h>
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/time.h>
 #include <linux/proc_fs.h>
index 17f6e8fa13978801e939a2a9cf749fcae8d7bf4f..036d14d836271b9cba65ca044988614c091e6019 100644 (file)
@@ -9,7 +9,6 @@
  *     Safe accesses to vmalloc/direct-mapped discontiguous areas, Kanoj Sarcar <kanoj@sgi.com>
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/proc_fs.h>
 #include <linux/user.h>
index 5c10ea1574251c0e0809e3800d0dc05e144d01c4..9f2cfc30f9cfc0176ac6096e87df859b4c52cd3d 100644 (file)
@@ -26,7 +26,6 @@
 #include <linux/mman.h>
 #include <linux/proc_fs.h>
 #include <linux/ioport.h>
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/mmzone.h>
 #include <linux/pagemap.h>
@@ -120,7 +119,6 @@ static int meminfo_read_proc(char *page, char **start, off_t off,
 {
        struct sysinfo i;
        int len;
-       struct page_state ps;
        unsigned long inactive;
        unsigned long active;
        unsigned long free;
@@ -129,7 +127,6 @@ static int meminfo_read_proc(char *page, char **start, off_t off,
        struct vmalloc_info vmi;
        long cached;
 
-       get_page_state(&ps);
        get_zone_counts(&active, &inactive, &free);
 
 /*
@@ -142,7 +139,8 @@ static int meminfo_read_proc(char *page, char **start, off_t off,
        allowed = ((totalram_pages - hugetlb_total_pages())
                * sysctl_overcommit_ratio / 100) + total_swap_pages;
 
-       cached = get_page_cache_size() - total_swapcache_pages - i.bufferram;
+       cached = global_page_state(NR_FILE_PAGES) -
+                       total_swapcache_pages - i.bufferram;
        if (cached < 0)
                cached = 0;
 
@@ -167,11 +165,14 @@ static int meminfo_read_proc(char *page, char **start, off_t off,
                "SwapFree:     %8lu kB\n"
                "Dirty:        %8lu kB\n"
                "Writeback:    %8lu kB\n"
+               "AnonPages:    %8lu kB\n"
                "Mapped:       %8lu kB\n"
                "Slab:         %8lu kB\n"
+               "PageTables:   %8lu kB\n"
+               "NFS Unstable: %8lu kB\n"
+               "Bounce:       %8lu kB\n"
                "CommitLimit:  %8lu kB\n"
                "Committed_AS: %8lu kB\n"
-               "PageTables:   %8lu kB\n"
                "VmallocTotal: %8lu kB\n"
                "VmallocUsed:  %8lu kB\n"
                "VmallocChunk: %8lu kB\n",
@@ -188,13 +189,16 @@ static int meminfo_read_proc(char *page, char **start, off_t off,
                K(i.freeram-i.freehigh),
                K(i.totalswap),
                K(i.freeswap),
-               K(ps.nr_dirty),
-               K(ps.nr_writeback),
-               K(ps.nr_mapped),
-               K(ps.nr_slab),
+               K(global_page_state(NR_FILE_DIRTY)),
+               K(global_page_state(NR_WRITEBACK)),
+               K(global_page_state(NR_ANON_PAGES)),
+               K(global_page_state(NR_FILE_MAPPED)),
+               K(global_page_state(NR_SLAB)),
+               K(global_page_state(NR_PAGETABLE)),
+               K(global_page_state(NR_UNSTABLE_NFS)),
+               K(global_page_state(NR_BOUNCE)),
                K(allowed),
                K(committed),
-               K(ps.nr_page_table_pages),
                (unsigned long)VMALLOC_TOTAL >> 10,
                vmi.used >> 10,
                vmi.largest_chunk >> 10
index 9995356ce73e573285ff2ed3623f04fc72fcbfcc..8901c65caca83be55d575ea70d51411435d5410e 100644 (file)
@@ -12,7 +12,6 @@
 #include <linux/time.h>
 #include <linux/proc_fs.h>
 #include <linux/stat.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/bitops.h>
index 20d4b2237fcefd482112a3752669fe87004884bf..d96050728c43841c048ff3c4a181c1431f918e10 100644 (file)
@@ -7,7 +7,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/proc_fs.h>
 #include <linux/user.h>
index 46efbf52cbeca2c1962c1222bde634393193206c..8425cf6e96248c5eb16a4c802d03b845b43d0af3 100644 (file)
@@ -13,7 +13,6 @@
  * 28-06-1998 by Frank Denis : qnx4_free_inode (to be fixed) .
  */
 
-#include <linux/config.h>
 #include <linux/time.h>
 #include <linux/fs.h>
 #include <linux/qnx4_fs.h>
index 9031948fefd056104a4822ab4f193529f70a1475..0d7103fa0df5c253217f313f0d5b9599867216ab 100644 (file)
@@ -11,7 +11,6 @@
  * 20-06-1998 by Frank Denis : Linux 2.1.99+ & dcache support.
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
index df5bc75d5414374a02018cb62b737889bd137d08..aa3b19544beea6aeb93bf30ceb5c1229f068aacf 100644 (file)
@@ -10,7 +10,6 @@
  * 24-03-1998 by Richard Frowijn : first release.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/time.h>
 #include <linux/stat.h>
index 8bc182a88748a91abbdc7b46032d81ac5c9ad9fa..5a903491e6972577ef38ee98a1d1c5fb1ddfc1e7 100644 (file)
@@ -12,7 +12,6 @@
  * 30-06-1998 by Frank Denis : first step to write inodes.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index 4af4951d7f54fc1c9f6a763bf5df7c1f150f683d..c3d83f67154a61c2fe39421d7809a04d4769577b 100644 (file)
@@ -12,7 +12,6 @@
  * 04-07-1998 by Frank Denis : first step for rmdir/unlink.
  */
 
-#include <linux/config.h>
 #include <linux/time.h>
 #include <linux/fs.h>
 #include <linux/qnx4_fs.h>
index 86563ec01b395645eb2a85df4a7d9237eeda09d6..6437c1c3d1dd077d2ecbc9fb98ee16c4dcb54da6 100644 (file)
@@ -10,7 +10,6 @@
  * 30-06-1998 by Frank DENIS : ugly filler.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
index 909f71e9a30f4887c171b42dc5d8c799b4d03f6a..4a7dbdee1b6d73f1d1ae8fb44becb0410c6e58d1 100644 (file)
@@ -3,7 +3,6 @@
  */
 /* Reiserfs block (de)allocator, bitmap-based. */
 
-#include <linux/config.h>
 #include <linux/time.h>
 #include <linux/reiserfs_fs.h>
 #include <linux/errno.h>
index 973c819f803387a9f5adce136825c62bdeea4010..9aabcc0ccd2d002401e7611a93f5f6b8458136c0 100644 (file)
@@ -2,7 +2,6 @@
  * Copyright 2000 by Hans Reiser, licensing governed by reiserfs/README
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
index b2264ba3cc569d4ca639eab826d56d085453b07e..fba304e64de81d51805d52434b152a6fc8aed50b 100644 (file)
@@ -15,7 +15,6 @@
  **
  **/
 
-#include <linux/config.h>
 #include <asm/uaccess.h>
 #include <linux/time.h>
 #include <linux/reiserfs_fs.h>
index 5600d3d60cf7d9f467ff5fc0f0046cc0adb8070f..6d0e554daa9d845fd9a608826654f84cc6834f59 100644 (file)
@@ -34,7 +34,6 @@
  ** 
  **/
 
-#include <linux/config.h>
 #include <linux/time.h>
 #include <linux/string.h>
 #include <linux/reiserfs_fs.h>
index 6c5a726fd34bf8920da792af32563bc6a47bbc81..de391a82b9999830cb8eb89b3633b960ac96e2e8 100644 (file)
@@ -2,7 +2,6 @@
  * Copyright 2000 by Hans Reiser, licensing governed by reiserfs/README
  */
 
-#include <linux/config.h>
 #include <asm/uaccess.h>
 #include <linux/string.h>
 #include <linux/time.h>
index a24858a632fab85ef57f3ebf291a8a2235f2f182..477eaa2fcf6aac9cccbf04eb949752afb91e7795 100644 (file)
@@ -2,7 +2,6 @@
  * Copyright 2000 by Hans Reiser, licensing governed by reiserfs/README
  */
 
-#include <linux/config.h>
 #include <linux/time.h>
 #include <linux/fs.h>
 #include <linux/reiserfs_fs.h>
index 49d1a53dbef0e80f9dc2bea5ec61e415a8b53a5d..9b3672d69367251b6109c6550c5e8e7f81986634 100644 (file)
@@ -34,7 +34,6 @@
 **                     from within kupdate, it will ignore the immediate flag
 */
 
-#include <linux/config.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
 
index 2533c1f64aba16b1d30d27ba3420afb1217cf092..281f8061ac58112579d82c5a2078327aff576d59 100644 (file)
@@ -2,7 +2,6 @@
  * Copyright 2000 by Hans Reiser, licensing governed by reiserfs/README
  */
 
-#include <linux/config.h>
 #include <asm/uaccess.h>
 #include <linux/string.h>
 #include <linux/time.h>
index 284f7852de8b00e53211e40822d935acef0d9a67..c61710e49c6244e9559cb0f1b0fb92e24442d59f 100644 (file)
@@ -11,7 +11,6 @@
  * NO WARRANTY
  */
 
-#include <linux/config.h>
 #include <linux/time.h>
 #include <linux/bitops.h>
 #include <linux/reiserfs_fs.h>
index f62590aa9c956a89af2529e181d60e9060aecb8a..65feba4deb69a778168cf12ae42133fe8d115c3d 100644 (file)
@@ -2,7 +2,6 @@
  * Copyright 2000 by Hans Reiser, licensing governed by reiserfs/README
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/random.h>
 #include <linux/time.h>
index 27bd3a1df2ad0146663c995856c319a78d9fc2f2..bc808a91eeaa75fba63c211667b3869a295ce1ed 100644 (file)
@@ -2,7 +2,6 @@
  * Copyright 2000 by Hans Reiser, licensing governed by reiserfs/README
  */
 
-#include <linux/config.h>
 #include <linux/time.h>
 #include <linux/fs.h>
 #include <linux/reiserfs_fs.h>
index 731688e1cfe334608001da8648f9d8c051d2b1c1..5d8a8cfebc7042282cc5e589021e86361dd0d66d 100644 (file)
@@ -10,7 +10,6 @@
 
 /* $Id: procfs.c,v 1.1.8.2 2001/07/15 17:08:42 god Exp $ */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/time.h>
 #include <linux/seq_file.h>
index d2b25e1ba6e9739c5bd49b58945d50a7956fb74d..8b9b131271363f2f9b3ef5ed9bcd7fa55a35cab2 100644 (file)
@@ -49,7 +49,6 @@
  * reiserfs_insert_item
  */
 
-#include <linux/config.h>
 #include <linux/time.h>
 #include <linux/string.h>
 #include <linux/pagemap.h>
index 00f1321e9209e2f21c5123ba6fe767509916b710..28eb3c886034481e8093342d7c7225b125c27f5d 100644 (file)
@@ -11,7 +11,6 @@
  * NO WARRANTY
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/vmalloc.h>
 #include <linux/time.h>
index 196e971c03c9aa93e92e087b60012ee4eed33df9..36f108fc1cf5fde849204bdc14a146e72fb7e600 100644 (file)
@@ -2,7 +2,6 @@
  * Copyright 1999 Hans Reiser, see reiserfs/README for licensing and copyright details
  */
 
-#include <linux/config.h>
 #include <linux/time.h>
 #include <linux/pagemap.h>
 #include <linux/buffer_head.h>
index 506ff87c1d4bdf99abbcd69b7f9900f2064b2c13..a1ed657c3c84323037f526cc341bb63fd44336cf 100644 (file)
@@ -7,7 +7,6 @@
  *  Please add a note about your changes to smbfs in the ChangeLog file.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/time.h>
 #include <linux/kernel.h>
index 24577e2c489b7997e40a691d076c88dd4ac03f79..e675404412880eb6d602cd7d9de3dbe6aef13c0a 100644 (file)
@@ -5,7 +5,6 @@
  *  Copyright (C) 2001, Urban Widmark
  */
 
-#include <linux/config.h>
 
 #include <linux/sched.h>
 #include <linux/kernel.h>
index 0f282face3225f2becf2694f8961b8272caf635c..3a44dcf97da23d1704b599527db4a50edcbc04a6 100644 (file)
--- a/fs/stat.c
+++ b/fs/stat.c
@@ -4,7 +4,6 @@
  *  Copyright (C) 1991, 1992  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/mm.h>
 #include <linux/errno.h>
index 8a669f6f3f52144f09d9225bbb20b646671fd8f6..9b780c42d845ca57cc40faa24814533a80ef29d1 100644 (file)
@@ -20,7 +20,6 @@
  *  Heavily rewritten for 'one fs - one tree' dcache architecture. AV, Mar 2000
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/init.h>
index 44fe2cb0bbb28518f9426edac3b00ca318ff11f6..4df822c881b69357038f96f0d91f6231f7da4a15 100644 (file)
@@ -40,7 +40,6 @@
 
 #include "udfdecl.h"    
 
-#include <linux/config.h>
 #include <linux/blkdev.h>
 #include <linux/slab.h>
 #include <linux/kernel.h>
index 2f992387cc9ed0a9cba2bd64c704d2e175f78fe2..1033b7cf29393e6d23c8e4e1f011db7476de1381 100644 (file)
@@ -6,7 +6,6 @@
 #include "osta_udf.h"
 
 #include <linux/fs.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/udf_fs_i.h>
 #include <linux/udf_fs_sb.h>
index 74ef5e9bedffaf764c5e51a5492c803a0ff15f31..19a99726e58dd7fbaf00f2bb17bbe3a8764503fe 100644 (file)
@@ -64,7 +64,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/bitops.h>
 
index 4dd6592d5a4cbf0c9f3ebdfa7a95fcc5870d253d..ceda3a2859d2db29975b5ace0994e9624b327db5 100644 (file)
@@ -18,7 +18,6 @@
 #ifndef __XFS_BUF_H__
 #define __XFS_BUF_H__
 
-#include <linux/config.h>
 #include <linux/list.h>
 #include <linux/types.h>
 #include <linux/spinlock.h>
index 601f01c92f7f49afb49ce30f506571c5a126f2ca..270db0f3861d1597c6401a2e25872b005e97fe26 100644 (file)
@@ -15,7 +15,6 @@
  * along with this program; if not, write the Free Software Foundation,
  * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
-#include <linux/config.h>
 #include <linux/compat.h>
 #include <linux/init.h>
 #include <linux/ioctl.h>
index 028eb17ec2edd8b17e35b333e1b0692ba63414c7..8c021dc57d1f80552df7ea2229558da053312be5 100644 (file)
@@ -19,7 +19,6 @@
 #define __XFS_LINUX__
 
 #include <linux/types.h>
-#include <linux/config.h>
 
 /*
  * Some types are conditional depending on the target system.
index b5193229132a12e5f73bfe510830aef1ab95235b..d22ab97ea72efc27e45ef4573498baef7c3a1059 100644 (file)
@@ -51,6 +51,7 @@
 #define SCM_TIMESTAMP          SO_TIMESTAMP
 
 #define SO_PEERSEC             30
+#define SO_PASSSEC             34
 
 /* Security levels - as per NRL IPv6 - don't actually do anything */
 #define SO_SECURITY_AUTHENTICATION             19
index 1fdd70b23809c145d2fea2f575acb26bd48ef247..c1ca9a4658ec9e801aa49bc2d7ba746420615c34 100644 (file)
@@ -20,7 +20,7 @@
 
 /*
  * These are data structures found in platform_device.dev.platform_data,
- * and describing board-specfic data needed by drivers.  For example,
+ * and describing board-specific data needed by drivers.  For example,
  * which pin is used for a given GPIO role.
  *
  * In 2.6, drivers should strongly avoid board-specific knowledge so
index b59520e56fc7fee72bc8262a08c9af2d8d690985..0d517267fb63edf0d49809fd64c701629e2c1d41 100644 (file)
@@ -38,7 +38,7 @@ extern int ixp4xx_pci_write(u32 addr, u32 cmd, u32 data);
  * 2) If > 64MB of memory space is required, the IXP4xx can be configured
  *    to use indirect registers to access PCI (as we do below for I/O
  *    transactions). This allows for up to 128MB (0x48000000 to 0x4fffffff)
- *    of memory on the bus. The disadvantadge of this is that every 
+ *    of memory on the bus. The disadvantage of this is that every 
  *    PCI access requires three local register accesses plus a spinlock,
  *    but in some cases the performance hit is acceptable. In addition,
  *    you cannot mmap() PCI devices in this case.
index 7fb02138f585985dd810407a82a8643bb3874d9f..0e36fd5d87df2f3d1771a9f34581cf82e17dfc2b 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef _ASMARM_BUG_H
 #define _ASMARM_BUG_H
 
-#include <linux/config.h>
 
 #ifdef CONFIG_BUG
 #ifdef CONFIG_DEBUG_BUGVERBOSE
index 3c51da6438c95b6734e38243ebdbb21af5a6972a..19f7df702b069ebb8398dc3f2dc9d16d9564ec95 100644 (file)
@@ -48,5 +48,6 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* _ASM_SOCKET_H */
index c46b5c84275f3f2f5b2ac91d8a60002963fdc9f5..8a7554f0398447af954cfb49049f96ac60d89b10 100644 (file)
@@ -116,7 +116,7 @@ extern void iwmmxt_task_release(struct thread_info *);
 
 /*
  * We use bit 30 of the preempt_count to indicate that kernel
- * preemption is occuring.  See include/asm-arm/hardirq.h.
+ * preemption is occurring.  See include/asm-arm/hardirq.h.
  */
 #define PREEMPT_ACTIVE 0x40000000
 
index 3c51da6438c95b6734e38243ebdbb21af5a6972a..19f7df702b069ebb8398dc3f2dc9d16d9564ec95 100644 (file)
@@ -48,5 +48,6 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* _ASM_SOCKET_H */
index dba3c285cacd5bbcd34d1fe41fbeaff504f79379..081a911d7af179dba91e367b548636f767b5e788 100644 (file)
@@ -20,8 +20,8 @@ enum
   arbiter_all_accesses = 0xff
 };
 
-int crisv32_arbiter_allocate_bandwith(int client, int region,
-                                      unsigned long bandwidth);
+int crisv32_arbiter_allocate_bandwidth(int client, int region,
+                                      unsigned long bandwidth);
 int crisv32_arbiter_watch(unsigned long start, unsigned long size,
                           unsigned long clients, unsigned long accesses,
                           watch_callback* cb);
index 8b1da3e58c5580468f60961c498592b71c7f56c7..01cfdf1d6d339ab2f0b4a25649989e6cacfa9ea8 100644 (file)
@@ -50,6 +50,7 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* _ASM_SOCKET_H */
 
index 7177f8b9817cc3586bf6c4bd4b21662ed32d2d72..31db18fc871fa07af87aad3a932eac3a46003362 100644 (file)
@@ -48,6 +48,7 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* _ASM_SOCKET_H */
 
index d98cf85bafc1d667d9d2ebdac62752a7da267214..ebc830fee0d0888ce1f3e938d06d1d1832205ac4 100644 (file)
@@ -48,5 +48,6 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* _ASM_SOCKET_H */
index 802ae76195b72a4a09e3f9c052e96968389be694..5755d57c4e952c121a0a215c94778cbf1c1386e6 100644 (file)
@@ -48,5 +48,6 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* _ASM_SOCKET_H */
index ab7fe2463468d36caca6ddf2acccb639c900afc3..65cdd73c2a57a641e3c32461f55053c04c1c16da 100644 (file)
@@ -27,7 +27,7 @@
 #define PV908234 (1 << 1)
   /* CA:AGPDMA write request data mismatch with ABC1CL merge */
 #define PV895469 (1 << 1)
-  /* TIO:CA TLB invalidate of written GART entries possibly not occuring in CA*/
+  /* TIO:CA TLB invalidate of written GART entries possibly not occurring in CA*/
 #define PV910244 (1 << 1)
 
 struct tioca_dmamap{
index a255006fb7b51f0db085e82f547f25938ee7c84c..d638ef3d50c3a5767a7d6a50496d47775c2145dc 100644 (file)
@@ -57,5 +57,6 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* _ASM_IA64_SOCKET_H */
index 8b6680f223c0b4a5f18781f36129cc1d541b68f8..acdf748fcdc8a38220ffea31e946947ca671bee1 100644 (file)
@@ -48,5 +48,6 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* _ASM_M32R_SOCKET_H */
index f578ca4b776a3bfcb45b1e60781ebeb74eac785c..a5966ec005ae67d1bdb338aa209f1cf76f85bf78 100644 (file)
@@ -48,5 +48,6 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* _ASM_SOCKET_H */
index 0bb31e5aaca6a23f93ffcf7aaa02ae41118e6be5..36ebe4e186a7a635970909c46f03cd8b394bc367 100644 (file)
@@ -69,6 +69,7 @@ To add: #define SO_REUSEPORT 0x0200   /* Allow local address and port reuse.  */
 #define SO_PEERSEC             30
 #define SO_SNDBUFFORCE         31
 #define SO_RCVBUFFORCE         33
+#define SO_PASSSEC             34
 
 #ifdef __KERNEL__
 
index 1bf54dc53c101337200deeaafa7adcf27daf97ff..ce2eae1708b5ec84ad7976c83984c35ceb5b2122 100644 (file)
@@ -48,5 +48,6 @@
 #define SO_ACCEPTCONN          0x401c
 
 #define SO_PEERSEC             0x401d
+#define SO_PASSSEC             0x401e
 
 #endif /* _ASM_SOCKET_H */
index 6249a7c396395c469dd67a0ac25ddf5edb554876..c5c0b0b3cd52cdbe235bc7277e93c829f048e2fe 100644 (file)
@@ -9,7 +9,7 @@
 /*
  * The of_platform_bus_type is a bus type used by drivers that do not
  * attach to a macio or similar bus but still use OF probing
- * mecanism
+ * mechanism
  */
 extern struct bus_type of_platform_bus_type;
 
index cef61304ffc2b9004812cf07ac79db7a879dc2b7..1330d6a58c57c630f1f429825f8331d5c718de9a 100644 (file)
@@ -205,7 +205,7 @@ extern void pmf_do_irq(struct pmf_function *func);
  *
  * The args array contains as many arguments as is required by the function,
  * this is dependent on the function you are calling, unfortunately Apple
- * mecanism provides no way to encode that so you have to get it right at
+ * mechanism provides no way to encode that so you have to get it right at
  * the call site. Some functions require no args, in which case, you can
  * pass NULL.
  *
index e4b8177d4acc48313dbb905bbf59400d659f0253..c8b1da50e72db7df8be5c61b36d8f6694461fd55 100644 (file)
@@ -55,5 +55,6 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* _ASM_POWERPC_SOCKET_H */
index 0b19af82507ff25b8793694c79fef18632185cab..fe95c8258cf9f3e40397b97149fd651e61fa8c13 100644 (file)
@@ -170,7 +170,7 @@ extern __inline__ int get_order(unsigned long size)
 #define VM_DATA_DEFAULT_FLAGS  (VM_READ | VM_WRITE | VM_EXEC | \
                                 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
 
-/* We do define AT_SYSINFO_EHDR but don't use the gate mecanism */
+/* We do define AT_SYSINFO_EHDR but don't use the gate mechanism */
 #define __HAVE_ARCH_GATE_AREA          1
 
 #include <asm-generic/memory_model.h>
index 859b5e969826302baf456044a48272f0cb66bfc0..24312387fa244c453b6840441fe26eb6dcb974c6 100644 (file)
@@ -657,13 +657,6 @@ static inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot)
        __pte;                                                            \
 })
 
-#define SetPageUptodate(_page) \
-       do {                                                                  \
-               struct page *__page = (_page);                                \
-               if (!test_and_set_bit(PG_uptodate, &__page->flags))           \
-                       page_test_and_clear_dirty(_page);                     \
-       } while (0)
-
 #ifdef __s390x__
 
 #define pfn_pmd(pfn, pgprot)                                              \
index 15a5298c8744bf1401be8b0cb736b406b410d55d..1778a49a74c5b0fd24facee8d5d49fc3657f3600 100644 (file)
@@ -56,5 +56,6 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* _ASM_SOCKET_H */
index 553904ff9336c2e26304810e0f0db20e0f4a4220..ca70362eb563bf7224d743340dde1364dc824242 100644 (file)
@@ -48,5 +48,6 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* __ASM_SH_SOCKET_H */
index 4816d102f918438948cc5a3e8f41ecd83648fd73..80ea31f6e17f937358025b0cfea00b6d409f99d3 100644 (file)
@@ -4,10 +4,12 @@
 
 #include <linux/device.h>
 #include <linux/mod_devicetable.h>
+#include <asm/openprom.h>
 #include <asm/prom.h>
 
 extern struct bus_type ebus_bus_type;
 extern struct bus_type sbus_bus_type;
+extern struct bus_type of_bus_type;
 
 /*
  * The of_device is a kind of "base class" that is a superset of
@@ -16,11 +18,25 @@ extern struct bus_type sbus_bus_type;
  */
 struct of_device
 {
-       struct device_node      *node;          /* OF device node */
-       struct device           dev;            /* Generic device interface */
+       struct device_node              *node;
+       struct device                   dev;
+       struct resource                 resource[PROMREG_MAX];
+       unsigned int                    irqs[PROMINTR_MAX];
+       int                             num_irqs;
+
+       void                            *sysdata;
+
+       int                             slot;
+       int                             portid;
+       int                             clock_freq;
 };
 #define        to_of_device(d) container_of(d, struct of_device, dev)
 
+extern void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name);
+extern void of_iounmap(void __iomem *base, unsigned long size);
+
+extern struct of_device *of_find_device_by_node(struct device_node *);
+
 extern const struct of_device_id *of_match_device(
        const struct of_device_id *matches, const struct of_device *dev);
 
index f9cf44c0716428d56971062ab29db6a35164a290..86c13dccea3d37f36cc9416d19e7e6c60fc83b8e 100644 (file)
 typedef u32 phandle;
 typedef u32 ihandle;
 
-struct interrupt_info {
-       int     line;
-       int     sense;          /* +ve/-ve logic, edge or level, etc. */
-};
-
 struct property {
        char    *name;
        int     length;
@@ -43,9 +38,6 @@ struct device_node {
        char    *name;
        char    *type;
        phandle node;
-       phandle linux_phandle;
-       int     n_intrs;
-       struct  interrupt_info *intrs;
        char    *path_component_name;
        char    *full_name;
 
@@ -69,6 +61,8 @@ struct device_node {
 #define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags)
 #define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags)
 
+#define OF_BAD_ADDR    ((u64)-1)
+
 static inline void set_node_proc_entry(struct device_node *dn, struct proc_dir_entry *de)
 {
        dn->pde = de;
@@ -101,6 +95,8 @@ extern int of_set_property(struct device_node *node, const char *name, void *val
 extern int of_getintprop_default(struct device_node *np,
                                 const char *name,
                                 int def);
+extern int of_n_addr_cells(struct device_node *np);
+extern int of_n_size_cells(struct device_node *np);
 
 extern void prom_build_devicetree(void);
 
index 4e0ce3a35ea9d48b62a5195b49daba535fa1e596..f6c4e5baf3f7bd4ea9c065b25c9d49d723de1ace 100644 (file)
@@ -48,6 +48,7 @@
 #define SCM_TIMESTAMP          SO_TIMESTAMP
 
 #define SO_PEERSEC             0x001e
+#define SO_PASSSEC             0x001f
 
 /* Security levels - as per NRL IPv6 - don't actually do anything */
 #define SO_SECURITY_AUTHENTICATION             0x5001
index 024088ef9d27060dd7b99c436231f7d5a3bfc087..a62c7b997d662fa1dc9b552b91cb57b5cd808f19 100644 (file)
@@ -4,11 +4,13 @@
 
 #include <linux/device.h>
 #include <linux/mod_devicetable.h>
+#include <asm/openprom.h>
 #include <asm/prom.h>
 
 extern struct bus_type isa_bus_type;
 extern struct bus_type ebus_bus_type;
 extern struct bus_type sbus_bus_type;
+extern struct bus_type of_bus_type;
 
 /*
  * The of_device is a kind of "base class" that is a superset of
@@ -17,11 +19,25 @@ extern struct bus_type sbus_bus_type;
  */
 struct of_device
 {
-       struct device_node      *node;          /* OF device node */
-       struct device           dev;            /* Generic device interface */
+       struct device_node              *node;
+       struct device                   dev;
+       struct resource                 resource[PROMREG_MAX];
+       unsigned int                    irqs[PROMINTR_MAX];
+       int                             num_irqs;
+
+       void                            *sysdata;
+
+       int                             slot;
+       int                             portid;
+       int                             clock_freq;
 };
 #define        to_of_device(d) container_of(d, struct of_device, dev)
 
+extern void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name);
+extern void of_iounmap(void __iomem *base, unsigned long size);
+
+extern struct of_device *of_find_device_by_node(struct device_node *);
+
 extern const struct of_device_id *of_match_device(
        const struct of_device_id *matches, const struct of_device *dev);
 
index cebe80b1da6c70f9aa626ea13add9fd7a2e00ac1..dcfa7629358c396c9e977447ee24f56b31cd799e 100644 (file)
@@ -16,6 +16,7 @@
 #include <asm/page.h>
 #include <asm/oplib.h>
 #include <asm/prom.h>
+#include <asm/of_device.h>
 #include <asm/iommu.h>
 
 /* The abstraction used here is that there are PCI controllers,
@@ -209,7 +210,6 @@ struct pci_controller_info {
 
        /* Operations which are controller specific. */
        void (*scan_bus)(struct pci_controller_info *);
-       unsigned int (*irq_build)(struct pci_pbm_info *, struct pci_dev *, unsigned int);
        void (*base_address_update)(struct pci_dev *, int);
        void (*resource_adjust)(struct pci_dev *, struct resource *, struct resource *);
 
@@ -217,8 +217,6 @@ struct pci_controller_info {
        struct pci_ops                  *pci_ops;
        unsigned int                    pci_first_busno;
        unsigned int                    pci_last_busno;
-
-       void                            *starfire_cookie;
 };
 
 /* PCI devices which are not bridges have this placed in their pci_dev
@@ -228,6 +226,7 @@ struct pci_controller_info {
 struct pcidev_cookie {
        struct pci_pbm_info             *pbm;
        struct device_node              *prom_node;
+       struct of_device                *op;
        struct linux_prom_pci_registers prom_regs[PROMREG_MAX];
        int num_prom_regs;
        struct linux_prom_pci_registers prom_assignments[PROMREG_MAX];
index 265614d497c43990bc0087cee48d7c401986af79..99671ed6625d15a8fa19f2a721ed9eb28f5255ef 100644 (file)
 typedef u32 phandle;
 typedef u32 ihandle;
 
-struct interrupt_info {
-       int     line;
-       int     sense;          /* +ve/-ve logic, edge or level, etc. */
-};
-
 struct property {
        char    *name;
        int     length;
@@ -39,13 +34,11 @@ struct property {
        unsigned int unique_id;
 };
 
+struct of_irq_controller;
 struct device_node {
        char    *name;
        char    *type;
        phandle node;
-       phandle linux_phandle;
-       int     n_intrs;
-       struct  interrupt_info *intrs;
        char    *path_component_name;
        char    *full_name;
 
@@ -61,6 +54,13 @@ struct device_node {
        unsigned long _flags;
        void    *data;
        unsigned int unique_id;
+
+       struct of_irq_controller *irq_trans;
+};
+
+struct of_irq_controller {
+       unsigned int    (*irq_build)(struct device_node *, unsigned int, void *);
+       void            *data;
 };
 
 /* flag descriptions */
@@ -69,6 +69,8 @@ struct device_node {
 #define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags)
 #define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags)
 
+#define OF_BAD_ADDR    ((u64)-1)
+
 static inline void set_node_proc_entry(struct device_node *dn, struct proc_dir_entry *de)
 {
        dn->pde = de;
@@ -101,6 +103,8 @@ extern int of_set_property(struct device_node *node, const char *name, void *val
 extern int of_getintprop_default(struct device_node *np,
                                 const char *name,
                                 int def);
+extern int of_n_addr_cells(struct device_node *np);
+extern int of_n_size_cells(struct device_node *np);
 
 extern void prom_build_devicetree(void);
 
index 56ee985e46050f9502336b78c2abe29c71813fa8..7efd49d31bb8a55a71f9ce9d07dcdf3a2a2e920f 100644 (file)
@@ -80,7 +80,6 @@ struct sbus_bus {
        int num_sbus_ranges;
 
        int portid;
-       void *starfire_cookie;
 };
 #define to_sbus(d) container_of(d, struct sbus_bus, ofdev.dev)
 
index 59987dad3359912059a37039512dafc807c5d2df..754d46a50af30af85564808262592cc16f59fe48 100644 (file)
@@ -48,6 +48,7 @@
 #define SCM_TIMESTAMP          SO_TIMESTAMP
 
 #define SO_PEERSEC             0x001e
+#define SO_PASSSEC             0x001f
 
 /* Security levels - as per NRL IPv6 - don't actually do anything */
 #define SO_SECURITY_AUTHENTICATION             0x5001
index b606cb2b32a89536e6f55f38cd5e37bd9e709e34..48b50b5e35b0fcb90da700d8d20b271e93d26a79 100644 (file)
@@ -14,7 +14,7 @@ extern int this_is_starfire;
 extern void check_if_starfire(void);
 extern void starfire_cpu_setup(void);
 extern int starfire_hard_smp_processor_id(void);
-extern void *starfire_hookup(int);
+extern void starfire_hookup(int);
 extern unsigned int starfire_translate(unsigned long imap, unsigned int upaid);
 
 #endif
diff --git a/include/asm-sparc64/vdev.h b/include/asm-sparc64/vdev.h
deleted file mode 100644 (file)
index 25637c5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/* vdev.h: SUN4V virtual device interfaces and defines.
- *
- * Copyright (C) 2006 David S. Miller <davem@davemloft.net>
- */
-
-#ifndef _SPARC64_VDEV_H
-#define _SPARC64_VDEV_H
-
-#include <linux/types.h>
-#include <asm/prom.h>
-
-extern u32 sun4v_vdev_devhandle;
-extern struct device_node *sun4v_vdev_root;
-
-extern unsigned int sun4v_vdev_device_interrupt(struct device_node *dev_node);
-
-#endif /* !(_SPARC64_VDEV_H) */
index 1934d9340e2cd6d5c0ca4c58f4ce1869edf97453..44e8b8c772ae8b1d3c0fc6da06b128f5f0874eed 100644 (file)
@@ -45,8 +45,13 @@ static inline void writel(unsigned int b, volatile void __iomem *addr)
 {
        *(volatile unsigned int __force *) addr = b;
 }
+static inline void writeq(unsigned int b, volatile void __iomem *addr)
+{
+       *(volatile unsigned long long __force *) addr = b;
+}
 #define __raw_writeb writeb
 #define __raw_writew writew
 #define __raw_writel writel
+#define __raw_writeq writeq
 
 #endif
index 0240d366a0a4db32672c6e20c734efe21e32aa17..0dfe55ac2ef2acf1deeb4e72e8ca112a770d8c8a 100644 (file)
@@ -48,5 +48,6 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* __V850_SOCKET_H__ */
index f2cdbeae5d5ba17e453f24aa172f6076f9441f9b..b46702607933ddedf9e5dc323da8d4c787799e94 100644 (file)
@@ -48,5 +48,6 @@
 #define SO_ACCEPTCONN          30
 
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* _ASM_SOCKET_H */
index 00f83f3a6d72194ad0b0f3059897cecde2d61e0f..971d231be60ebe095f9a5b29e21831662df2e1f8 100644 (file)
@@ -59,5 +59,6 @@
 
 #define SO_ACCEPTCONN          30
 #define SO_PEERSEC             31
+#define SO_PASSSEC             34
 
 #endif /* _XTENSA_SOCKET_H */
index 1eb238affb124fe8d657cda89f55b2a627142eb8..41788a31c4382b86698cf7a16875588d470bf069 100644 (file)
@@ -7,6 +7,7 @@
 #define LINUX_ATMDEV_H
 
 
+#include <linux/device.h>
 #include <linux/atmapi.h>
 #include <linux/atm.h>
 #include <linux/atmioc.h>
@@ -358,6 +359,7 @@ struct atm_dev {
        struct proc_dir_entry *proc_entry; /* proc entry */
        char *proc_name;                /* proc entry name */
 #endif
+       struct class_device class_dev;  /* sysfs class device */
        struct list_head dev_list;      /* linkage */
 };
 
@@ -459,7 +461,7 @@ static inline void atm_dev_put(struct atm_dev *dev)
                BUG_ON(!test_bit(ATM_DF_REMOVED, &dev->flags));
                if (dev->ops->dev_close)
                        dev->ops->dev_close(dev);
-               kfree(dev);
+               class_device_put(&dev->class_dev);
        }
 }
 
index 2fda1b2aabd964416137b337e70695f978458f66..527504c11c5e810b9848bcfc2dc480028bc103a5 100644 (file)
@@ -125,14 +125,14 @@ typedef struct fs_disk_quota {
 
 /*
  * fs_quota_stat is the struct returned in Q_XGETQSTAT for a given file system.
- * Provides a centralized way to get meta infomation about the quota subsystem.
+ * Provides a centralized way to get meta information about the quota subsystem.
  * eg. space taken up for user and group quotas, number of dquots currently
  * incore.
  */
 #define FS_QSTAT_VERSION       1       /* fs_quota_stat.qs_version */
 
 /*
- * Some basic infomation about 'quota files'.
+ * Some basic information about 'quota files'.
  */
 typedef struct fs_qfilestat {
        __u64           qfs_ino;        /* inode number */
index b45928f5c63fe838dee88eb7d03da5a6e4679e8b..ffefeeeeca937a6cb96d4ea7495853696e8ce65f 100644 (file)
@@ -557,7 +557,7 @@ struct fb_pixmap {
  * Frame buffer operations
  *
  * LOCKING NOTE: those functions must _ALL_ be called with the console
- * semaphore held, this is the only suitable locking mecanism we have
+ * semaphore held, this is the only suitable locking mechanism we have
  * in 2.6. Some may be called at interrupt time at this point though.
  */
 
index c41a1299b8cf354cc8b9d9677f328aa4bc8b8533..75179529e39979d397ce438778acad1dd93dbd87 100644 (file)
@@ -36,7 +36,6 @@ extern int sysctl_legacy_va_layout;
 #include <asm/page.h>
 #include <asm/pgtable.h>
 #include <asm/processor.h>
-#include <asm/atomic.h>
 
 #define nth_page(page,n) pfn_to_page(page_to_pfn((page)) + (n))
 
@@ -515,6 +514,11 @@ static inline void set_page_links(struct page *page, unsigned long zone,
        set_page_section(page, pfn_to_section_nr(pfn));
 }
 
+/*
+ * Some inline functions in vmstat.h depend on page_zone()
+ */
+#include <linux/vmstat.h>
+
 #ifndef CONFIG_DISCONTIGMEM
 /* The array of struct pages - for discontigmem use pgdat->lmem_map */
 extern struct page *mem_map;
index d6120fa69116f92399bfeb6951250ac1cc21e4a5..27e748eb72b0d897f02d327ce3df0cdcd969fbaf 100644 (file)
@@ -46,6 +46,27 @@ struct zone_padding {
 #define ZONE_PADDING(name)
 #endif
 
+enum zone_stat_item {
+       NR_ANON_PAGES,  /* Mapped anonymous pages */
+       NR_FILE_MAPPED, /* pagecache pages mapped into pagetables.
+                          only modified from process context */
+       NR_FILE_PAGES,
+       NR_SLAB,        /* Pages used by slab allocator */
+       NR_PAGETABLE,   /* used for pagetables */
+       NR_FILE_DIRTY,
+       NR_WRITEBACK,
+       NR_UNSTABLE_NFS,        /* NFS unstable pages */
+       NR_BOUNCE,
+#ifdef CONFIG_NUMA
+       NUMA_HIT,               /* allocated in intended node */
+       NUMA_MISS,              /* allocated in non intended node */
+       NUMA_FOREIGN,           /* was intended here, hit elsewhere */
+       NUMA_INTERLEAVE_HIT,    /* interleaver preferred this zone */
+       NUMA_LOCAL,             /* allocation from local node */
+       NUMA_OTHER,             /* allocation from other node */
+#endif
+       NR_VM_ZONE_STAT_ITEMS };
+
 struct per_cpu_pages {
        int count;              /* number of pages in the list */
        int high;               /* high watermark, emptying needed */
@@ -55,13 +76,8 @@ struct per_cpu_pages {
 
 struct per_cpu_pageset {
        struct per_cpu_pages pcp[2];    /* 0: hot.  1: cold */
-#ifdef CONFIG_NUMA
-       unsigned long numa_hit;         /* allocated in intended node */
-       unsigned long numa_miss;        /* allocated in non intended node */
-       unsigned long numa_foreign;     /* was intended here, hit elsewhere */
-       unsigned long interleave_hit;   /* interleaver prefered this zone */
-       unsigned long local_node;       /* allocation from local node */
-       unsigned long other_node;       /* allocation from other node */
+#ifdef CONFIG_SMP
+       s8 vm_stat_diff[NR_VM_ZONE_STAT_ITEMS];
 #endif
 } ____cacheline_aligned_in_smp;
 
@@ -165,12 +181,8 @@ struct zone {
        /* A count of how many reclaimers are scanning this zone */
        atomic_t                reclaim_in_progress;
 
-       /*
-        * timestamp (in jiffies) of the last zone reclaim that did not
-        * result in freeing of pages. This is used to avoid repeated scans
-        * if all memory in the zone is in use.
-        */
-       unsigned long           last_unsuccessful_zone_reclaim;
+       /* Zone statistics */
+       atomic_long_t           vm_stat[NR_VM_ZONE_STAT_ITEMS];
 
        /*
         * prev_priority holds the scanning priority for this zone.  It is
index 385e68f5bd93264c96f1e29c3f720f3b3921a8be..b20c53c744130384ae7ad28a9b8a6d1bdf5ff716 100644 (file)
@@ -61,6 +61,7 @@ typedef enum {
 #define SOCK_ASYNC_WAITDATA    1
 #define SOCK_NOSPACE           2
 #define SOCK_PASSCRED          3
+#define SOCK_PASSSEC           4
 
 #ifndef ARCH_HAS_SOCKET_TYPES
 /**
index 03cd7551a7a100b2ba0079f40b26e957e531b5cf..85f99f60deea46c3f5af0f24f9c3a806b51dfd7c 100644 (file)
@@ -313,8 +313,12 @@ struct net_device
 
        /* Segmentation offload features */
 #define NETIF_F_GSO_SHIFT      16
+#define NETIF_F_GSO_MASK       0xffff0000
 #define NETIF_F_TSO            (SKB_GSO_TCPV4 << NETIF_F_GSO_SHIFT)
-#define NETIF_F_UFO            (SKB_GSO_UDPV4 << NETIF_F_GSO_SHIFT)
+#define NETIF_F_UFO            (SKB_GSO_UDP << NETIF_F_GSO_SHIFT)
+#define NETIF_F_GSO_ROBUST     (SKB_GSO_DODGY << NETIF_F_GSO_SHIFT)
+#define NETIF_F_TSO_ECN                (SKB_GSO_TCP_ECN << NETIF_F_GSO_SHIFT)
+#define NETIF_F_TSO6           (SKB_GSO_TCPV6 << NETIF_F_GSO_SHIFT)
 
 #define NETIF_F_GEN_CSUM       (NETIF_F_NO_CSUM | NETIF_F_HW_CSUM)
 #define NETIF_F_ALL_CSUM       (NETIF_F_IP_CSUM | NETIF_F_GEN_CSUM)
@@ -543,7 +547,8 @@ struct packet_type {
                                         struct net_device *,
                                         struct packet_type *,
                                         struct net_device *);
-       struct sk_buff          *(*gso_segment)(struct sk_buff *skb, int sg);
+       struct sk_buff          *(*gso_segment)(struct sk_buff *skb,
+                                               int features);
        void                    *af_packet_priv;
        struct list_head        list;
 };
@@ -968,7 +973,7 @@ extern int          netdev_max_backlog;
 extern int             weight_p;
 extern int             netdev_set_master(struct net_device *dev, struct net_device *master);
 extern int skb_checksum_help(struct sk_buff *skb, int inward);
-extern struct sk_buff *skb_gso_segment(struct sk_buff *skb, int sg);
+extern struct sk_buff *skb_gso_segment(struct sk_buff *skb, int features);
 #ifdef CONFIG_BUG
 extern void netdev_rx_csum_fault(struct net_device *dev);
 #else
@@ -988,11 +993,21 @@ extern void dev_seq_stop(struct seq_file *seq, void *v);
 
 extern void linkwatch_run_queue(void);
 
+static inline int net_gso_ok(int features, int gso_type)
+{
+       int feature = gso_type << NETIF_F_GSO_SHIFT;
+       return (features & feature) == feature;
+}
+
+static inline int skb_gso_ok(struct sk_buff *skb, int features)
+{
+       return net_gso_ok(features, skb_shinfo(skb)->gso_size ?
+                                   skb_shinfo(skb)->gso_type : 0);
+}
+
 static inline int netif_needs_gso(struct net_device *dev, struct sk_buff *skb)
 {
-       int feature = skb_shinfo(skb)->gso_type << NETIF_F_GSO_SHIFT;
-       return skb_shinfo(skb)->gso_size &&
-              (dev->features & feature) != feature;
+       return !skb_gso_ok(skb, dev->features);
 }
 
 #endif /* __KERNEL__ */
index d90b1bb3756305d71303de5e726636fa9f3cdfe1..55ea853d57bcbce9c6acfff30c132001954314e5 100644 (file)
@@ -9,7 +9,6 @@
 #ifndef _LINUX_NFS_FS_H
 #define _LINUX_NFS_FS_H
 
-#include <linux/config.h>
 #include <linux/in.h>
 #include <linux/mm.h>
 #include <linux/pagemap.h>
index 0c076d58c6760751a3e82fda67c71fc02c7cc83a..5748642e9f3660790652efdd7488ef7d42efe44f 100644 (file)
@@ -5,12 +5,8 @@
 #ifndef PAGE_FLAGS_H
 #define PAGE_FLAGS_H
 
-#include <linux/percpu.h>
-#include <linux/cache.h>
 #include <linux/types.h>
 
-#include <asm/pgtable.h>
-
 /*
  * Various page->flags bits:
  *
 #define PG_uncached            31      /* Page has been mapped as uncached */
 #endif
 
-/*
- * Global page accounting.  One instance per CPU.  Only unsigned longs are
- * allowed.
- *
- * - Fields can be modified with xxx_page_state and xxx_page_state_zone at
- * any time safely (which protects the instance from modification by
- * interrupt.
- * - The __xxx_page_state variants can be used safely when interrupts are
- * disabled.
- * - The __xxx_page_state variants can be used if the field is only
- * modified from process context and protected from preemption, or only
- * modified from interrupt context.  In this case, the field should be
- * commented here.
- */
-struct page_state {
-       unsigned long nr_dirty;         /* Dirty writeable pages */
-       unsigned long nr_writeback;     /* Pages under writeback */
-       unsigned long nr_unstable;      /* NFS unstable pages */
-       unsigned long nr_page_table_pages;/* Pages used for pagetables */
-       unsigned long nr_mapped;        /* mapped into pagetables.
-                                        * only modified from process context */
-       unsigned long nr_slab;          /* In slab */
-#define GET_PAGE_STATE_LAST nr_slab
-
-       /*
-        * The below are zeroed by get_page_state().  Use get_full_page_state()
-        * to add up all these.
-        */
-       unsigned long pgpgin;           /* Disk reads */
-       unsigned long pgpgout;          /* Disk writes */
-       unsigned long pswpin;           /* swap reads */
-       unsigned long pswpout;          /* swap writes */
-
-       unsigned long pgalloc_high;     /* page allocations */
-       unsigned long pgalloc_normal;
-       unsigned long pgalloc_dma32;
-       unsigned long pgalloc_dma;
-
-       unsigned long pgfree;           /* page freeings */
-       unsigned long pgactivate;       /* pages moved inactive->active */
-       unsigned long pgdeactivate;     /* pages moved active->inactive */
-
-       unsigned long pgfault;          /* faults (major+minor) */
-       unsigned long pgmajfault;       /* faults (major only) */
-
-       unsigned long pgrefill_high;    /* inspected in refill_inactive_zone */
-       unsigned long pgrefill_normal;
-       unsigned long pgrefill_dma32;
-       unsigned long pgrefill_dma;
-
-       unsigned long pgsteal_high;     /* total highmem pages reclaimed */
-       unsigned long pgsteal_normal;
-       unsigned long pgsteal_dma32;
-       unsigned long pgsteal_dma;
-
-       unsigned long pgscan_kswapd_high;/* total highmem pages scanned */
-       unsigned long pgscan_kswapd_normal;
-       unsigned long pgscan_kswapd_dma32;
-       unsigned long pgscan_kswapd_dma;
-
-       unsigned long pgscan_direct_high;/* total highmem pages scanned */
-       unsigned long pgscan_direct_normal;
-       unsigned long pgscan_direct_dma32;
-       unsigned long pgscan_direct_dma;
-
-       unsigned long pginodesteal;     /* pages reclaimed via inode freeing */
-       unsigned long slabs_scanned;    /* slab objects scanned */
-       unsigned long kswapd_steal;     /* pages reclaimed by kswapd */
-       unsigned long kswapd_inodesteal;/* reclaimed via kswapd inode freeing */
-       unsigned long pageoutrun;       /* kswapd's calls to page reclaim */
-       unsigned long allocstall;       /* direct reclaim calls */
-
-       unsigned long pgrotated;        /* pages rotated to tail of the LRU */
-       unsigned long nr_bounce;        /* pages for bounce buffers */
-};
-
-extern void get_page_state(struct page_state *ret);
-extern void get_page_state_node(struct page_state *ret, int node);
-extern void get_full_page_state(struct page_state *ret);
-extern unsigned long read_page_state_offset(unsigned long offset);
-extern void mod_page_state_offset(unsigned long offset, unsigned long delta);
-extern void __mod_page_state_offset(unsigned long offset, unsigned long delta);
-
-#define read_page_state(member) \
-       read_page_state_offset(offsetof(struct page_state, member))
-
-#define mod_page_state(member, delta)  \
-       mod_page_state_offset(offsetof(struct page_state, member), (delta))
-
-#define __mod_page_state(member, delta)        \
-       __mod_page_state_offset(offsetof(struct page_state, member), (delta))
-
-#define inc_page_state(member)         mod_page_state(member, 1UL)
-#define dec_page_state(member)         mod_page_state(member, 0UL - 1)
-#define add_page_state(member,delta)   mod_page_state(member, (delta))
-#define sub_page_state(member,delta)   mod_page_state(member, 0UL - (delta))
-
-#define __inc_page_state(member)       __mod_page_state(member, 1UL)
-#define __dec_page_state(member)       __mod_page_state(member, 0UL - 1)
-#define __add_page_state(member,delta) __mod_page_state(member, (delta))
-#define __sub_page_state(member,delta) __mod_page_state(member, 0UL - (delta))
-
-#define page_state(member) (*__page_state(offsetof(struct page_state, member)))
-
-#define state_zone_offset(zone, member)                                        \
-({                                                                     \
-       unsigned offset;                                                \
-       if (is_highmem(zone))                                           \
-               offset = offsetof(struct page_state, member##_high);    \
-       else if (is_normal(zone))                                       \
-               offset = offsetof(struct page_state, member##_normal);  \
-       else if (is_dma32(zone))                                        \
-               offset = offsetof(struct page_state, member##_dma32);   \
-       else                                                            \
-               offset = offsetof(struct page_state, member##_dma);     \
-       offset;                                                         \
-})
-
-#define __mod_page_state_zone(zone, member, delta)                     \
- do {                                                                  \
-       __mod_page_state_offset(state_zone_offset(zone, member), (delta)); \
- } while (0)
-
-#define mod_page_state_zone(zone, member, delta)                       \
- do {                                                                  \
-       mod_page_state_offset(state_zone_offset(zone, member), (delta)); \
- } while (0)
-
 /*
  * Manipulation of page state flags
  */
@@ -254,7 +122,14 @@ extern void __mod_page_state_offset(unsigned long offset, unsigned long delta);
 #define TestClearPageReferenced(page) test_and_clear_bit(PG_referenced, &(page)->flags)
 
 #define PageUptodate(page)     test_bit(PG_uptodate, &(page)->flags)
-#ifndef SetPageUptodate
+#ifdef CONFIG_S390
+#define SetPageUptodate(_page) \
+       do {                                                                  \
+               struct page *__page = (_page);                                \
+               if (!test_and_set_bit(PG_uptodate, &__page->flags))           \
+                       page_test_and_clear_dirty(_page);                     \
+       } while (0)
+#else
 #define SetPageUptodate(page)  set_bit(PG_uptodate, &(page)->flags)
 #endif
 #define ClearPageUptodate(page)        clear_bit(PG_uptodate, &(page)->flags)
@@ -306,7 +181,7 @@ extern void __mod_page_state_offset(unsigned long offset, unsigned long delta);
        do {                                                            \
                if (!test_and_set_bit(PG_writeback,                     \
                                &(page)->flags))                        \
-                       inc_page_state(nr_writeback);                   \
+                       inc_zone_page_state(page, NR_WRITEBACK);        \
        } while (0)
 #define TestSetPageWriteback(page)                                     \
        ({                                                              \
@@ -314,14 +189,14 @@ extern void __mod_page_state_offset(unsigned long offset, unsigned long delta);
                ret = test_and_set_bit(PG_writeback,                    \
                                        &(page)->flags);                \
                if (!ret)                                               \
-                       inc_page_state(nr_writeback);                   \
+                       inc_zone_page_state(page, NR_WRITEBACK);        \
                ret;                                                    \
        })
 #define ClearPageWriteback(page)                                       \
        do {                                                            \
                if (test_and_clear_bit(PG_writeback,                    \
                                &(page)->flags))                        \
-                       dec_page_state(nr_writeback);                   \
+                       dec_zone_page_state(page, NR_WRITEBACK);        \
        } while (0)
 #define TestClearPageWriteback(page)                                   \
        ({                                                              \
@@ -329,7 +204,7 @@ extern void __mod_page_state_offset(unsigned long offset, unsigned long delta);
                ret = test_and_clear_bit(PG_writeback,                  \
                                &(page)->flags);                        \
                if (ret)                                                \
-                       dec_page_state(nr_writeback);                   \
+                       dec_zone_page_state(page, NR_WRITEBACK);        \
                ret;                                                    \
        })
 
index 1245df7141aa6c6c1a973ac429ef417fa70488e9..0a2f5d27f60e71b8630d5bd71e9f2821e6251b33 100644 (file)
@@ -113,51 +113,6 @@ int add_to_page_cache_lru(struct page *page, struct address_space *mapping,
 extern void remove_from_page_cache(struct page *page);
 extern void __remove_from_page_cache(struct page *page);
 
-extern atomic_t nr_pagecache;
-
-#ifdef CONFIG_SMP
-
-#define PAGECACHE_ACCT_THRESHOLD        max(16, NR_CPUS * 2)
-DECLARE_PER_CPU(long, nr_pagecache_local);
-
-/*
- * pagecache_acct implements approximate accounting for pagecache.
- * vm_enough_memory() do not need high accuracy. Writers will keep
- * an offset in their per-cpu arena and will spill that into the
- * global count whenever the absolute value of the local count
- * exceeds the counter's threshold.
- *
- * MUST be protected from preemption.
- * current protection is mapping->page_lock.
- */
-static inline void pagecache_acct(int count)
-{
-       long *local;
-
-       local = &__get_cpu_var(nr_pagecache_local);
-       *local += count;
-       if (*local > PAGECACHE_ACCT_THRESHOLD || *local < -PAGECACHE_ACCT_THRESHOLD) {
-               atomic_add(*local, &nr_pagecache);
-               *local = 0;
-       }
-}
-
-#else
-
-static inline void pagecache_acct(int count)
-{
-       atomic_add(count, &nr_pagecache);
-}
-#endif
-
-static inline unsigned long get_page_cache_size(void)
-{
-       int ret = atomic_read(&nr_pagecache);
-       if (unlikely(ret < 0))
-               ret = 0;
-       return ret;
-}
-
 /*
  * Return byte-offset into filesystem object for page.
  */
index 9ae6b1a753668e74155316473c7b5adcbe5da209..b093479a531d6bceabb820ae5ecccb4e2c223758 100644 (file)
 #define PCI_DEVICE_ID_TI_4450          0x8011
 #define PCI_DEVICE_ID_TI_XX21_XX11     0x8031
 #define PCI_DEVICE_ID_TI_X515          0x8036
+#define PCI_DEVICE_ID_TI_XX12          0x8039
 #define PCI_DEVICE_ID_TI_1130          0xac12
 #define PCI_DEVICE_ID_TI_1031          0xac13
 #define PCI_DEVICE_ID_TI_1131          0xac15
index 48dfe00070c70bbcd27574870b19288f7655364c..b4ca73d65891ba8b60ba24d1fe2e0adca745911a 100644 (file)
@@ -163,14 +163,22 @@ extern int rcu_needs_cpu(int cpu);
  *
  * It is illegal to block while in an RCU read-side critical section.
  */
-#define rcu_read_lock()                preempt_disable()
+#define rcu_read_lock() \
+       do { \
+               preempt_disable(); \
+               __acquire(RCU); \
+       } while(0)
 
 /**
  * rcu_read_unlock - marks the end of an RCU read-side critical section.
  *
  * See rcu_read_lock() for more information.
  */
-#define rcu_read_unlock()      preempt_enable()
+#define rcu_read_unlock() \
+       do { \
+               __release(RCU); \
+               preempt_enable(); \
+       } while(0)
 
 /*
  * So where is rcu_write_lock()?  It does not exist, as there is no
@@ -193,14 +201,22 @@ extern int rcu_needs_cpu(int cpu);
  * can use just rcu_read_lock().
  *
  */
-#define rcu_read_lock_bh()     local_bh_disable()
+#define rcu_read_lock_bh() \
+       do { \
+               local_bh_disable(); \
+               __acquire(RCU_BH); \
+       } while(0)
 
 /*
  * rcu_read_unlock_bh - marks the end of a softirq-only RCU critical section
  *
  * See rcu_read_lock_bh() for more information.
  */
-#define rcu_read_unlock_bh()   local_bh_enable()
+#define rcu_read_unlock_bh() \
+       do { \
+               __release(RCU_BH); \
+               local_bh_enable(); \
+       } while(0)
 
 /**
  * rcu_dereference - fetch an RCU-protected pointer in an
index 36e2bf4b43151317fe21141e1ea360fbda8ca83a..5371e4e745958f37e67cba09db7eaa9e49a2ada0 100644 (file)
@@ -34,8 +34,8 @@ struct rtc_time {
  * alarm API.
  */
 struct rtc_wkalrm {
-       unsigned char enabled;  /* 0 = alarm disable, 1 = alarm disabled */
-       unsigned char pending;  /* 0 = alarm pending, 1 = alarm not pending */
+       unsigned char enabled;  /* 0 = alarm disabled, 1 = alarm enabled */
+       unsigned char pending;  /* 0 = alarm not pending, 1 = alarm pending */
        struct rtc_time time;   /* time the alarm is set to */
 };
 
index 821f0481ebe190c0b5e171a4e6ab887802b3015c..aaf723308ed4c817678d34984ad8c7488357181d 100644 (file)
@@ -1153,7 +1153,7 @@ extern int force_sig_info(int, struct siginfo *, struct task_struct *);
 extern int __kill_pg_info(int sig, struct siginfo *info, pid_t pgrp);
 extern int kill_pg_info(int, struct siginfo *, pid_t);
 extern int kill_proc_info(int, struct siginfo *, pid_t);
-extern int kill_proc_info_as_uid(int, struct siginfo *, pid_t, uid_t, uid_t);
+extern int kill_proc_info_as_uid(int, struct siginfo *, pid_t, uid_t, uid_t, u32);
 extern void do_notify_parent(struct task_struct *, int);
 extern void force_sig(int, struct task_struct *);
 extern void force_sig_specific(int, struct task_struct *);
index 51805806f9741bf63da2d7d344f05a9ee7cf3821..f75303831d09b1c8645530c9c2f90c27385afe91 100644 (file)
@@ -67,7 +67,7 @@ struct xfrm_state;
 struct xfrm_user_sec_ctx;
 
 extern int cap_netlink_send(struct sock *sk, struct sk_buff *skb);
-extern int cap_netlink_recv(struct sk_buff *skb);
+extern int cap_netlink_recv(struct sk_buff *skb, int cap);
 
 /*
  * Values used in the task_security_ops calls
@@ -567,6 +567,9 @@ struct swap_info_struct;
  *     @p.
  *     @p contains the task_struct for the process.
  *     Return 0 if permission is granted.
+ * @task_getsecid:
+ *     Retrieve the security identifier of the process @p.
+ *     @p contains the task_struct for the process and place is into @secid.
  * @task_setgroups:
  *     Check permission before setting the supplementary group set of the
  *     current process.
@@ -582,6 +585,10 @@ struct swap_info_struct;
  *     @p contains the task_struct of process.
  *     @ioprio contains the new ioprio value
  *     Return 0 if permission is granted.
+ * @task_getioprio
+ *     Check permission before getting the ioprio value of @p.
+ *     @p contains the task_struct of process.
+ *     Return 0 if permission is granted.
  * @task_setrlimit:
  *     Check permission before setting the resource limits of the current
  *     process for @resource to @new_rlim.  The old resource limit values can
@@ -615,6 +622,7 @@ struct swap_info_struct;
  *     @p contains the task_struct for process.
  *     @info contains the signal information.
  *     @sig contains the signal value.
+ *     @secid contains the sid of the process where the signal originated
  *     Return 0 if permission is granted.
  * @task_wait:
  *     Check permission before allowing a process to reap a child process @p
@@ -656,6 +664,7 @@ struct swap_info_struct;
  *     Check permission before processing the received netlink message in
  *     @skb.
  *     @skb contains the sk_buff structure for the netlink message.
+ *     @cap indicates the capability required
  *     Return 0 if permission is granted.
  *
  * Security hooks for Unix domain networking.
@@ -1218,16 +1227,18 @@ struct security_operations {
        int (*task_setpgid) (struct task_struct * p, pid_t pgid);
        int (*task_getpgid) (struct task_struct * p);
        int (*task_getsid) (struct task_struct * p);
+       void (*task_getsecid) (struct task_struct * p, u32 * secid);
        int (*task_setgroups) (struct group_info *group_info);
        int (*task_setnice) (struct task_struct * p, int nice);
        int (*task_setioprio) (struct task_struct * p, int ioprio);
+       int (*task_getioprio) (struct task_struct * p);
        int (*task_setrlimit) (unsigned int resource, struct rlimit * new_rlim);
        int (*task_setscheduler) (struct task_struct * p, int policy,
                                  struct sched_param * lp);
        int (*task_getscheduler) (struct task_struct * p);
        int (*task_movememory) (struct task_struct * p);
        int (*task_kill) (struct task_struct * p,
-                         struct siginfo * info, int sig);
+                         struct siginfo * info, int sig, u32 secid);
        int (*task_wait) (struct task_struct * p);
        int (*task_prctl) (int option, unsigned long arg2,
                           unsigned long arg3, unsigned long arg4,
@@ -1266,7 +1277,7 @@ struct security_operations {
                          struct sembuf * sops, unsigned nsops, int alter);
 
        int (*netlink_send) (struct sock * sk, struct sk_buff * skb);
-       int (*netlink_recv) (struct sk_buff * skb);
+       int (*netlink_recv) (struct sk_buff * skb, int cap);
 
        /* allow module stacking */
        int (*register_security) (const char *name,
@@ -1838,6 +1849,11 @@ static inline int security_task_getsid (struct task_struct *p)
        return security_ops->task_getsid (p);
 }
 
+static inline void security_task_getsecid (struct task_struct *p, u32 *secid)
+{
+       security_ops->task_getsecid (p, secid);
+}
+
 static inline int security_task_setgroups (struct group_info *group_info)
 {
        return security_ops->task_setgroups (group_info);
@@ -1853,6 +1869,11 @@ static inline int security_task_setioprio (struct task_struct *p, int ioprio)
        return security_ops->task_setioprio (p, ioprio);
 }
 
+static inline int security_task_getioprio (struct task_struct *p)
+{
+       return security_ops->task_getioprio (p);
+}
+
 static inline int security_task_setrlimit (unsigned int resource,
                                           struct rlimit *new_rlim)
 {
@@ -1877,9 +1898,10 @@ static inline int security_task_movememory (struct task_struct *p)
 }
 
 static inline int security_task_kill (struct task_struct *p,
-                                     struct siginfo *info, int sig)
+                                     struct siginfo *info, int sig,
+                                     u32 secid)
 {
-       return security_ops->task_kill (p, info, sig);
+       return security_ops->task_kill (p, info, sig, secid);
 }
 
 static inline int security_task_wait (struct task_struct *p)
@@ -2032,9 +2054,9 @@ static inline int security_netlink_send(struct sock *sk, struct sk_buff * skb)
        return security_ops->netlink_send(sk, skb);
 }
 
-static inline int security_netlink_recv(struct sk_buff * skb)
+static inline int security_netlink_recv(struct sk_buff * skb, int cap)
 {
-       return security_ops->netlink_recv(skb);
+       return security_ops->netlink_recv(skb, cap);
 }
 
 /* prototypes */
@@ -2490,6 +2512,9 @@ static inline int security_task_getsid (struct task_struct *p)
        return 0;
 }
 
+static inline void security_task_getsecid (struct task_struct *p, u32 *secid)
+{ }
+
 static inline int security_task_setgroups (struct group_info *group_info)
 {
        return 0;
@@ -2505,6 +2530,11 @@ static inline int security_task_setioprio (struct task_struct *p, int ioprio)
        return 0;
 }
 
+static inline int security_task_getioprio (struct task_struct *p)
+{
+       return 0;
+}
+
 static inline int security_task_setrlimit (unsigned int resource,
                                           struct rlimit *new_rlim)
 {
@@ -2529,7 +2559,8 @@ static inline int security_task_movememory (struct task_struct *p)
 }
 
 static inline int security_task_kill (struct task_struct *p,
-                                     struct siginfo *info, int sig)
+                                     struct siginfo *info, int sig,
+                                     u32 secid)
 {
        return 0;
 }
@@ -2670,9 +2701,9 @@ static inline int security_netlink_send (struct sock *sk, struct sk_buff *skb)
        return cap_netlink_send (sk, skb);
 }
 
-static inline int security_netlink_recv (struct sk_buff *skb)
+static inline int security_netlink_recv (struct sk_buff *skb, int cap)
 {
-       return cap_netlink_recv (skb);
+       return cap_netlink_recv (skb, cap);
 }
 
 static inline struct dentry *securityfs_create_dir(const char *name,
index 16eef03ce0eb2dba578c52cc136e1b80b068fa99..57d7d4965f9aa0fc13a1cd10c06501d90c67e844 100644 (file)
@@ -171,7 +171,15 @@ enum {
 
 enum {
        SKB_GSO_TCPV4 = 1 << 0,
-       SKB_GSO_UDPV4 = 1 << 1,
+       SKB_GSO_UDP = 1 << 1,
+
+       /* This indicates the skb is from an untrusted source. */
+       SKB_GSO_DODGY = 1 << 2,
+
+       /* This indicates the tcp segment has CWR set. */
+       SKB_GSO_TCP_ECN = 1 << 3,
+
+       SKB_GSO_TCPV6 = 1 << 4,
 };
 
 /** 
@@ -1298,8 +1306,7 @@ extern void              skb_copy_and_csum_dev(const struct sk_buff *skb, u8 *to);
 extern void           skb_split(struct sk_buff *skb,
                                 struct sk_buff *skb1, const u32 len);
 
-extern void           skb_release_data(struct sk_buff *skb);
-extern struct sk_buff *skb_segment(struct sk_buff *skb, int sg);
+extern struct sk_buff *skb_segment(struct sk_buff *skb, int features);
 
 static inline void *skb_header_pointer(const struct sk_buff *skb, int offset,
                                       int len, void *buffer)
index c93c3fe4308c898cd2a6fa9939305e9b4203bbc5..837e8bce134930405e98192986c3b4fd10ce4151 100644 (file)
@@ -125,4 +125,6 @@ static inline void smp_send_reschedule(int cpu) { }
 #define put_cpu()              preempt_enable()
 #define put_cpu_no_resched()   preempt_enable_no_resched()
 
+void smp_setup_processor_id(void);
+
 #endif /* __LINUX_SMP_H */
index 50356438454525d46b951e3fde65058478bf8017..7b27c09b56046e19bef6e499922f628bec5c0a6e 100644 (file)
@@ -159,7 +159,9 @@ struct svc_rqst {
                                                 * determine what device number
                                                 * to report (real or virtual)
                                                 */
-
+       int                     rq_sendfile_ok; /* turned off in gss privacy
+                                                * to prevent encrypting page
+                                                * cache pages */
        wait_queue_head_t       rq_wait;        /* synchronization */
 };
 
index c41e2d6d1acc3dfb4ca036a6a78047e02181d5c0..cf6ca6e377bded33384c96b0504494ad53d97f71 100644 (file)
@@ -189,7 +189,6 @@ extern long vm_total_pages;
 
 #ifdef CONFIG_NUMA
 extern int zone_reclaim_mode;
-extern int zone_reclaim_interval;
 extern int zone_reclaim(struct zone *, gfp_t, unsigned int);
 #else
 #define zone_reclaim_mode 0
index bdd39be094065fa5a53c26864e9db5feb51e5122..90223f057d507bd86edf2c8e30333319773e8f23 100644 (file)
@@ -46,7 +46,7 @@ struct udp_sock {
        unsigned int     corkflag;      /* Cork is required */
        __u16            encap_type;    /* Is this an Encapsulation socket? */
        /*
-        * Following member retains the infomation to create a UDP header
+        * Following member retains the information to create a UDP header
         * when the socket is uncorked.
         */
        __u16            len;           /* total length of pending frames */
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
new file mode 100644 (file)
index 0000000..3e0daf5
--- /dev/null
@@ -0,0 +1,215 @@
+#ifndef _LINUX_VMSTAT_H
+#define _LINUX_VMSTAT_H
+
+#include <linux/types.h>
+#include <linux/percpu.h>
+#include <linux/config.h>
+#include <linux/mmzone.h>
+#include <asm/atomic.h>
+
+#ifdef CONFIG_VM_EVENT_COUNTERS
+/*
+ * Light weight per cpu counter implementation.
+ *
+ * Counters should only be incremented and no critical kernel component
+ * should rely on the counter values.
+ *
+ * Counters are handled completely inline. On many platforms the code
+ * generated will simply be the increment of a global address.
+ */
+
+#define FOR_ALL_ZONES(x) x##_DMA, x##_DMA32, x##_NORMAL, x##_HIGH
+
+enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
+               FOR_ALL_ZONES(PGALLOC),
+               PGFREE, PGACTIVATE, PGDEACTIVATE,
+               PGFAULT, PGMAJFAULT,
+               FOR_ALL_ZONES(PGREFILL),
+               FOR_ALL_ZONES(PGSTEAL),
+               FOR_ALL_ZONES(PGSCAN_KSWAPD),
+               FOR_ALL_ZONES(PGSCAN_DIRECT),
+               PGINODESTEAL, SLABS_SCANNED, KSWAPD_STEAL, KSWAPD_INODESTEAL,
+               PAGEOUTRUN, ALLOCSTALL, PGROTATED,
+               NR_VM_EVENT_ITEMS
+};
+
+struct vm_event_state {
+       unsigned long event[NR_VM_EVENT_ITEMS];
+};
+
+DECLARE_PER_CPU(struct vm_event_state, vm_event_states);
+
+static inline void __count_vm_event(enum vm_event_item item)
+{
+       __get_cpu_var(vm_event_states.event[item])++;
+}
+
+static inline void count_vm_event(enum vm_event_item item)
+{
+       get_cpu_var(vm_event_states.event[item])++;
+       put_cpu();
+}
+
+static inline void __count_vm_events(enum vm_event_item item, long delta)
+{
+       __get_cpu_var(vm_event_states.event[item]) += delta;
+}
+
+static inline void count_vm_events(enum vm_event_item item, long delta)
+{
+       get_cpu_var(vm_event_states.event[item])++;
+       put_cpu();
+}
+
+extern void all_vm_events(unsigned long *);
+extern void vm_events_fold_cpu(int cpu);
+
+#else
+
+/* Disable counters */
+#define get_cpu_vm_events(e)   0L
+#define count_vm_event(e)      do { } while (0)
+#define count_vm_events(e,d)   do { } while (0)
+#define __count_vm_event(e)    do { } while (0)
+#define __count_vm_events(e,d) do { } while (0)
+#define vm_events_fold_cpu(x)  do { } while (0)
+
+#endif /* CONFIG_VM_EVENT_COUNTERS */
+
+#define __count_zone_vm_events(item, zone, delta) \
+                       __count_vm_events(item##_DMA + zone_idx(zone), delta)
+
+/*
+ * Zone based page accounting with per cpu differentials.
+ */
+extern atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
+
+static inline void zone_page_state_add(long x, struct zone *zone,
+                                enum zone_stat_item item)
+{
+       atomic_long_add(x, &zone->vm_stat[item]);
+       atomic_long_add(x, &vm_stat[item]);
+}
+
+static inline unsigned long global_page_state(enum zone_stat_item item)
+{
+       long x = atomic_long_read(&vm_stat[item]);
+#ifdef CONFIG_SMP
+       if (x < 0)
+               x = 0;
+#endif
+       return x;
+}
+
+static inline unsigned long zone_page_state(struct zone *zone,
+                                       enum zone_stat_item item)
+{
+       long x = atomic_long_read(&zone->vm_stat[item]);
+#ifdef CONFIG_SMP
+       if (x < 0)
+               x = 0;
+#endif
+       return x;
+}
+
+#ifdef CONFIG_NUMA
+/*
+ * Determine the per node value of a stat item. This function
+ * is called frequently in a NUMA machine, so try to be as
+ * frugal as possible.
+ */
+static inline unsigned long node_page_state(int node,
+                                enum zone_stat_item item)
+{
+       struct zone *zones = NODE_DATA(node)->node_zones;
+
+       return
+#ifndef CONFIG_DMA_IS_NORMAL
+#if !defined(CONFIG_DMA_IS_DMA32) && BITS_PER_LONG >= 64
+               zone_page_state(&zones[ZONE_DMA32], item) +
+#endif
+               zone_page_state(&zones[ZONE_NORMAL], item) +
+#endif
+#ifdef CONFIG_HIGHMEM
+               zone_page_state(&zones[ZONE_HIGHMEM], item) +
+#endif
+               zone_page_state(&zones[ZONE_DMA], item);
+}
+
+extern void zone_statistics(struct zonelist *, struct zone *);
+
+#else
+
+#define node_page_state(node, item) global_page_state(item)
+#define zone_statistics(_zl,_z) do { } while (0)
+
+#endif /* CONFIG_NUMA */
+
+#define __add_zone_page_state(__z, __i, __d)   \
+               __mod_zone_page_state(__z, __i, __d)
+#define __sub_zone_page_state(__z, __i, __d)   \
+               __mod_zone_page_state(__z, __i,-(__d))
+
+#define add_zone_page_state(__z, __i, __d) mod_zone_page_state(__z, __i, __d)
+#define sub_zone_page_state(__z, __i, __d) mod_zone_page_state(__z, __i, -(__d))
+
+static inline void zap_zone_vm_stats(struct zone *zone)
+{
+       memset(zone->vm_stat, 0, sizeof(zone->vm_stat));
+}
+
+extern void inc_zone_state(struct zone *, enum zone_stat_item);
+
+#ifdef CONFIG_SMP
+void __mod_zone_page_state(struct zone *, enum zone_stat_item item, int);
+void __inc_zone_page_state(struct page *, enum zone_stat_item);
+void __dec_zone_page_state(struct page *, enum zone_stat_item);
+
+void mod_zone_page_state(struct zone *, enum zone_stat_item, int);
+void inc_zone_page_state(struct page *, enum zone_stat_item);
+void dec_zone_page_state(struct page *, enum zone_stat_item);
+
+extern void inc_zone_state(struct zone *, enum zone_stat_item);
+
+void refresh_cpu_vm_stats(int);
+void refresh_vm_stats(void);
+
+#else /* CONFIG_SMP */
+
+/*
+ * We do not maintain differentials in a single processor configuration.
+ * The functions directly modify the zone and global counters.
+ */
+static inline void __mod_zone_page_state(struct zone *zone,
+                       enum zone_stat_item item, int delta)
+{
+       zone_page_state_add(delta, zone, item);
+}
+
+static inline void __inc_zone_page_state(struct page *page,
+                       enum zone_stat_item item)
+{
+       atomic_long_inc(&page_zone(page)->vm_stat[item]);
+       atomic_long_inc(&vm_stat[item]);
+}
+
+static inline void __dec_zone_page_state(struct page *page,
+                       enum zone_stat_item item)
+{
+       atomic_long_dec(&page_zone(page)->vm_stat[item]);
+       atomic_long_dec(&vm_stat[item]);
+}
+
+/*
+ * We only use atomic operations to update counters. So there is no need to
+ * disable interrupts.
+ */
+#define inc_zone_page_state __inc_zone_page_state
+#define dec_zone_page_state __dec_zone_page_state
+#define mod_zone_page_state __mod_zone_page_state
+
+static inline void refresh_cpu_vm_stats(int cpu) { }
+static inline void refresh_vm_stats(void) { }
+#endif
+
+#endif /* _LINUX_VMSTAT_H */
index ad9c171bfa07177e0716e34a6d0c8be4e84b547d..3c43b95f4c0dd5062b07b5d3864027b0ca0aff89 100644 (file)
@@ -20,6 +20,7 @@ struct tuner_range {
 
 struct tuner_params {
        enum param_type type;
+
        /* Many Philips based tuners have a comment like this in their
         * datasheet:
         *
@@ -39,6 +40,60 @@ struct tuner_params {
         * static unless the control byte was sent first.
         */
        unsigned int cb_first_if_lower_freq:1;
+       /* Set to 1 if this tuner uses a tda9887 */
+       unsigned int has_tda9887:1;
+       /* Many Philips tuners use tda9887 PORT1 to select the FM radio
+          sensitivity. If this setting is 1, then set PORT1 to 1 to
+          get proper FM reception. */
+       unsigned int port1_fm_high_sensitivity:1;
+       /* Some Philips tuners use tda9887 PORT2 to select the FM radio
+          sensitivity. If this setting is 1, then set PORT2 to 1 to
+          get proper FM reception. */
+       unsigned int port2_fm_high_sensitivity:1;
+       /* Most tuners with a tda9887 use QSS mode. Some (cheaper) tuners
+          use Intercarrier mode. If this setting is 1, then the tuner
+          needs to be set to intercarrier mode. */
+       unsigned int intercarrier_mode:1;
+       /* This setting sets the default value for PORT1.
+          0 means inactive, 1 means active. Note: the actual bit
+          value written to the tda9887 is inverted. So a 0 here
+          means a 1 in the B6 bit. */
+       unsigned int port1_active:1;
+       /* This setting sets the default value for PORT2.
+          0 means inactive, 1 means active. Note: the actual bit
+          value written to the tda9887 is inverted. So a 0 here
+          means a 1 in the B7 bit. */
+       unsigned int port2_active:1;
+       /* Sometimes PORT1 is inverted when the SECAM-L' standard is selected.
+          Set this bit to 1 if this is needed. */
+       unsigned int port1_invert_for_secam_lc:1;
+       /* Sometimes PORT2 is inverted when the SECAM-L' standard is selected.
+          Set this bit to 1 if this is needed. */
+       unsigned int port2_invert_for_secam_lc:1;
+       /* Some cards require PORT1 to be 1 for mono Radio FM and 0 for stereo. */
+       unsigned int port1_set_for_fm_mono:1;
+       /* Default tda9887 TOP value in dB for the low band. Default is 0.
+          Range: -16:+15 */
+       signed int default_top_low:5;
+       /* Default tda9887 TOP value in dB for the mid band. Default is 0.
+          Range: -16:+15 */
+       signed int default_top_mid:5;
+       /* Default tda9887 TOP value in dB for the high band. Default is 0.
+          Range: -16:+15 */
+       signed int default_top_high:5;
+       /* Default tda9887 TOP value in dB for SECAM-L/L' for the low band.
+          Default is 0. Several tuners require a different TOP value for
+          the SECAM-L/L' standards. Range: -16:+15 */
+       signed int default_top_secam_low:5;
+       /* Default tda9887 TOP value in dB for SECAM-L/L' for the mid band.
+          Default is 0. Several tuners require a different TOP value for
+          the SECAM-L/L' standards. Range: -16:+15 */
+       signed int default_top_secam_mid:5;
+       /* Default tda9887 TOP value in dB for SECAM-L/L' for the high band.
+          Default is 0. Several tuners require a different TOP value for
+          the SECAM-L/L' standards. Range: -16:+15 */
+       signed int default_top_secam_high:5;
+
 
        unsigned int count;
        struct tuner_range *ranges;
index 795f81f9ec7ff9c4e064e085d6c491d351a39f19..5ba72d95280c3f87a4aa3f434805e375f69dc9e6 100644 (file)
@@ -53,10 +53,16 @@ struct unix_address {
 struct unix_skb_parms {
        struct ucred            creds;          /* Skb credentials      */
        struct scm_fp_list      *fp;            /* Passed files         */
+#ifdef CONFIG_SECURITY_NETWORK
+       char                    *secdata;       /* Security context     */
+       u32                     seclen;         /* Security length      */
+#endif
 };
 
 #define UNIXCB(skb)    (*(struct unix_skb_parms*)&((skb)->cb))
 #define UNIXCREDS(skb) (&UNIXCB((skb)).creds)
+#define UNIXSECDATA(skb)       (&UNIXCB((skb)).secdata)
+#define UNIXSECLEN(skb)                (&UNIXCB((skb)).seclen)
 
 #define unix_state_rlock(s)    spin_lock(&unix_sk(s)->lock)
 #define unix_state_runlock(s)  spin_unlock(&unix_sk(s)->lock)
index a398ae5e30f991c427638af44216de453492474f..ab29dafb1a6af2711557a202e70127e882e3b18c 100644 (file)
@@ -146,7 +146,7 @@ static inline void ip6_dst_store(struct sock *sk, struct dst_entry *dst,
        struct rt6_info *rt = (struct rt6_info *) dst;
 
        write_lock(&sk->sk_dst_lock);
-       __sk_dst_set(sk, dst);
+       sk_setup_caps(sk, dst);
        np->daddr_cache = daddr;
        np->dst_cookie = rt->rt6i_node ? rt->rt6i_node->fn_sernum : 0;
        write_unlock(&sk->sk_dst_lock);
index 75b5b9333fc75cc3b4289c80870b8a77ed6f0892..1925c65e617b9eddae6e199f660a72232e750235 100644 (file)
@@ -169,17 +169,23 @@ psched_tod_diff(int delta_sec, int bound)
 
 #define PSCHED_TADD2(tv, delta, tv_res) \
 ({ \
-          int __delta = (tv).tv_usec + (delta); \
-          (tv_res).tv_sec = (tv).tv_sec; \
-          if (__delta > USEC_PER_SEC) { (tv_res).tv_sec++; __delta -= USEC_PER_SEC; } \
+          int __delta = (delta); \
+          (tv_res) = (tv); \
+          while(__delta >= USEC_PER_SEC){ \
+                (tv_res).tv_sec++; \
+                __delta -= USEC_PER_SEC; \
+          } \
           (tv_res).tv_usec = __delta; \
 })
 
 #define PSCHED_TADD(tv, delta) \
 ({ \
-          (tv).tv_usec += (delta); \
-          if ((tv).tv_usec > USEC_PER_SEC) { (tv).tv_sec++; \
-                (tv).tv_usec -= USEC_PER_SEC; } \
+          int __delta = (delta); \
+          while(__delta >= USEC_PER_SEC){ \
+                (tv).tv_sec++; \
+                __delta -= USEC_PER_SEC; \
+          } \
+          (tv).tv_usec = __delta; \
 })
 
 /* Set/check that time is in the "past perfect";
index 3b6dc15c68a58fcd0c19996a4f058a1f6879588b..a225d6371cb12f5d5efa6b4318d1a54004c4bc01 100644 (file)
@@ -36,7 +36,8 @@
 struct net_protocol {
        int                     (*handler)(struct sk_buff *skb);
        void                    (*err_handler)(struct sk_buff *skb, u32 info);
-       struct sk_buff         *(*gso_segment)(struct sk_buff *skb, int sg);
+       struct sk_buff         *(*gso_segment)(struct sk_buff *skb,
+                                              int features);
        int                     no_policy;
 };
 
@@ -49,11 +50,17 @@ struct inet6_protocol
                               struct inet6_skb_parm *opt,
                               int type, int code, int offset,
                               __u32 info);
+
+       struct sk_buff *(*gso_segment)(struct sk_buff *skb,
+                                      int features);
+
        unsigned int    flags;  /* INET6_PROTO_xxx */
 };
 
 #define INET6_PROTO_NOPOLICY   0x1
 #define INET6_PROTO_FINAL      0x2
+/* This should be set for any extension header which is compatible with GSO. */
+#define INET6_PROTO_GSO_EXTHDR 0x4
 #endif
 
 /* This is used to register socket interfaces for IP protocols.  */
index 540619cb7160f20e590471110ce63811c1d6e267..02daa097cdcd0cefcf81be18e75667a910ccf1a6 100644 (file)
@@ -19,6 +19,10 @@ struct scm_cookie
 {
        struct ucred            creds;          /* Skb credentials      */
        struct scm_fp_list      *fp;            /* Passed files         */
+#ifdef CONFIG_SECURITY_NETWORK
+       char                    *secdata;       /* Security context     */
+       u32                     seclen;         /* Security length      */
+#endif
        unsigned long           seq;            /* Connection seqno     */
 };
 
@@ -48,6 +52,17 @@ static __inline__ int scm_send(struct socket *sock, struct msghdr *msg,
        return __scm_send(sock, msg, scm);
 }
 
+#ifdef CONFIG_SECURITY_NETWORK
+static inline void scm_passec(struct socket *sock, struct msghdr *msg, struct scm_cookie *scm)
+{
+       if (test_bit(SOCK_PASSSEC, &sock->flags) && scm->secdata != NULL)
+               put_cmsg(msg, SOL_SOCKET, SCM_SECURITY, scm->seclen, scm->secdata);
+}
+#else
+static inline void scm_passec(struct socket *sock, struct msghdr *msg, struct scm_cookie *scm)
+{ }
+#endif /* CONFIG_SECURITY_NETWORK */
+
 static __inline__ void scm_recv(struct socket *sock, struct msghdr *msg,
                                struct scm_cookie *scm, int flags)
 {
@@ -62,6 +77,8 @@ static __inline__ void scm_recv(struct socket *sock, struct msghdr *msg,
        if (test_bit(SOCK_PASSCRED, &sock->flags))
                put_cmsg(msg, SOL_SOCKET, SCM_CREDENTIALS, sizeof(scm->creds), &scm->creds);
 
+       scm_passec(sock, msg, scm);
+
        if (!scm->fp)
                return;
        
index 2d8d6adf16161b9dff029cfee3418e66b77d5f1f..7b3d6b856946d7689aa430e157927bef0741eff2 100644 (file)
@@ -140,6 +140,7 @@ struct sock_common {
   *    @sk_flags: %SO_LINGER (l_onoff), %SO_BROADCAST, %SO_KEEPALIVE, %SO_OOBINLINE settings
   *    @sk_no_check: %SO_NO_CHECK setting, wether or not checkup packets
   *    @sk_route_caps: route capabilities (e.g. %NETIF_F_TSO)
+  *    @sk_gso_type: GSO type (e.g. %SKB_GSO_TCPV4)
   *    @sk_lingertime: %SO_LINGER l_linger setting
   *    @sk_backlog: always used with the per-socket spinlock held
   *    @sk_callback_lock: used with the callbacks in the end of this struct
@@ -211,6 +212,7 @@ struct sock {
        gfp_t                   sk_allocation;
        int                     sk_sndbuf;
        int                     sk_route_caps;
+       int                     sk_gso_type;
        int                     sk_rcvlowat;
        unsigned long           sk_flags;
        unsigned long           sk_lingertime;
@@ -383,7 +385,6 @@ enum sock_flags {
        SOCK_USE_WRITE_QUEUE, /* whether to call sk->sk_write_space in sock_wfree */
        SOCK_DBG, /* %SO_DEBUG setting */
        SOCK_RCVTSTAMP, /* %SO_TIMESTAMP setting */
-       SOCK_NO_LARGESEND, /* whether to sent large segments or not */
        SOCK_LOCALROUTE, /* route locally only, %SO_DONTROUTE setting */
        SOCK_QUEUE_SHRUNK, /* write queue has been shrunk recently */
 };
@@ -1026,15 +1027,20 @@ extern struct dst_entry *__sk_dst_check(struct sock *sk, u32 cookie);
 
 extern struct dst_entry *sk_dst_check(struct sock *sk, u32 cookie);
 
+static inline int sk_can_gso(const struct sock *sk)
+{
+       return net_gso_ok(sk->sk_route_caps, sk->sk_gso_type);
+}
+
 static inline void sk_setup_caps(struct sock *sk, struct dst_entry *dst)
 {
        __sk_dst_set(sk, dst);
        sk->sk_route_caps = dst->dev->features;
        if (sk->sk_route_caps & NETIF_F_GSO)
-               sk->sk_route_caps |= NETIF_F_TSO;
-       if (sk->sk_route_caps & NETIF_F_TSO) {
-               if (sock_flag(sk, SOCK_NO_LARGESEND) || dst->header_len)
-                       sk->sk_route_caps &= ~NETIF_F_TSO;
+               sk->sk_route_caps |= NETIF_F_GSO_MASK;
+       if (sk_can_gso(sk)) {
+               if (dst->header_len)
+                       sk->sk_route_caps &= ~NETIF_F_GSO_MASK;
                else 
                        sk->sk_route_caps |= NETIF_F_SG | NETIF_F_HW_CSUM;
        }
index ca3d38dfc00bb3911c697dea4a936f36b1edd067..3cd803b0d7a531537961483aec4ea77923b8d418 100644 (file)
@@ -751,7 +751,7 @@ static inline int tcp_is_cwnd_limited(const struct sock *sk, u32 in_flight)
        if (in_flight >= tp->snd_cwnd)
                return 1;
 
-       if (!(sk->sk_route_caps & NETIF_F_TSO))
+       if (!sk_can_gso(sk))
                return 0;
 
        left = tp->snd_cwnd - in_flight;
@@ -1086,7 +1086,7 @@ extern struct request_sock_ops tcp_request_sock_ops;
 
 extern int tcp_v4_destroy_sock(struct sock *sk);
 
-extern struct sk_buff *tcp_tso_segment(struct sk_buff *skb, int sg);
+extern struct sk_buff *tcp_tso_segment(struct sk_buff *skb, int features);
 
 #ifdef CONFIG_PROC_FS
 extern int  tcp4_proc_init(void);
index c6b84397448dac0b810079c96fe1c642773b16fd..4629d77173f23e9954cdf6106d581de1b668c559 100644 (file)
@@ -31,10 +31,9 @@ static inline void TCP_ECN_send_syn(struct sock *sk, struct tcp_sock *tp,
                                    struct sk_buff *skb)
 {
        tp->ecn_flags = 0;
-       if (sysctl_tcp_ecn && !(sk->sk_route_caps & NETIF_F_TSO)) {
+       if (sysctl_tcp_ecn) {
                TCP_SKB_CB(skb)->flags |= TCPCB_FLAG_ECE|TCPCB_FLAG_CWR;
                tp->ecn_flags = TCP_ECN_OK;
-               sock_set_flag(sk, SOCK_NO_LARGESEND);
        }
 }
 
@@ -56,6 +55,7 @@ static inline void TCP_ECN_send(struct sock *sk, struct tcp_sock *tp,
                        if (tp->ecn_flags&TCP_ECN_QUEUE_CWR) {
                                tp->ecn_flags &= ~TCP_ECN_QUEUE_CWR;
                                skb->h.th->cwr = 1;
+                               skb_shinfo(skb)->gso_type |= SKB_GSO_TCP_ECN;
                        }
                } else {
                        /* ACK or retransmitted segment: clear ECT|CE */
index f70f2fd273c2152708bdac6800d038229b58a8cc..a5b073a103e7cf9cd5a3438765a97e6468c23c6f 100644 (file)
@@ -54,8 +54,8 @@ config LOCK_KERNEL
 
 config INIT_ENV_ARG_LIMIT
        int
-       default 32 if !USERMODE
-       default 128 if USERMODE
+       default 32 if !UML
+       default 128 if UML
        help
          Maximum of each of the number of arguments and environment
          variables passed to init from the kernel command line.
@@ -379,6 +379,15 @@ config SLAB
          SLOB is more space efficient but does not scale well and is
          more susceptible to fragmentation.
 
+config VM_EVENT_COUNTERS
+       default y
+       bool "Enable VM event counters for /proc/vmstat" if EMBEDDED
+       help
+         VM event counters are only needed to for event counts to be
+         shown. They have no function for the kernel itself. This
+         option allows the disabling of the VM event counters.
+         /proc/vmstat will only show page counts.
+
 endmenu                # General setup
 
 config TINY_SHMEM
index bce0eb7f4f8fb50413a516b1a3bafbb8ae81b821..b2f3b566790e8ed8a04d8c7870f50b08bc859225 100644 (file)
@@ -11,7 +11,6 @@
 
 #define __KERNEL_SYSCALLS__
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/proc_fs.h>
@@ -446,10 +445,17 @@ static void __init boot_cpu_init(void)
        cpu_set(cpu, cpu_possible_map);
 }
 
+void __init __attribute__((weak)) smp_setup_processor_id(void)
+{
+}
+
 asmlinkage void __init start_kernel(void)
 {
        char * command_line;
        extern struct kernel_param __start___param[], __stop___param[];
+
+       smp_setup_processor_id();
+
 /*
  * Interrupts are still disabled. Do necessary setups, then
  * enable them
index a544dfbb082a652625dc2f6b2b1b1adbe057233c..4d20cfd38f0abbc6c9311deaa829e7b79aa12839 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 #include <linux/compat.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/highuid.h>
 #include <linux/init.h>
index 00f015a092d292347d781a60bf9f72c71b4381d1..cd92d342953e500717557a475f09dca9535c6c1a 100644 (file)
--- a/ipc/msg.c
+++ b/ipc/msg.c
@@ -19,7 +19,6 @@
  */
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/msg.h>
 #include <linux/spinlock.h>
index fce0bc8b5ad6f9c8652883a62c0b5ff2821f3853..6013c751156fe81bee30536bef27bab7792eb1bb 100644 (file)
--- a/ipc/sem.c
+++ b/ipc/sem.c
@@ -66,7 +66,6 @@
  * Dustin Kirkland <dustin.kirkland@us.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
 #include <linux/init.h>
index fe7ae73b698159cadb35290a13f187a6596c7c32..940b0c9b13aab7c33159760bba2a3a53756779dd 100644 (file)
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -17,7 +17,6 @@
  * Dustin Kirkland <dustin.kirkland@us.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/mm.h>
 #include <linux/hugetlb.h>
index 8193299f45f664e5b01e74960c804e9421bc4cf1..67b6d178db6e17d95b54e84b75361aec9a0544cc 100644 (file)
@@ -14,7 +14,6 @@
  *            Dustin Kirkland <dustin.kirkland@us.ibm.com>
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/shm.h>
 #include <linux/init.h>
index 126ca43d5d2ba9eb566af4380668c9546266efcd..f18e0b8df3e1d036e6276befb3e707c4610944de 100644 (file)
@@ -43,7 +43,6 @@
  * a struct file opened for write. Fixed. 2/6/2000, AV.
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/acct.h>
index 82443fb433efcb9d550126be82dabf80c0308c23..d417ca1db79b02fc3cb2d30a3a2122494afd0f14 100644 (file)
@@ -445,7 +445,7 @@ void audit_send_reply(int pid, int seq, int type, int done, int multi,
  * Check for appropriate CAP_AUDIT_ capabilities on incoming audit
  * control messages.
  */
-static int audit_netlink_ok(kernel_cap_t eff_cap, u16 msg_type)
+static int audit_netlink_ok(struct sk_buff *skb, u16 msg_type)
 {
        int err = 0;
 
@@ -459,13 +459,13 @@ static int audit_netlink_ok(kernel_cap_t eff_cap, u16 msg_type)
        case AUDIT_DEL:
        case AUDIT_DEL_RULE:
        case AUDIT_SIGNAL_INFO:
-               if (!cap_raised(eff_cap, CAP_AUDIT_CONTROL))
+               if (security_netlink_recv(skb, CAP_AUDIT_CONTROL))
                        err = -EPERM;
                break;
        case AUDIT_USER:
        case AUDIT_FIRST_USER_MSG...AUDIT_LAST_USER_MSG:
        case AUDIT_FIRST_USER_MSG2...AUDIT_LAST_USER_MSG2:
-               if (!cap_raised(eff_cap, CAP_AUDIT_WRITE))
+               if (security_netlink_recv(skb, CAP_AUDIT_WRITE))
                        err = -EPERM;
                break;
        default:  /* bad msg */
@@ -488,7 +488,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
        char                    *ctx;
        u32                     len;
 
-       err = audit_netlink_ok(NETLINK_CB(skb).eff_cap, msg_type);
+       err = audit_netlink_ok(skb, msg_type);
        if (err)
                return err;
 
index 009e1ebdcb88e57b62d64daafb4be1be9468a514..f9e31974f4addf262cee19d1049f6b1fd55bc47e 100644 (file)
@@ -23,7 +23,6 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/proc_fs.h>
index 1535af3a912d9d7e6a21fb7d6c610e808c1cddda..c232dc0774389378c9fc8130ac84fb4067835f43 100644 (file)
@@ -18,7 +18,6 @@
  *  distribution for more details.
  */
 
-#include <linux/config.h>
 #include <linux/cpu.h>
 #include <linux/cpumask.h>
 #include <linux/cpuset.h>
@@ -1064,7 +1063,7 @@ static int update_flag(cpuset_flagbits_t bit, struct cpuset *cs, char *buf)
 }
 
 /*
- * Frequency meter - How fast is some event occuring?
+ * Frequency meter - How fast is some event occurring?
  *
  * These routines manage a digitally filtered, constant time based,
  * event frequency meter.  There are four routines:
index c01cead2cfd61978cb342853651fe9b158365976..3c2eaea66b1e16347bcd564b0c492b8f026dcf21 100644 (file)
@@ -7,7 +7,6 @@
  * 2001-05-06  Complete rewrite,  Christoph Hellwig (hch@infradead.org)
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/kmod.h>
index ab06b9f88f64677ca036dea0285f740ccb54e1e9..7f7ef2258553a76cb3ce9afdf777c195a648030a 100644 (file)
@@ -4,7 +4,6 @@
  *  Copyright (C) 1991, 1992  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/interrupt.h>
index 628198a4f28a722b25b37c26ecbd401c67919a8d..9064bf9e131beed8295ec3656982fc4791a5c79c 100644 (file)
@@ -11,7 +11,6 @@
  * management can be a bitch. See 'mm/memory.c': 'copy_page_range()'
  */
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/init.h>
 #include <linux/unistd.h>
index 9eb1d518ee1c8dc8da68f7903cd207482352e8fa..b7117e81ac56b57e6f634275388c0370450abc9c 100644 (file)
@@ -7,7 +7,6 @@
  * This file contains driver APIs to the irq subsystem.
  */
 
-#include <linux/config.h>
 #include <linux/irq.h>
 #include <linux/module.h>
 #include <linux/random.h>
index 20a997c73c3d0c3951c66f8b5c8e6fd61f51abc3..1b7157af051c44f01f4d928728e819c80c12edc3 100644 (file)
@@ -20,7 +20,6 @@
 */
 #define __KERNEL_SYSCALLS__
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/syscalls.h>
index 9e28478a17a50a0081503f7ae54cd25eb6142d44..e0ffe4ab091785d36bccdec062a1fc2cb26c4936 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kobject.h>
 #include <linux/string.h>
 #include <linux/sysfs.h>
index 99c022ac3d21c7105e5d37fdc288e0dc7527d8a8..281172f01e9a032c6285ce6a43c2f8d97c42aa75 100644 (file)
@@ -16,7 +16,6 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleloader.h>
 #include <linux/init.h>
index cc2a4c9c36ac231781a41fba4031a17bc3b1f7e7..ab13f0f668b53efa359233c7c6829e08683f4b65 100644 (file)
@@ -8,7 +8,6 @@
  * This function is used through-out the kernel (including mm and fs)
  * to indicate a major problem.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/delay.h>
index af43ecdc8d9b21b21599bd1f3c8a063bc5c43100..91aea7aa532e53940fc7c63367d6a9634249be95 100644 (file)
@@ -15,7 +15,6 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
-#include <linux/config.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index 857b4fa091244758b5fc0976cf44d58f914f20ec..ae44a70aae8acb4664ca46107d04525205c32ad6 100644 (file)
@@ -100,18 +100,6 @@ config PM_STD_PARTITION
          suspended image to. It will simply pick the first available swap 
          device.
 
-config SWSUSP_ENCRYPT
-       bool "Encrypt suspend image"
-       depends on SOFTWARE_SUSPEND && CRYPTO=y && (CRYPTO_AES=y || CRYPTO_AES_586=y || CRYPTO_AES_X86_64=y)
-       default ""
-       ---help---
-         To prevent data gathering from swap after resume you can encrypt
-         the suspend image with a temporary key that is deleted on
-         resume.
-
-         Note that the temporary key is stored unencrypted on disk while the
-         system is suspended.
-
 config SUSPEND_SMP
        bool
        depends on HOTPLUG_CPU && X86 && PM
index 95b7fe17f124c259a54d0227ac1d0a08ddb62800..39ae24d2a4159224bd4d33a80f6d38e52875ebab 100644 (file)
@@ -26,7 +26,6 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/interrupt.h>                   /* For in_interrupt() */
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/smp.h>
 #include <linux/security.h>
index 5a730fdb1a2cecf6b10c2112ba777fbb5fb7c794..d5bd75e7501cadef54651a3f886514f0fbcc6f92 100644 (file)
@@ -13,7 +13,6 @@
  *     to resolve timer interrupt livelocks, William Irwin, Oracle, 2004
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/profile.h>
 #include <linux/bootmem.h>
index bf1130d81b7f09d35c81e436592b407e56c526d3..129cf046e56173d16201bcc089eff410bd530eca 100644 (file)
@@ -7,7 +7,6 @@
  * Arbitrary resource management.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/errno.h>
index 2629c1711fd62be84574153e0ae62077895f3b36..d5e37072ea54cb21af2b86925daf07677c27e920 100644 (file)
@@ -4386,7 +4386,16 @@ asmlinkage long sys_sched_yield(void)
        return 0;
 }
 
-static inline void __cond_resched(void)
+static inline int __resched_legal(void)
+{
+       if (unlikely(preempt_count()))
+               return 0;
+       if (unlikely(system_state != SYSTEM_RUNNING))
+               return 0;
+       return 1;
+}
+
+static void __cond_resched(void)
 {
 #ifdef CONFIG_DEBUG_SPINLOCK_SLEEP
        __might_sleep(__FILE__, __LINE__);
@@ -4396,10 +4405,6 @@ static inline void __cond_resched(void)
         * PREEMPT_ACTIVE, which could trigger a second
         * cond_resched() call.
         */
-       if (unlikely(preempt_count()))
-               return;
-       if (unlikely(system_state != SYSTEM_RUNNING))
-               return;
        do {
                add_preempt_count(PREEMPT_ACTIVE);
                schedule();
@@ -4409,13 +4414,12 @@ static inline void __cond_resched(void)
 
 int __sched cond_resched(void)
 {
-       if (need_resched()) {
+       if (need_resched() && __resched_legal()) {
                __cond_resched();
                return 1;
        }
        return 0;
 }
-
 EXPORT_SYMBOL(cond_resched);
 
 /*
@@ -4436,7 +4440,7 @@ int cond_resched_lock(spinlock_t *lock)
                ret = 1;
                spin_lock(lock);
        }
-       if (need_resched()) {
+       if (need_resched() && __resched_legal()) {
                _raw_spin_unlock(lock);
                preempt_enable_no_resched();
                __cond_resched();
@@ -4445,14 +4449,13 @@ int cond_resched_lock(spinlock_t *lock)
        }
        return ret;
 }
-
 EXPORT_SYMBOL(cond_resched_lock);
 
 int __sched cond_resched_softirq(void)
 {
        BUG_ON(!in_softirq());
 
-       if (need_resched()) {
+       if (need_resched() && __resched_legal()) {
                __local_bh_enable();
                __cond_resched();
                local_bh_disable();
@@ -4460,10 +4463,8 @@ int __sched cond_resched_softirq(void)
        }
        return 0;
 }
-
 EXPORT_SYMBOL(cond_resched_softirq);
 
-
 /**
  * yield - yield the current processor to other threads.
  *
index 52adf53929f656f6806714ea6f0ade39b986b882..7fe874d12faeb4dba5cb6cfa30b376c045831f4b 100644 (file)
@@ -10,7 +10,6 @@
  *             to allow signals to be sent reliably.
  */
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/smp_lock.h>
@@ -584,7 +583,7 @@ static int check_kill_permission(int sig, struct siginfo *info,
            && !capable(CAP_KILL))
                return error;
 
-       error = security_task_kill(t, info, sig);
+       error = security_task_kill(t, info, sig, 0);
        if (!error)
                audit_signal_info(sig, t); /* Let audit system see the signal */
        return error;
@@ -1107,7 +1106,7 @@ kill_proc_info(int sig, struct siginfo *info, pid_t pid)
 
 /* like kill_proc_info(), but doesn't use uid/euid of "current" */
 int kill_proc_info_as_uid(int sig, struct siginfo *info, pid_t pid,
-                     uid_t uid, uid_t euid)
+                     uid_t uid, uid_t euid, u32 secid)
 {
        int ret = -EINVAL;
        struct task_struct *p;
@@ -1127,6 +1126,9 @@ int kill_proc_info_as_uid(int sig, struct siginfo *info, pid_t pid,
                ret = -EPERM;
                goto out_unlock;
        }
+       ret = security_task_kill(p, info, sig, secid);
+       if (ret)
+               goto out_unlock;
        if (sig && p->sighand) {
                unsigned long flags;
                spin_lock_irqsave(&p->sighand->siglock, flags);
index d1b810782bc4e1b643faac72733074e2dc492fa4..b31e54eadf56585d8da288e076768bf9932f5711 100644 (file)
@@ -9,7 +9,6 @@
  * SMP and the DEBUG_SPINLOCK cases. (UP-nondebug inlines them)
  */
 
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <linux/preempt.h>
 #include <linux/spinlock.h>
index 2d5179c67cec727f40476e2f9e75fbb9eeeb8d8c..dbb3b9c7ea64b17cf6aa7b96dcd007469e18f5d5 100644 (file)
@@ -4,7 +4,6 @@
  *  Copyright (C) 1991, 1992  Linus Torvalds
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/mm.h>
 #include <linux/utsname.h>
index 93a2c53986488f5c29cf05318db80241118bda74..99a58f2790777481f646c8f2af0eced8a9b5e0f2 100644 (file)
@@ -18,7 +18,6 @@
  *  Removed it and replaced it with older style, 03/23/00, Bill Wendling
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/mm.h>
 #include <linux/swap.h>
@@ -933,15 +932,6 @@ static ctl_table vm_table[] = {
                .strategy       = &sysctl_intvec,
                .extra1         = &zero,
        },
-       {
-               .ctl_name       = VM_ZONE_RECLAIM_INTERVAL,
-               .procname       = "zone_reclaim_interval",
-               .data           = &zone_reclaim_interval,
-               .maxlen         = sizeof(zone_reclaim_interval),
-               .mode           = 0644,
-               .proc_handler   = &proc_dointvec_jiffies,
-               .strategy       = &sysctl_jiffies,
-       },
 #endif
 #ifdef CONFIG_X86_32
        {
index 791681cfea981d49e5b9f74de41f928c1c8da38b..5985d866531f29b4165f81603cd30487acd111bd 100644 (file)
@@ -3,7 +3,6 @@
  *
  * (C) 2004 William Irwin, Oracle
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/sched.h>
index 6bb7319e09a006588e697bda90a063703868b04c..a2055bc3ef623d1b2f4659bdbd7dfe729ae47aa6 100644 (file)
@@ -7,7 +7,6 @@
  * and panic() information from reaching the user.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/spinlock.h>
 #include <linux/tty.h>
index 01c08b5836f5e8441920df88df4efc9859776efe..463f4560f16da1e6d03394b46d8e0763948501f7 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/sort.h>
index 4d5f18889fa54c7535dcf8fced756d4344a88afc..128180523860388004c5679394b2d64946d37c62 100644 (file)
@@ -12,7 +12,6 @@
  *
  * rw semaphores implemented November 1999 by Benjamin LaHaise <bcrl@kvack.org>
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/err.h>
 #include <linux/init.h>
index d8b6bb419d49cd9fed7c6e33b7bc8c1850477f35..93c15ee3f8ea7f71aa41ea9c81aee8d514c7f530 100644 (file)
@@ -6,7 +6,6 @@
  * DEBUG_SPINLOCK.
  */
 
-#include <linux/config.h>
 #include <linux/spinlock.h>
 #include <linux/interrupt.h>
 #include <linux/delay.h>
index 6f3093efbd7b0f084edc5b3a85e6b71bbb357783..2cb4a437942e980979098d302efef163d3d3f9f1 100644 (file)
@@ -93,7 +93,6 @@
  * ==========================================================================
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index c4c1ac5fbd1aea372553ce094171ff8c152b2433..0110e4414805440968a90a14e87c4fda8093edce 100644 (file)
@@ -35,7 +35,6 @@
  *   matchings spread over multiple fragments, then go BM.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/types.h>
index ca3211206eef99bd253532c4faf03c67bd582e17..87847c2ae9e28d9330c28df80dbef75ad99206b4 100644 (file)
@@ -26,7 +26,6 @@
  *   however while in strict mode the average runtime can be better.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index 7fd45451b44a61e95371008305e6caa87b959a55..3ced628cab4b92dde2c3da1ca984b81e720c73c1 100644 (file)
@@ -30,7 +30,6 @@
  *   [2] See finite automation theory
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/string.h>
index 0b8f73f2ed1640a86832dafac9301b003011a91f..9dd824c11eeb9602e95fbdb9a28ffb6276acf5e0 100644 (file)
@@ -10,7 +10,7 @@ mmu-$(CONFIG_MMU)     := fremap.o highmem.o madvise.o memory.o mincore.o \
 obj-y                  := bootmem.o filemap.o mempool.o oom_kill.o fadvise.o \
                           page_alloc.o page-writeback.o pdflush.o \
                           readahead.o swap.o truncate.o vmscan.o \
-                          prio_tree.o util.o mmzone.o $(mmu-y)
+                          prio_tree.o util.o mmzone.o vmstat.o $(mmu-y)
 
 obj-$(CONFIG_SWAP)     += page_io.o swap_state.o swapfile.o thrash.o
 obj-$(CONFIG_HUGETLBFS)        += hugetlb.o
index 648f2c0c8e18896b1f979f2f31a848986cc6492b..d087fc3d3281cdeab1d751652b34702d65bf023e 100644 (file)
@@ -9,7 +9,6 @@
  * most "normal" filesystems (but you don't /have/ to use this:
  * the NFS filesystem used to do this differently, for example)
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/compiler.h>
@@ -120,7 +119,7 @@ void __remove_from_page_cache(struct page *page)
        radix_tree_delete(&mapping->page_tree, page->index);
        page->mapping = NULL;
        mapping->nrpages--;
-       pagecache_acct(-1);
+       __dec_zone_page_state(page, NR_FILE_PAGES);
 }
 
 void remove_from_page_cache(struct page *page)
@@ -449,7 +448,7 @@ int add_to_page_cache(struct page *page, struct address_space *mapping,
                        page->mapping = mapping;
                        page->index = offset;
                        mapping->nrpages++;
-                       pagecache_acct(1);
+                       __inc_zone_page_state(page, NR_FILE_PAGES);
                }
                write_unlock_irq(&mapping->tree_lock);
                radix_tree_preload_end();
@@ -1416,7 +1415,7 @@ retry_find:
                 */
                if (!did_readaround) {
                        majmin = VM_FAULT_MAJOR;
-                       inc_page_state(pgmajfault);
+                       count_vm_event(PGMAJFAULT);
                }
                did_readaround = 1;
                ra_pages = max_sane_readahead(file->f_ra.ra_pages);
@@ -1487,7 +1486,7 @@ no_cached_page:
 page_not_uptodate:
        if (!did_readaround) {
                majmin = VM_FAULT_MAJOR;
-               inc_page_state(pgmajfault);
+               count_vm_event(PGMAJFAULT);
        }
        lock_page(page);
 
index 9b274fdf9d08d66c3ec78ae396284a6a0c70ac61..9b2a5403c447a7bd0f147700a0db48df5b0b58f4 100644 (file)
@@ -315,8 +315,8 @@ static void bounce_end_io(struct bio *bio, mempool_t *pool, int err)
                if (bvec->bv_page == org_vec->bv_page)
                        continue;
 
-               mempool_free(bvec->bv_page, pool);      
-               dec_page_state(nr_bounce);
+               dec_zone_page_state(bvec->bv_page, NR_BOUNCE);
+               mempool_free(bvec->bv_page, pool);
        }
 
        bio_endio(bio_orig, bio_orig->bi_size, err);
@@ -397,7 +397,7 @@ static void __blk_queue_bounce(request_queue_t *q, struct bio **bio_orig,
                to->bv_page = mempool_alloc(pool, q->bounce_gfp);
                to->bv_len = from->bv_len;
                to->bv_offset = from->bv_offset;
-               inc_page_state(nr_bounce);
+               inc_zone_page_state(to->bv_page, NR_BOUNCE);
 
                if (rw == WRITE) {
                        char *vto, *vfrom;
index 247b5c312b9b073d1c76769a67e73d39ee8bdd39..7e2a4b1580e31474ed3adb1136cc1f6a1ea4c650 100644 (file)
@@ -126,7 +126,7 @@ static void free_pte_range(struct mmu_gather *tlb, pmd_t *pmd)
        pmd_clear(pmd);
        pte_lock_deinit(page);
        pte_free_tlb(tlb, page);
-       dec_page_state(nr_page_table_pages);
+       dec_zone_page_state(page, NR_PAGETABLE);
        tlb->mm->nr_ptes--;
 }
 
@@ -311,7 +311,7 @@ int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address)
                pte_free(new);
        } else {
                mm->nr_ptes++;
-               inc_page_state(nr_page_table_pages);
+               inc_zone_page_state(new, NR_PAGETABLE);
                pmd_populate(mm, pmd, new);
        }
        spin_unlock(&mm->page_table_lock);
@@ -1951,7 +1951,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
 
                /* Had to read the page from swap area: Major fault */
                ret = VM_FAULT_MAJOR;
-               inc_page_state(pgmajfault);
+               count_vm_event(PGMAJFAULT);
                grab_swap_token();
        }
 
@@ -2324,7 +2324,7 @@ int __handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
 
        __set_current_state(TASK_RUNNING);
 
-       inc_page_state(pgfault);
+       count_vm_event(PGFAULT);
 
        if (unlikely(is_vm_hugetlb_page(vma)))
                return hugetlb_fault(mm, vma, address, write_access);
index ea4038838b0a2b4c95a46cc3d4f1eaad25556f5f..01c9fb97c619135edce3431d265e397f49113b58 100644 (file)
@@ -4,7 +4,6 @@
  *  Copyright (C)
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/mm.h>
 #include <linux/swap.h>
index 6b9740bbf4c0199cee2096ad6e6544d4c6b8a255..e07e27e846a22981a05804aefcdbdb31d88f15be 100644 (file)
@@ -1209,10 +1209,8 @@ static struct page *alloc_page_interleave(gfp_t gfp, unsigned order,
 
        zl = NODE_DATA(nid)->node_zonelists + gfp_zone(gfp);
        page = __alloc_pages(gfp, order, zl);
-       if (page && page_zone(page) == zl->zones[0]) {
-               zone_pcp(zl->zones[0],get_cpu())->interleave_hit++;
-               put_cpu();
-       }
+       if (page && page_zone(page) == zl->zones[0])
+               inc_zone_page_state(page, NUMA_INTERLEAVE_HIT);
        return page;
 }
 
index 6446c6134b04d8a8a10993e774b2bbe8bbcbd663..c1868ecdbc5facfd8ba25835e71e05cfee9d9680 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -96,7 +96,7 @@ int __vm_enough_memory(long pages, int cap_sys_admin)
        if (sysctl_overcommit_memory == OVERCOMMIT_GUESS) {
                unsigned long n;
 
-               free = get_page_cache_size();
+               free = global_page_state(NR_FILE_PAGES);
                free += nr_swap_pages;
 
                /*
index b022370e612e990d0d9d80c12e65b0f97ba5c81e..0959ee1a4795e65b3dba523770b0d2ea4033baca 100644 (file)
@@ -5,7 +5,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/mmzone.h>
 #include <linux/module.h>
index 029fadac0fb5d1d6f89f5ddbd216ccb4004e5804..5151c44a8257aa49cecfa7ffb38572e9bad93dc4 100644 (file)
@@ -1122,7 +1122,7 @@ int __vm_enough_memory(long pages, int cap_sys_admin)
        if (sysctl_overcommit_memory == OVERCOMMIT_GUESS) {
                unsigned long n;
 
-               free = get_page_cache_size();
+               free = global_page_state(NR_FILE_PAGES);
                free += nr_swap_pages;
 
                /*
index 4ec7026c7bab14e1f4a9e512742e318a6630607f..e630188ccc40cb84dbc6bbf0266d22621bc23df5 100644 (file)
@@ -99,22 +99,6 @@ EXPORT_SYMBOL(laptop_mode);
 
 static void background_writeout(unsigned long _min_pages);
 
-struct writeback_state
-{
-       unsigned long nr_dirty;
-       unsigned long nr_unstable;
-       unsigned long nr_mapped;
-       unsigned long nr_writeback;
-};
-
-static void get_writeback_state(struct writeback_state *wbs)
-{
-       wbs->nr_dirty = read_page_state(nr_dirty);
-       wbs->nr_unstable = read_page_state(nr_unstable);
-       wbs->nr_mapped = read_page_state(nr_mapped);
-       wbs->nr_writeback = read_page_state(nr_writeback);
-}
-
 /*
  * Work out the current dirty-memory clamping and background writeout
  * thresholds.
@@ -133,8 +117,8 @@ static void get_writeback_state(struct writeback_state *wbs)
  * clamping level.
  */
 static void
-get_dirty_limits(struct writeback_state *wbs, long *pbackground, long *pdirty,
-               struct address_space *mapping)
+get_dirty_limits(long *pbackground, long *pdirty,
+                                       struct address_space *mapping)
 {
        int background_ratio;           /* Percentages */
        int dirty_ratio;
@@ -144,8 +128,6 @@ get_dirty_limits(struct writeback_state *wbs, long *pbackground, long *pdirty,
        unsigned long available_memory = total_pages;
        struct task_struct *tsk;
 
-       get_writeback_state(wbs);
-
 #ifdef CONFIG_HIGHMEM
        /*
         * If this mapping can only allocate from low memory,
@@ -156,7 +138,9 @@ get_dirty_limits(struct writeback_state *wbs, long *pbackground, long *pdirty,
 #endif
 
 
-       unmapped_ratio = 100 - (wbs->nr_mapped * 100) / total_pages;
+       unmapped_ratio = 100 - ((global_page_state(NR_FILE_MAPPED) +
+                               global_page_state(NR_ANON_PAGES)) * 100) /
+                                       total_pages;
 
        dirty_ratio = vm_dirty_ratio;
        if (dirty_ratio > unmapped_ratio / 2)
@@ -189,7 +173,6 @@ get_dirty_limits(struct writeback_state *wbs, long *pbackground, long *pdirty,
  */
 static void balance_dirty_pages(struct address_space *mapping)
 {
-       struct writeback_state wbs;
        long nr_reclaimable;
        long background_thresh;
        long dirty_thresh;
@@ -207,11 +190,12 @@ static void balance_dirty_pages(struct address_space *mapping)
                        .range_cyclic   = 1,
                };
 
-               get_dirty_limits(&wbs, &background_thresh,
-                                       &dirty_thresh, mapping);
-               nr_reclaimable = wbs.nr_dirty + wbs.nr_unstable;
-               if (nr_reclaimable + wbs.nr_writeback <= dirty_thresh)
-                       break;
+               get_dirty_limits(&background_thresh, &dirty_thresh, mapping);
+               nr_reclaimable = global_page_state(NR_FILE_DIRTY) +
+                                       global_page_state(NR_UNSTABLE_NFS);
+               if (nr_reclaimable + global_page_state(NR_WRITEBACK) <=
+                       dirty_thresh)
+                               break;
 
                if (!dirty_exceeded)
                        dirty_exceeded = 1;
@@ -224,11 +208,14 @@ static void balance_dirty_pages(struct address_space *mapping)
                 */
                if (nr_reclaimable) {
                        writeback_inodes(&wbc);
-                       get_dirty_limits(&wbs, &background_thresh,
-                                       &dirty_thresh, mapping);
-                       nr_reclaimable = wbs.nr_dirty + wbs.nr_unstable;
-                       if (nr_reclaimable + wbs.nr_writeback <= dirty_thresh)
-                               break;
+                       get_dirty_limits(&background_thresh,
+                                               &dirty_thresh, mapping);
+                       nr_reclaimable = global_page_state(NR_FILE_DIRTY) +
+                                       global_page_state(NR_UNSTABLE_NFS);
+                       if (nr_reclaimable +
+                               global_page_state(NR_WRITEBACK)
+                                       <= dirty_thresh)
+                                               break;
                        pages_written += write_chunk - wbc.nr_to_write;
                        if (pages_written >= write_chunk)
                                break;          /* We've done our duty */
@@ -236,8 +223,9 @@ static void balance_dirty_pages(struct address_space *mapping)
                blk_congestion_wait(WRITE, HZ/10);
        }
 
-       if (nr_reclaimable + wbs.nr_writeback <= dirty_thresh && dirty_exceeded)
-               dirty_exceeded = 0;
+       if (nr_reclaimable + global_page_state(NR_WRITEBACK)
+               <= dirty_thresh && dirty_exceeded)
+                       dirty_exceeded = 0;
 
        if (writeback_in_progress(bdi))
                return;         /* pdflush is already working this queue */
@@ -299,12 +287,11 @@ EXPORT_SYMBOL(balance_dirty_pages_ratelimited_nr);
 
 void throttle_vm_writeout(void)
 {
-       struct writeback_state wbs;
        long background_thresh;
        long dirty_thresh;
 
         for ( ; ; ) {
-               get_dirty_limits(&wbs, &background_thresh, &dirty_thresh, NULL);
+               get_dirty_limits(&background_thresh, &dirty_thresh, NULL);
 
                 /*
                  * Boost the allowable dirty threshold a bit for page
@@ -312,8 +299,9 @@ void throttle_vm_writeout(void)
                  */
                 dirty_thresh += dirty_thresh / 10;      /* wheeee... */
 
-                if (wbs.nr_unstable + wbs.nr_writeback <= dirty_thresh)
-                        break;
+                if (global_page_state(NR_UNSTABLE_NFS) +
+                       global_page_state(NR_WRITEBACK) <= dirty_thresh)
+                               break;
                 blk_congestion_wait(WRITE, HZ/10);
         }
 }
@@ -336,12 +324,12 @@ static void background_writeout(unsigned long _min_pages)
        };
 
        for ( ; ; ) {
-               struct writeback_state wbs;
                long background_thresh;
                long dirty_thresh;
 
-               get_dirty_limits(&wbs, &background_thresh, &dirty_thresh, NULL);
-               if (wbs.nr_dirty + wbs.nr_unstable < background_thresh
+               get_dirty_limits(&background_thresh, &dirty_thresh, NULL);
+               if (global_page_state(NR_FILE_DIRTY) +
+                       global_page_state(NR_UNSTABLE_NFS) < background_thresh
                                && min_pages <= 0)
                        break;
                wbc.encountered_congestion = 0;
@@ -365,12 +353,9 @@ static void background_writeout(unsigned long _min_pages)
  */
 int wakeup_pdflush(long nr_pages)
 {
-       if (nr_pages == 0) {
-               struct writeback_state wbs;
-
-               get_writeback_state(&wbs);
-               nr_pages = wbs.nr_dirty + wbs.nr_unstable;
-       }
+       if (nr_pages == 0)
+               nr_pages = global_page_state(NR_FILE_DIRTY) +
+                               global_page_state(NR_UNSTABLE_NFS);
        return pdflush_operation(background_writeout, nr_pages);
 }
 
@@ -401,7 +386,6 @@ static void wb_kupdate(unsigned long arg)
        unsigned long start_jif;
        unsigned long next_jif;
        long nr_to_write;
-       struct writeback_state wbs;
        struct writeback_control wbc = {
                .bdi            = NULL,
                .sync_mode      = WB_SYNC_NONE,
@@ -414,11 +398,11 @@ static void wb_kupdate(unsigned long arg)
 
        sync_supers();
 
-       get_writeback_state(&wbs);
        oldest_jif = jiffies - dirty_expire_interval;
        start_jif = jiffies;
        next_jif = start_jif + dirty_writeback_interval;
-       nr_to_write = wbs.nr_dirty + wbs.nr_unstable +
+       nr_to_write = global_page_state(NR_FILE_DIRTY) +
+                       global_page_state(NR_UNSTABLE_NFS) +
                        (inodes_stat.nr_inodes - inodes_stat.nr_unused);
        while (nr_to_write > 0) {
                wbc.encountered_congestion = 0;
@@ -640,7 +624,8 @@ int __set_page_dirty_nobuffers(struct page *page)
                        if (mapping2) { /* Race with truncate? */
                                BUG_ON(mapping2 != mapping);
                                if (mapping_cap_account_dirty(mapping))
-                                       inc_page_state(nr_dirty);
+                                       __inc_zone_page_state(page,
+                                                               NR_FILE_DIRTY);
                                radix_tree_tag_set(&mapping->page_tree,
                                        page_index(page), PAGECACHE_TAG_DIRTY);
                        }
@@ -727,9 +712,9 @@ int test_clear_page_dirty(struct page *page)
                        radix_tree_tag_clear(&mapping->page_tree,
                                                page_index(page),
                                                PAGECACHE_TAG_DIRTY);
-                       write_unlock_irqrestore(&mapping->tree_lock, flags);
                        if (mapping_cap_account_dirty(mapping))
-                               dec_page_state(nr_dirty);
+                               __dec_zone_page_state(page, NR_FILE_DIRTY);
+                       write_unlock_irqrestore(&mapping->tree_lock, flags);
                        return 1;
                }
                write_unlock_irqrestore(&mapping->tree_lock, flags);
@@ -760,7 +745,7 @@ int clear_page_dirty_for_io(struct page *page)
        if (mapping) {
                if (TestClearPageDirty(page)) {
                        if (mapping_cap_account_dirty(mapping))
-                               dec_page_state(nr_dirty);
+                               dec_zone_page_state(page, NR_FILE_DIRTY);
                        return 1;
                }
                return 0;
index 084a2de7e52a8c8b4ceaa3c78997199d17f770e5..3e792a583f3ba98c1224d532e2be146866d35642 100644 (file)
@@ -14,7 +14,6 @@
  *          (lots of bits borrowed from Ingo Molnar & Andrew Morton)
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/mm.h>
 #include <linux/swap.h>
@@ -456,7 +455,7 @@ static void __free_pages_ok(struct page *page, unsigned int order)
 
        kernel_map_pages(page, 1 << order, 0);
        local_irq_save(flags);
-       __mod_page_state(pgfree, 1 << order);
+       __count_vm_events(PGFREE, 1 << order);
        free_one_page(page_zone(page), page, order);
        local_irq_restore(flags);
 }
@@ -709,27 +708,6 @@ void drain_local_pages(void)
 }
 #endif /* CONFIG_PM */
 
-static void zone_statistics(struct zonelist *zonelist, struct zone *z, int cpu)
-{
-#ifdef CONFIG_NUMA
-       pg_data_t *pg = z->zone_pgdat;
-       pg_data_t *orig = zonelist->zones[0]->zone_pgdat;
-       struct per_cpu_pageset *p;
-
-       p = zone_pcp(z, cpu);
-       if (pg == orig) {
-               p->numa_hit++;
-       } else {
-               p->numa_miss++;
-               zone_pcp(zonelist->zones[0], cpu)->numa_foreign++;
-       }
-       if (pg == NODE_DATA(numa_node_id()))
-               p->local_node++;
-       else
-               p->other_node++;
-#endif
-}
-
 /*
  * Free a 0-order page
  */
@@ -750,7 +728,7 @@ static void fastcall free_hot_cold_page(struct page *page, int cold)
 
        pcp = &zone_pcp(zone, get_cpu())->pcp[cold];
        local_irq_save(flags);
-       __inc_page_state(pgfree);
+       __count_vm_event(PGFREE);
        list_add(&page->lru, &pcp->list);
        pcp->count++;
        if (pcp->count >= pcp->high) {
@@ -826,8 +804,8 @@ again:
                        goto failed;
        }
 
-       __mod_page_state_zone(zone, pgalloc, 1 << order);
-       zone_statistics(zonelist, zone, cpu);
+       __count_zone_vm_events(PGALLOC, zone, 1 << order);
+       zone_statistics(zonelist, zone);
        local_irq_restore(flags);
        put_cpu();
 
@@ -1231,141 +1209,6 @@ static void show_node(struct zone *zone)
 #define show_node(zone)        do { } while (0)
 #endif
 
-/*
- * Accumulate the page_state information across all CPUs.
- * The result is unavoidably approximate - it can change
- * during and after execution of this function.
- */
-static DEFINE_PER_CPU(struct page_state, page_states) = {0};
-
-atomic_t nr_pagecache = ATOMIC_INIT(0);
-EXPORT_SYMBOL(nr_pagecache);
-#ifdef CONFIG_SMP
-DEFINE_PER_CPU(long, nr_pagecache_local) = 0;
-#endif
-
-static void __get_page_state(struct page_state *ret, int nr, cpumask_t *cpumask)
-{
-       unsigned cpu;
-
-       memset(ret, 0, nr * sizeof(unsigned long));
-       cpus_and(*cpumask, *cpumask, cpu_online_map);
-
-       for_each_cpu_mask(cpu, *cpumask) {
-               unsigned long *in;
-               unsigned long *out;
-               unsigned off;
-               unsigned next_cpu;
-
-               in = (unsigned long *)&per_cpu(page_states, cpu);
-
-               next_cpu = next_cpu(cpu, *cpumask);
-               if (likely(next_cpu < NR_CPUS))
-                       prefetch(&per_cpu(page_states, next_cpu));
-
-               out = (unsigned long *)ret;
-               for (off = 0; off < nr; off++)
-                       *out++ += *in++;
-       }
-}
-
-void get_page_state_node(struct page_state *ret, int node)
-{
-       int nr;
-       cpumask_t mask = node_to_cpumask(node);
-
-       nr = offsetof(struct page_state, GET_PAGE_STATE_LAST);
-       nr /= sizeof(unsigned long);
-
-       __get_page_state(ret, nr+1, &mask);
-}
-
-void get_page_state(struct page_state *ret)
-{
-       int nr;
-       cpumask_t mask = CPU_MASK_ALL;
-
-       nr = offsetof(struct page_state, GET_PAGE_STATE_LAST);
-       nr /= sizeof(unsigned long);
-
-       __get_page_state(ret, nr + 1, &mask);
-}
-
-void get_full_page_state(struct page_state *ret)
-{
-       cpumask_t mask = CPU_MASK_ALL;
-
-       __get_page_state(ret, sizeof(*ret) / sizeof(unsigned long), &mask);
-}
-
-unsigned long read_page_state_offset(unsigned long offset)
-{
-       unsigned long ret = 0;
-       int cpu;
-
-       for_each_online_cpu(cpu) {
-               unsigned long in;
-
-               in = (unsigned long)&per_cpu(page_states, cpu) + offset;
-               ret += *((unsigned long *)in);
-       }
-       return ret;
-}
-
-void __mod_page_state_offset(unsigned long offset, unsigned long delta)
-{
-       void *ptr;
-
-       ptr = &__get_cpu_var(page_states);
-       *(unsigned long *)(ptr + offset) += delta;
-}
-EXPORT_SYMBOL(__mod_page_state_offset);
-
-void mod_page_state_offset(unsigned long offset, unsigned long delta)
-{
-       unsigned long flags;
-       void *ptr;
-
-       local_irq_save(flags);
-       ptr = &__get_cpu_var(page_states);
-       *(unsigned long *)(ptr + offset) += delta;
-       local_irq_restore(flags);
-}
-EXPORT_SYMBOL(mod_page_state_offset);
-
-void __get_zone_counts(unsigned long *active, unsigned long *inactive,
-                       unsigned long *free, struct pglist_data *pgdat)
-{
-       struct zone *zones = pgdat->node_zones;
-       int i;
-
-       *active = 0;
-       *inactive = 0;
-       *free = 0;
-       for (i = 0; i < MAX_NR_ZONES; i++) {
-               *active += zones[i].nr_active;
-               *inactive += zones[i].nr_inactive;
-               *free += zones[i].free_pages;
-       }
-}
-
-void get_zone_counts(unsigned long *active,
-               unsigned long *inactive, unsigned long *free)
-{
-       struct pglist_data *pgdat;
-
-       *active = 0;
-       *inactive = 0;
-       *free = 0;
-       for_each_online_pgdat(pgdat) {
-               unsigned long l, m, n;
-               __get_zone_counts(&l, &m, &n, pgdat);
-               *active += l;
-               *inactive += m;
-               *free += n;
-       }
-}
-
 void si_meminfo(struct sysinfo *val)
 {
        val->totalram = totalram_pages;
@@ -1406,7 +1249,6 @@ void si_meminfo_node(struct sysinfo *val, int nid)
  */
 void show_free_areas(void)
 {
-       struct page_state ps;
        int cpu, temperature;
        unsigned long active;
        unsigned long inactive;
@@ -1438,7 +1280,6 @@ void show_free_areas(void)
                }
        }
 
-       get_page_state(&ps);
        get_zone_counts(&active, &inactive, &free);
 
        printk("Free pages: %11ukB (%ukB HighMem)\n",
@@ -1449,13 +1290,13 @@ void show_free_areas(void)
                "unstable:%lu free:%u slab:%lu mapped:%lu pagetables:%lu\n",
                active,
                inactive,
-               ps.nr_dirty,
-               ps.nr_writeback,
-               ps.nr_unstable,
+               global_page_state(NR_FILE_DIRTY),
+               global_page_state(NR_WRITEBACK),
+               global_page_state(NR_UNSTABLE_NFS),
                nr_free_pages(),
-               ps.nr_slab,
-               ps.nr_mapped,
-               ps.nr_page_table_pages);
+               global_page_state(NR_SLAB),
+               global_page_state(NR_FILE_MAPPED),
+               global_page_state(NR_PAGETABLE));
 
        for_each_zone(zone) {
                int i;
@@ -2180,6 +2021,7 @@ static void __meminit free_area_init_core(struct pglist_data *pgdat,
                zone->nr_scan_inactive = 0;
                zone->nr_active = 0;
                zone->nr_inactive = 0;
+               zap_zone_vm_stats(zone);
                atomic_set(&zone->reclaim_in_progress, 0);
                if (!size)
                        continue;
@@ -2253,307 +2095,18 @@ void __init free_area_init(unsigned long *zones_size)
                        __pa(PAGE_OFFSET) >> PAGE_SHIFT, NULL);
 }
 
-#ifdef CONFIG_PROC_FS
-
-#include <linux/seq_file.h>
-
-static void *frag_start(struct seq_file *m, loff_t *pos)
-{
-       pg_data_t *pgdat;
-       loff_t node = *pos;
-       for (pgdat = first_online_pgdat();
-            pgdat && node;
-            pgdat = next_online_pgdat(pgdat))
-               --node;
-
-       return pgdat;
-}
-
-static void *frag_next(struct seq_file *m, void *arg, loff_t *pos)
-{
-       pg_data_t *pgdat = (pg_data_t *)arg;
-
-       (*pos)++;
-       return next_online_pgdat(pgdat);
-}
-
-static void frag_stop(struct seq_file *m, void *arg)
-{
-}
-
-/* 
- * This walks the free areas for each zone.
- */
-static int frag_show(struct seq_file *m, void *arg)
-{
-       pg_data_t *pgdat = (pg_data_t *)arg;
-       struct zone *zone;
-       struct zone *node_zones = pgdat->node_zones;
-       unsigned long flags;
-       int order;
-
-       for (zone = node_zones; zone - node_zones < MAX_NR_ZONES; ++zone) {
-               if (!populated_zone(zone))
-                       continue;
-
-               spin_lock_irqsave(&zone->lock, flags);
-               seq_printf(m, "Node %d, zone %8s ", pgdat->node_id, zone->name);
-               for (order = 0; order < MAX_ORDER; ++order)
-                       seq_printf(m, "%6lu ", zone->free_area[order].nr_free);
-               spin_unlock_irqrestore(&zone->lock, flags);
-               seq_putc(m, '\n');
-       }
-       return 0;
-}
-
-struct seq_operations fragmentation_op = {
-       .start  = frag_start,
-       .next   = frag_next,
-       .stop   = frag_stop,
-       .show   = frag_show,
-};
-
-/*
- * Output information about zones in @pgdat.
- */
-static int zoneinfo_show(struct seq_file *m, void *arg)
-{
-       pg_data_t *pgdat = arg;
-       struct zone *zone;
-       struct zone *node_zones = pgdat->node_zones;
-       unsigned long flags;
-
-       for (zone = node_zones; zone - node_zones < MAX_NR_ZONES; zone++) {
-               int i;
-
-               if (!populated_zone(zone))
-                       continue;
-
-               spin_lock_irqsave(&zone->lock, flags);
-               seq_printf(m, "Node %d, zone %8s", pgdat->node_id, zone->name);
-               seq_printf(m,
-                          "\n  pages free     %lu"
-                          "\n        min      %lu"
-                          "\n        low      %lu"
-                          "\n        high     %lu"
-                          "\n        active   %lu"
-                          "\n        inactive %lu"
-                          "\n        scanned  %lu (a: %lu i: %lu)"
-                          "\n        spanned  %lu"
-                          "\n        present  %lu",
-                          zone->free_pages,
-                          zone->pages_min,
-                          zone->pages_low,
-                          zone->pages_high,
-                          zone->nr_active,
-                          zone->nr_inactive,
-                          zone->pages_scanned,
-                          zone->nr_scan_active, zone->nr_scan_inactive,
-                          zone->spanned_pages,
-                          zone->present_pages);
-               seq_printf(m,
-                          "\n        protection: (%lu",
-                          zone->lowmem_reserve[0]);
-               for (i = 1; i < ARRAY_SIZE(zone->lowmem_reserve); i++)
-                       seq_printf(m, ", %lu", zone->lowmem_reserve[i]);
-               seq_printf(m,
-                          ")"
-                          "\n  pagesets");
-               for_each_online_cpu(i) {
-                       struct per_cpu_pageset *pageset;
-                       int j;
-
-                       pageset = zone_pcp(zone, i);
-                       for (j = 0; j < ARRAY_SIZE(pageset->pcp); j++) {
-                               if (pageset->pcp[j].count)
-                                       break;
-                       }
-                       if (j == ARRAY_SIZE(pageset->pcp))
-                               continue;
-                       for (j = 0; j < ARRAY_SIZE(pageset->pcp); j++) {
-                               seq_printf(m,
-                                          "\n    cpu: %i pcp: %i"
-                                          "\n              count: %i"
-                                          "\n              high:  %i"
-                                          "\n              batch: %i",
-                                          i, j,
-                                          pageset->pcp[j].count,
-                                          pageset->pcp[j].high,
-                                          pageset->pcp[j].batch);
-                       }
-#ifdef CONFIG_NUMA
-                       seq_printf(m,
-                                  "\n            numa_hit:       %lu"
-                                  "\n            numa_miss:      %lu"
-                                  "\n            numa_foreign:   %lu"
-                                  "\n            interleave_hit: %lu"
-                                  "\n            local_node:     %lu"
-                                  "\n            other_node:     %lu",
-                                  pageset->numa_hit,
-                                  pageset->numa_miss,
-                                  pageset->numa_foreign,
-                                  pageset->interleave_hit,
-                                  pageset->local_node,
-                                  pageset->other_node);
-#endif
-               }
-               seq_printf(m,
-                          "\n  all_unreclaimable: %u"
-                          "\n  prev_priority:     %i"
-                          "\n  temp_priority:     %i"
-                          "\n  start_pfn:         %lu",
-                          zone->all_unreclaimable,
-                          zone->prev_priority,
-                          zone->temp_priority,
-                          zone->zone_start_pfn);
-               spin_unlock_irqrestore(&zone->lock, flags);
-               seq_putc(m, '\n');
-       }
-       return 0;
-}
-
-struct seq_operations zoneinfo_op = {
-       .start  = frag_start, /* iterate over all zones. The same as in
-                              * fragmentation. */
-       .next   = frag_next,
-       .stop   = frag_stop,
-       .show   = zoneinfo_show,
-};
-
-static char *vmstat_text[] = {
-       "nr_dirty",
-       "nr_writeback",
-       "nr_unstable",
-       "nr_page_table_pages",
-       "nr_mapped",
-       "nr_slab",
-
-       "pgpgin",
-       "pgpgout",
-       "pswpin",
-       "pswpout",
-
-       "pgalloc_high",
-       "pgalloc_normal",
-       "pgalloc_dma32",
-       "pgalloc_dma",
-
-       "pgfree",
-       "pgactivate",
-       "pgdeactivate",
-
-       "pgfault",
-       "pgmajfault",
-
-       "pgrefill_high",
-       "pgrefill_normal",
-       "pgrefill_dma32",
-       "pgrefill_dma",
-
-       "pgsteal_high",
-       "pgsteal_normal",
-       "pgsteal_dma32",
-       "pgsteal_dma",
-
-       "pgscan_kswapd_high",
-       "pgscan_kswapd_normal",
-       "pgscan_kswapd_dma32",
-       "pgscan_kswapd_dma",
-
-       "pgscan_direct_high",
-       "pgscan_direct_normal",
-       "pgscan_direct_dma32",
-       "pgscan_direct_dma",
-
-       "pginodesteal",
-       "slabs_scanned",
-       "kswapd_steal",
-       "kswapd_inodesteal",
-       "pageoutrun",
-       "allocstall",
-
-       "pgrotated",
-       "nr_bounce",
-};
-
-static void *vmstat_start(struct seq_file *m, loff_t *pos)
-{
-       struct page_state *ps;
-
-       if (*pos >= ARRAY_SIZE(vmstat_text))
-               return NULL;
-
-       ps = kmalloc(sizeof(*ps), GFP_KERNEL);
-       m->private = ps;
-       if (!ps)
-               return ERR_PTR(-ENOMEM);
-       get_full_page_state(ps);
-       ps->pgpgin /= 2;                /* sectors -> kbytes */
-       ps->pgpgout /= 2;
-       return (unsigned long *)ps + *pos;
-}
-
-static void *vmstat_next(struct seq_file *m, void *arg, loff_t *pos)
-{
-       (*pos)++;
-       if (*pos >= ARRAY_SIZE(vmstat_text))
-               return NULL;
-       return (unsigned long *)m->private + *pos;
-}
-
-static int vmstat_show(struct seq_file *m, void *arg)
-{
-       unsigned long *l = arg;
-       unsigned long off = l - (unsigned long *)m->private;
-
-       seq_printf(m, "%s %lu\n", vmstat_text[off], *l);
-       return 0;
-}
-
-static void vmstat_stop(struct seq_file *m, void *arg)
-{
-       kfree(m->private);
-       m->private = NULL;
-}
-
-struct seq_operations vmstat_op = {
-       .start  = vmstat_start,
-       .next   = vmstat_next,
-       .stop   = vmstat_stop,
-       .show   = vmstat_show,
-};
-
-#endif /* CONFIG_PROC_FS */
-
 #ifdef CONFIG_HOTPLUG_CPU
 static int page_alloc_cpu_notify(struct notifier_block *self,
                                 unsigned long action, void *hcpu)
 {
        int cpu = (unsigned long)hcpu;
-       long *count;
-       unsigned long *src, *dest;
 
        if (action == CPU_DEAD) {
-               int i;
-
-               /* Drain local pagecache count. */
-               count = &per_cpu(nr_pagecache_local, cpu);
-               atomic_add(*count, &nr_pagecache);
-               *count = 0;
                local_irq_disable();
                __drain_pages(cpu);
-
-               /* Add dead cpu's page_states to our own. */
-               dest = (unsigned long *)&__get_cpu_var(page_states);
-               src = (unsigned long *)&per_cpu(page_states, cpu);
-
-               for (i = 0; i < sizeof(struct page_state)/sizeof(unsigned long);
-                               i++) {
-                       dest[i] += src[i];
-                       src[i] = 0;
-               }
-
+               vm_events_fold_cpu(cpu);
                local_irq_enable();
+               refresh_cpu_vm_stats(cpu);
        }
        return NOTIFY_OK;
 }
index bb2b0d53889cbd89557fee7cc8873e4860df34e1..88029948d00aeebdda7f413899faef6bd2196d1a 100644 (file)
@@ -101,7 +101,7 @@ int swap_writepage(struct page *page, struct writeback_control *wbc)
        }
        if (wbc->sync_mode == WB_SYNC_ALL)
                rw |= (1 << BIO_RW_SYNC);
-       inc_page_state(pswpout);
+       count_vm_event(PSWPOUT);
        set_page_writeback(page);
        unlock_page(page);
        submit_bio(rw, bio);
@@ -123,7 +123,7 @@ int swap_readpage(struct file *file, struct page *page)
                ret = -ENOMEM;
                goto out;
        }
-       inc_page_state(pswpin);
+       count_vm_event(PSWPIN);
        submit_bio(READ, bio);
 out:
        return ret;
index e76909e880ca8c2847b3b405f03ed56b453a4a44..40158b59729ec3f6dac4390ecd5a57db7c719b52 100644 (file)
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -455,7 +455,7 @@ static void __page_set_anon_rmap(struct page *page,
         * nr_mapped state can be updated without turning off
         * interrupts because it is not modified via interrupt.
         */
-       __inc_page_state(nr_mapped);
+       __inc_zone_page_state(page, NR_ANON_PAGES);
 }
 
 /**
@@ -499,7 +499,7 @@ void page_add_new_anon_rmap(struct page *page,
 void page_add_file_rmap(struct page *page)
 {
        if (atomic_inc_and_test(&page->_mapcount))
-               __inc_page_state(nr_mapped);
+               __inc_zone_page_state(page, NR_FILE_MAPPED);
 }
 
 /**
@@ -531,7 +531,8 @@ void page_remove_rmap(struct page *page)
                 */
                if (page_test_and_clear_dirty(page))
                        set_page_dirty(page);
-               __dec_page_state(nr_mapped);
+               __dec_zone_page_state(page,
+                               PageAnon(page) ? NR_ANON_PAGES : NR_FILE_MAPPED);
        }
 }
 
index b14ff817d16264db042313ccb8ba362edc1be014..db21c51531ca894f647d1aea6b79f72b0d6fc56d 100644 (file)
@@ -23,7 +23,6 @@
  * which makes it a completely usable filesystem.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/fs.h>
@@ -1045,12 +1044,12 @@ repeat:
                swappage = lookup_swap_cache(swap);
                if (!swappage) {
                        shmem_swp_unmap(entry);
-                       spin_unlock(&info->lock);
                        /* here we actually do the io */
                        if (type && *type == VM_FAULT_MINOR) {
-                               inc_page_state(pgmajfault);
+                               __count_vm_event(PGMAJFAULT);
                                *type = VM_FAULT_MAJOR;
                        }
+                       spin_unlock(&info->lock);
                        swappage = shmem_swapin(info, swap, idx);
                        if (!swappage) {
                                spin_lock(&info->lock);
index 233e39d14caf5ae2966c9df788c9c73dc6a563e3..3936af3445427b6fa71e48dea318ce302b2b0900 100644 (file)
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -309,6 +309,13 @@ struct kmem_list3 __initdata initkmem_list3[NUM_INIT_LISTS];
 #define        SIZE_AC 1
 #define        SIZE_L3 (1 + MAX_NUMNODES)
 
+static int drain_freelist(struct kmem_cache *cache,
+                       struct kmem_list3 *l3, int tofree);
+static void free_block(struct kmem_cache *cachep, void **objpp, int len,
+                       int node);
+static void enable_cpucache(struct kmem_cache *cachep);
+static void cache_reap(void *unused);
+
 /*
  * This function must be completely optimized away if a constant is passed to
  * it.  Mostly the same as what is in linux/slab.h except it returns an index.
@@ -456,7 +463,7 @@ struct kmem_cache {
 #define        STATS_DEC_ACTIVE(x)     ((x)->num_active--)
 #define        STATS_INC_ALLOCED(x)    ((x)->num_allocations++)
 #define        STATS_INC_GROWN(x)      ((x)->grown++)
-#define        STATS_INC_REAPED(x)     ((x)->reaped++)
+#define        STATS_ADD_REAPED(x,y)   ((x)->reaped += (y))
 #define        STATS_SET_HIGH(x)                                               \
        do {                                                            \
                if ((x)->num_active > (x)->high_mark)                   \
@@ -480,7 +487,7 @@ struct kmem_cache {
 #define        STATS_DEC_ACTIVE(x)     do { } while (0)
 #define        STATS_INC_ALLOCED(x)    do { } while (0)
 #define        STATS_INC_GROWN(x)      do { } while (0)
-#define        STATS_INC_REAPED(x)     do { } while (0)
+#define        STATS_ADD_REAPED(x,y)   do { } while (0)
 #define        STATS_SET_HIGH(x)       do { } while (0)
 #define        STATS_INC_ERR(x)        do { } while (0)
 #define        STATS_INC_NODEALLOCS(x) do { } while (0)
@@ -700,12 +707,6 @@ int slab_is_available(void)
 
 static DEFINE_PER_CPU(struct work_struct, reap_work);
 
-static void free_block(struct kmem_cache *cachep, void **objpp, int len,
-                       int node);
-static void enable_cpucache(struct kmem_cache *cachep);
-static void cache_reap(void *unused);
-static int __node_shrink(struct kmem_cache *cachep, int node);
-
 static inline struct array_cache *cpu_cache_get(struct kmem_cache *cachep)
 {
        return cachep->array[smp_processor_id()];
@@ -1241,10 +1242,7 @@ free_array_cache:
                        l3 = cachep->nodelists[node];
                        if (!l3)
                                continue;
-                       spin_lock_irq(&l3->list_lock);
-                       /* free slabs belonging to this node */
-                       __node_shrink(cachep, node);
-                       spin_unlock_irq(&l3->list_lock);
+                       drain_freelist(cachep, l3, l3->free_objects);
                }
                mutex_unlock(&cache_chain_mutex);
                break;
@@ -1507,7 +1505,7 @@ static void *kmem_getpages(struct kmem_cache *cachep, gfp_t flags, int nodeid)
        nr_pages = (1 << cachep->gfporder);
        if (cachep->flags & SLAB_RECLAIM_ACCOUNT)
                atomic_add(nr_pages, &slab_reclaim_pages);
-       add_page_state(nr_slab, nr_pages);
+       add_zone_page_state(page_zone(page), NR_SLAB, nr_pages);
        for (i = 0; i < nr_pages; i++)
                __SetPageSlab(page + i);
        return page_address(page);
@@ -1522,12 +1520,12 @@ static void kmem_freepages(struct kmem_cache *cachep, void *addr)
        struct page *page = virt_to_page(addr);
        const unsigned long nr_freed = i;
 
+       sub_zone_page_state(page_zone(page), NR_SLAB, nr_freed);
        while (i--) {
                BUG_ON(!PageSlab(page));
                __ClearPageSlab(page);
                page++;
        }
-       sub_page_state(nr_slab, nr_freed);
        if (current->reclaim_state)
                current->reclaim_state->reclaimed_slab += nr_freed;
        free_pages((unsigned long)addr, cachep->gfporder);
@@ -2248,32 +2246,45 @@ static void drain_cpu_caches(struct kmem_cache *cachep)
        }
 }
 
-static int __node_shrink(struct kmem_cache *cachep, int node)
+/*
+ * Remove slabs from the list of free slabs.
+ * Specify the number of slabs to drain in tofree.
+ *
+ * Returns the actual number of slabs released.
+ */
+static int drain_freelist(struct kmem_cache *cache,
+                       struct kmem_list3 *l3, int tofree)
 {
+       struct list_head *p;
+       int nr_freed;
        struct slab *slabp;
-       struct kmem_list3 *l3 = cachep->nodelists[node];
-       int ret;
 
-       for (;;) {
-               struct list_head *p;
+       nr_freed = 0;
+       while (nr_freed < tofree && !list_empty(&l3->slabs_free)) {
 
+               spin_lock_irq(&l3->list_lock);
                p = l3->slabs_free.prev;
-               if (p == &l3->slabs_free)
-                       break;
+               if (p == &l3->slabs_free) {
+                       spin_unlock_irq(&l3->list_lock);
+                       goto out;
+               }
 
-               slabp = list_entry(l3->slabs_free.prev, struct slab, list);
+               slabp = list_entry(p, struct slab, list);
 #if DEBUG
                BUG_ON(slabp->inuse);
 #endif
                list_del(&slabp->list);
-
-               l3->free_objects -= cachep->num;
+               /*
+                * Safe to drop the lock. The slab is no longer linked
+                * to the cache.
+                */
+               l3->free_objects -= cache->num;
                spin_unlock_irq(&l3->list_lock);
-               slab_destroy(cachep, slabp);
-               spin_lock_irq(&l3->list_lock);
+               slab_destroy(cache, slabp);
+               nr_freed++;
        }
-       ret = !list_empty(&l3->slabs_full) || !list_empty(&l3->slabs_partial);
-       return ret;
+out:
+       return nr_freed;
 }
 
 static int __cache_shrink(struct kmem_cache *cachep)
@@ -2286,11 +2297,13 @@ static int __cache_shrink(struct kmem_cache *cachep)
        check_irq_on();
        for_each_online_node(i) {
                l3 = cachep->nodelists[i];
-               if (l3) {
-                       spin_lock_irq(&l3->list_lock);
-                       ret += __node_shrink(cachep, i);
-                       spin_unlock_irq(&l3->list_lock);
-               }
+               if (!l3)
+                       continue;
+
+               drain_freelist(cachep, l3, l3->free_objects);
+
+               ret += !list_empty(&l3->slabs_full) ||
+                       !list_empty(&l3->slabs_partial);
        }
        return (ret ? 1 : 0);
 }
@@ -3694,10 +3707,6 @@ static void cache_reap(void *unused)
        }
 
        list_for_each_entry(searchp, &cache_chain, next) {
-               struct list_head *p;
-               int tofree;
-               struct slab *slabp;
-
                check_irq_on();
 
                /*
@@ -3722,47 +3731,22 @@ static void cache_reap(void *unused)
 
                drain_array(searchp, l3, l3->shared, 0, node);
 
-               if (l3->free_touched) {
+               if (l3->free_touched)
                        l3->free_touched = 0;
-                       goto next;
-               }
-
-               tofree = (l3->free_limit + 5 * searchp->num - 1) /
-                               (5 * searchp->num);
-               do {
-                       /*
-                        * Do not lock if there are no free blocks.
-                        */
-                       if (list_empty(&l3->slabs_free))
-                               break;
-
-                       spin_lock_irq(&l3->list_lock);
-                       p = l3->slabs_free.next;
-                       if (p == &(l3->slabs_free)) {
-                               spin_unlock_irq(&l3->list_lock);
-                               break;
-                       }
+               else {
+                       int freed;
 
-                       slabp = list_entry(p, struct slab, list);
-                       BUG_ON(slabp->inuse);
-                       list_del(&slabp->list);
-                       STATS_INC_REAPED(searchp);
-
-                       /*
-                        * Safe to drop the lock. The slab is no longer linked
-                        * to the cache. searchp cannot disappear, we hold
-                        * cache_chain_lock
-                        */
-                       l3->free_objects -= searchp->num;
-                       spin_unlock_irq(&l3->list_lock);
-                       slab_destroy(searchp, slabp);
-               } while (--tofree > 0);
+                       freed = drain_freelist(searchp, l3, (l3->free_limit +
+                               5 * searchp->num - 1) / (5 * searchp->num));
+                       STATS_ADD_REAPED(searchp, freed);
+               }
 next:
                cond_resched();
        }
        check_irq_on();
        mutex_unlock(&cache_chain_mutex);
        next_reap_node();
+       refresh_cpu_vm_stats(smp_processor_id());
        /* Set up the next iteration */
        schedule_delayed_work(&__get_cpu_var(reap_work), REAPTIMEOUT_CPUC);
 }
index a68255ba4553770f7c4050857a11661160ea3942..7b52b20b9607f9c3be1f1244b4c5b14dce07f4a7 100644 (file)
--- a/mm/slob.c
+++ b/mm/slob.c
@@ -29,7 +29,6 @@
  * essentially no allocation space overhead.
  */
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/mm.h>
 #include <linux/cache.h>
index c7a2b3a0e46b2961fbc6fe6794e562be66def97e..86c52ab80878f1df2239ae9270c5f49b643ab1b0 100644 (file)
@@ -1,7 +1,6 @@
 /*
  * sparse memory mappings.
  */
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/mmzone.h>
 #include <linux/bootmem.h>
index 990868afc1c6aed8d3716af0fcea25d4e6776d8f..8fd095c4ae51b00b314e732ac9ea5547a5cd26b2 100644 (file)
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -87,7 +87,7 @@ int rotate_reclaimable_page(struct page *page)
        spin_lock_irqsave(&zone->lru_lock, flags);
        if (PageLRU(page) && !PageActive(page)) {
                list_move_tail(&page->lru, &zone->inactive_list);
-               inc_page_state(pgrotated);
+               __count_vm_event(PGROTATED);
        }
        if (!test_clear_page_writeback(page))
                BUG();
@@ -107,7 +107,7 @@ void fastcall activate_page(struct page *page)
                del_page_from_inactive_list(zone, page);
                SetPageActive(page);
                add_page_to_active_list(zone, page);
-               inc_page_state(pgactivate);
+               __count_vm_event(PGACTIVATE);
        }
        spin_unlock_irq(&zone->lru_lock);
 }
index 7535211bb495c9f54a3ece2e37feaa4c0589162d..fccbd9bba77b082f32db4be8d353a0399e6ac8b1 100644 (file)
@@ -87,7 +87,7 @@ static int __add_to_swap_cache(struct page *page, swp_entry_t entry,
                        SetPageSwapCache(page);
                        set_page_private(page, entry.val);
                        total_swapcache_pages++;
-                       pagecache_acct(1);
+                       __inc_zone_page_state(page, NR_FILE_PAGES);
                }
                write_unlock_irq(&swapper_space.tree_lock);
                radix_tree_preload_end();
@@ -132,7 +132,7 @@ void __delete_from_swap_cache(struct page *page)
        set_page_private(page, 0);
        ClearPageSwapCache(page);
        total_swapcache_pages--;
-       pagecache_acct(-1);
+       __dec_zone_page_state(page, NR_FILE_PAGES);
        INC_CACHE_INFO(del_total);
 }
 
index cc367f7e75d87f39f27a3f4c214a9174b61e87fd..e70d6c6d6fee6f626a0c247c53f213413454cd0e 100644 (file)
@@ -5,7 +5,6 @@
  *  Swap reorganised 29.12.95, Stephen Tweedie
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/hugetlb.h>
 #include <linux/mman.h>
index eeacb0d695c35233e57688e4d20314a149d1d22c..ff2ebe9458a37ef93c7e4908e1b6156e658c4c75 100644 (file)
@@ -47,8 +47,6 @@ struct scan_control {
        /* Incremented by the number of inactive pages that were scanned */
        unsigned long nr_scanned;
 
-       unsigned long nr_mapped;        /* From page_state */
-
        /* This context's GFP mask */
        gfp_t gfp_mask;
 
@@ -217,7 +215,7 @@ unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask,
                                break;
                        if (shrink_ret < nr_before)
                                ret += nr_before - shrink_ret;
-                       mod_page_state(slabs_scanned, this_scan);
+                       count_vm_events(SLABS_SCANNED, this_scan);
                        total_scan -= this_scan;
 
                        cond_resched();
@@ -571,7 +569,7 @@ keep:
        list_splice(&ret_pages, page_list);
        if (pagevec_count(&freed_pvec))
                __pagevec_release_nonlru(&freed_pvec);
-       mod_page_state(pgactivate, pgactivate);
+       count_vm_events(PGACTIVATE, pgactivate);
        return nr_reclaimed;
 }
 
@@ -661,11 +659,11 @@ static unsigned long shrink_inactive_list(unsigned long max_scan,
                nr_reclaimed += nr_freed;
                local_irq_disable();
                if (current_is_kswapd()) {
-                       __mod_page_state_zone(zone, pgscan_kswapd, nr_scan);
-                       __mod_page_state(kswapd_steal, nr_freed);
+                       __count_zone_vm_events(PGSCAN_KSWAPD, zone, nr_scan);
+                       __count_vm_events(KSWAPD_STEAL, nr_freed);
                } else
-                       __mod_page_state_zone(zone, pgscan_direct, nr_scan);
-               __mod_page_state_zone(zone, pgsteal, nr_freed);
+                       __count_zone_vm_events(PGSCAN_DIRECT, zone, nr_scan);
+               __count_vm_events(PGACTIVATE, nr_freed);
 
                if (nr_taken == 0)
                        goto done;
@@ -744,7 +742,9 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
                 * how much memory
                 * is mapped.
                 */
-               mapped_ratio = (sc->nr_mapped * 100) / vm_total_pages;
+               mapped_ratio = ((global_page_state(NR_FILE_MAPPED) +
+                               global_page_state(NR_ANON_PAGES)) * 100) /
+                                       vm_total_pages;
 
                /*
                 * Now decide how much we really want to unmap some pages.  The
@@ -841,11 +841,10 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
                }
        }
        zone->nr_active += pgmoved;
-       spin_unlock(&zone->lru_lock);
 
-       __mod_page_state_zone(zone, pgrefill, pgscanned);
-       __mod_page_state(pgdeactivate, pgdeactivate);
-       local_irq_enable();
+       __count_zone_vm_events(PGREFILL, zone, pgscanned);
+       __count_vm_events(PGDEACTIVATE, pgdeactivate);
+       spin_unlock_irq(&zone->lru_lock);
 
        pagevec_release(&pvec);
 }
@@ -977,7 +976,7 @@ unsigned long try_to_free_pages(struct zone **zones, gfp_t gfp_mask)
                .swappiness = vm_swappiness,
        };
 
-       inc_page_state(allocstall);
+       count_vm_event(ALLOCSTALL);
 
        for (i = 0; zones[i] != NULL; i++) {
                struct zone *zone = zones[i];
@@ -990,7 +989,6 @@ unsigned long try_to_free_pages(struct zone **zones, gfp_t gfp_mask)
        }
 
        for (priority = DEF_PRIORITY; priority >= 0; priority--) {
-               sc.nr_mapped = read_page_state(nr_mapped);
                sc.nr_scanned = 0;
                if (!priority)
                        disable_swap_token();
@@ -1075,9 +1073,7 @@ loop_again:
        total_scanned = 0;
        nr_reclaimed = 0;
        sc.may_writepage = !laptop_mode;
-       sc.nr_mapped = read_page_state(nr_mapped);
-
-       inc_page_state(pageoutrun);
+       count_vm_event(PAGEOUTRUN);
 
        for (i = 0; i < pgdat->nr_zones; i++) {
                struct zone *zone = pgdat->node_zones + i;
@@ -1365,7 +1361,7 @@ unsigned long shrink_all_memory(unsigned long nr_pages)
        for_each_zone(zone)
                lru_pages += zone->nr_active + zone->nr_inactive;
 
-       nr_slab = read_page_state(nr_slab);
+       nr_slab = global_page_state(NR_SLAB);
        /* If slab caches are huge, it's better to hit them first */
        while (nr_slab >= lru_pages) {
                reclaim_state.reclaimed_slab = 0;
@@ -1407,9 +1403,7 @@ unsigned long shrink_all_memory(unsigned long nr_pages)
                for (prio = DEF_PRIORITY; prio >= 0; prio--) {
                        unsigned long nr_to_scan = nr_pages - ret;
 
-                       sc.nr_mapped = read_page_state(nr_mapped);
                        sc.nr_scanned = 0;
-
                        ret += shrink_all_zones(nr_to_scan, prio, pass, &sc);
                        if (ret >= nr_pages)
                                goto out;
@@ -1522,11 +1516,6 @@ int zone_reclaim_mode __read_mostly;
 #define RECLAIM_SWAP (1<<2)    /* Swap pages out during reclaim */
 #define RECLAIM_SLAB (1<<3)    /* Do a global slab shrink if the zone is out of memory */
 
-/*
- * Mininum time between zone reclaim scans
- */
-int zone_reclaim_interval __read_mostly = 30*HZ;
-
 /*
  * Priority for ZONE_RECLAIM. This determines the fraction of pages
  * of a node considered for each zone_reclaim. 4 scans 1/16th of
@@ -1548,7 +1537,6 @@ static int __zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order)
        struct scan_control sc = {
                .may_writepage = !!(zone_reclaim_mode & RECLAIM_WRITE),
                .may_swap = !!(zone_reclaim_mode & RECLAIM_SWAP),
-               .nr_mapped = read_page_state(nr_mapped),
                .swap_cluster_max = max_t(unsigned long, nr_pages,
                                        SWAP_CLUSTER_MAX),
                .gfp_mask = gfp_mask,
@@ -1593,16 +1581,6 @@ static int __zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order)
 
        p->reclaim_state = NULL;
        current->flags &= ~(PF_MEMALLOC | PF_SWAPWRITE);
-
-       if (nr_reclaimed == 0) {
-               /*
-                * We were unable to reclaim enough pages to stay on node.  We
-                * now allow off node accesses for a certain time period before
-                * trying again to reclaim pages from the local zone.
-                */
-               zone->last_unsuccessful_zone_reclaim = jiffies;
-       }
-
        return nr_reclaimed >= nr_pages;
 }
 
@@ -1612,13 +1590,17 @@ int zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order)
        int node_id;
 
        /*
-        * Do not reclaim if there was a recent unsuccessful attempt at zone
-        * reclaim.  In that case we let allocations go off node for the
-        * zone_reclaim_interval.  Otherwise we would scan for each off-node
-        * page allocation.
+        * Do not reclaim if there are not enough reclaimable pages in this
+        * zone that would satify this allocations.
+        *
+        * All unmapped pagecache pages are reclaimable.
+        *
+        * Both counters may be temporarily off a bit so we use
+        * SWAP_CLUSTER_MAX as the boundary. It may also be good to
+        * leave a few frequently used unmapped pagecache pages around.
         */
-       if (time_before(jiffies,
-               zone->last_unsuccessful_zone_reclaim + zone_reclaim_interval))
+       if (zone_page_state(zone, NR_FILE_PAGES) -
+               zone_page_state(zone, NR_FILE_MAPPED) < SWAP_CLUSTER_MAX)
                        return 0;
 
        /*
diff --git a/mm/vmstat.c b/mm/vmstat.c
new file mode 100644 (file)
index 0000000..73b83d6
--- /dev/null
@@ -0,0 +1,614 @@
+/*
+ *  linux/mm/vmstat.c
+ *
+ *  Manages VM statistics
+ *  Copyright (C) 1991, 1992, 1993, 1994  Linus Torvalds
+ *
+ *  zoned VM statistics
+ *  Copyright (C) 2006 Silicon Graphics, Inc.,
+ *             Christoph Lameter <christoph@lameter.com>
+ */
+
+#include <linux/config.h>
+#include <linux/mm.h>
+#include <linux/module.h>
+
+void __get_zone_counts(unsigned long *active, unsigned long *inactive,
+                       unsigned long *free, struct pglist_data *pgdat)
+{
+       struct zone *zones = pgdat->node_zones;
+       int i;
+
+       *active = 0;
+       *inactive = 0;
+       *free = 0;
+       for (i = 0; i < MAX_NR_ZONES; i++) {
+               *active += zones[i].nr_active;
+               *inactive += zones[i].nr_inactive;
+               *free += zones[i].free_pages;
+       }
+}
+
+void get_zone_counts(unsigned long *active,
+               unsigned long *inactive, unsigned long *free)
+{
+       struct pglist_data *pgdat;
+
+       *active = 0;
+       *inactive = 0;
+       *free = 0;
+       for_each_online_pgdat(pgdat) {
+               unsigned long l, m, n;
+               __get_zone_counts(&l, &m, &n, pgdat);
+               *active += l;
+               *inactive += m;
+               *free += n;
+       }
+}
+
+#ifdef CONFIG_VM_EVENT_COUNTERS
+DEFINE_PER_CPU(struct vm_event_state, vm_event_states) = {{0}};
+EXPORT_PER_CPU_SYMBOL(vm_event_states);
+
+static void sum_vm_events(unsigned long *ret, cpumask_t *cpumask)
+{
+       int cpu = 0;
+       int i;
+
+       memset(ret, 0, NR_VM_EVENT_ITEMS * sizeof(unsigned long));
+
+       cpu = first_cpu(*cpumask);
+       while (cpu < NR_CPUS) {
+               struct vm_event_state *this = &per_cpu(vm_event_states, cpu);
+
+               cpu = next_cpu(cpu, *cpumask);
+
+               if (cpu < NR_CPUS)
+                       prefetch(&per_cpu(vm_event_states, cpu));
+
+
+               for (i = 0; i < NR_VM_EVENT_ITEMS; i++)
+                       ret[i] += this->event[i];
+       }
+}
+
+/*
+ * Accumulate the vm event counters across all CPUs.
+ * The result is unavoidably approximate - it can change
+ * during and after execution of this function.
+*/
+void all_vm_events(unsigned long *ret)
+{
+       sum_vm_events(ret, &cpu_online_map);
+}
+
+#ifdef CONFIG_HOTPLUG
+/*
+ * Fold the foreign cpu events into our own.
+ *
+ * This is adding to the events on one processor
+ * but keeps the global counts constant.
+ */
+void vm_events_fold_cpu(int cpu)
+{
+       struct vm_event_state *fold_state = &per_cpu(vm_event_states, cpu);
+       int i;
+
+       for (i = 0; i < NR_VM_EVENT_ITEMS; i++) {
+               count_vm_events(i, fold_state->event[i]);
+               fold_state->event[i] = 0;
+       }
+}
+#endif /* CONFIG_HOTPLUG */
+
+#endif /* CONFIG_VM_EVENT_COUNTERS */
+
+/*
+ * Manage combined zone based / global counters
+ *
+ * vm_stat contains the global counters
+ */
+atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
+EXPORT_SYMBOL(vm_stat);
+
+#ifdef CONFIG_SMP
+
+#define STAT_THRESHOLD 32
+
+/*
+ * Determine pointer to currently valid differential byte given a zone and
+ * the item number.
+ *
+ * Preemption must be off
+ */
+static inline s8 *diff_pointer(struct zone *zone, enum zone_stat_item item)
+{
+       return &zone_pcp(zone, smp_processor_id())->vm_stat_diff[item];
+}
+
+/*
+ * For use when we know that interrupts are disabled.
+ */
+void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item,
+                               int delta)
+{
+       s8 *p;
+       long x;
+
+       p = diff_pointer(zone, item);
+       x = delta + *p;
+
+       if (unlikely(x > STAT_THRESHOLD || x < -STAT_THRESHOLD)) {
+               zone_page_state_add(x, zone, item);
+               x = 0;
+       }
+
+       *p = x;
+}
+EXPORT_SYMBOL(__mod_zone_page_state);
+
+/*
+ * For an unknown interrupt state
+ */
+void mod_zone_page_state(struct zone *zone, enum zone_stat_item item,
+                                       int delta)
+{
+       unsigned long flags;
+
+       local_irq_save(flags);
+       __mod_zone_page_state(zone, item, delta);
+       local_irq_restore(flags);
+}
+EXPORT_SYMBOL(mod_zone_page_state);
+
+/*
+ * Optimized increment and decrement functions.
+ *
+ * These are only for a single page and therefore can take a struct page *
+ * argument instead of struct zone *. This allows the inclusion of the code
+ * generated for page_zone(page) into the optimized functions.
+ *
+ * No overflow check is necessary and therefore the differential can be
+ * incremented or decremented in place which may allow the compilers to
+ * generate better code.
+ *
+ * The increment or decrement is known and therefore one boundary check can
+ * be omitted.
+ *
+ * Some processors have inc/dec instructions that are atomic vs an interrupt.
+ * However, the code must first determine the differential location in a zone
+ * based on the processor number and then inc/dec the counter. There is no
+ * guarantee without disabling preemption that the processor will not change
+ * in between and therefore the atomicity vs. interrupt cannot be exploited
+ * in a useful way here.
+ */
+static void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
+{
+       s8 *p = diff_pointer(zone, item);
+
+       (*p)++;
+
+       if (unlikely(*p > STAT_THRESHOLD)) {
+               zone_page_state_add(*p, zone, item);
+               *p = 0;
+       }
+}
+
+void __inc_zone_page_state(struct page *page, enum zone_stat_item item)
+{
+       __inc_zone_state(page_zone(page), item);
+}
+EXPORT_SYMBOL(__inc_zone_page_state);
+
+void __dec_zone_page_state(struct page *page, enum zone_stat_item item)
+{
+       struct zone *zone = page_zone(page);
+       s8 *p = diff_pointer(zone, item);
+
+       (*p)--;
+
+       if (unlikely(*p < -STAT_THRESHOLD)) {
+               zone_page_state_add(*p, zone, item);
+               *p = 0;
+       }
+}
+EXPORT_SYMBOL(__dec_zone_page_state);
+
+void inc_zone_state(struct zone *zone, enum zone_stat_item item)
+{
+       unsigned long flags;
+
+       local_irq_save(flags);
+       __inc_zone_state(zone, item);
+       local_irq_restore(flags);
+}
+
+void inc_zone_page_state(struct page *page, enum zone_stat_item item)
+{
+       unsigned long flags;
+       struct zone *zone;
+
+       zone = page_zone(page);
+       local_irq_save(flags);
+       __inc_zone_state(zone, item);
+       local_irq_restore(flags);
+}
+EXPORT_SYMBOL(inc_zone_page_state);
+
+void dec_zone_page_state(struct page *page, enum zone_stat_item item)
+{
+       unsigned long flags;
+       struct zone *zone;
+       s8 *p;
+
+       zone = page_zone(page);
+       local_irq_save(flags);
+       p = diff_pointer(zone, item);
+
+       (*p)--;
+
+       if (unlikely(*p < -STAT_THRESHOLD)) {
+               zone_page_state_add(*p, zone, item);
+               *p = 0;
+       }
+       local_irq_restore(flags);
+}
+EXPORT_SYMBOL(dec_zone_page_state);
+
+/*
+ * Update the zone counters for one cpu.
+ */
+void refresh_cpu_vm_stats(int cpu)
+{
+       struct zone *zone;
+       int i;
+       unsigned long flags;
+
+       for_each_zone(zone) {
+               struct per_cpu_pageset *pcp;
+
+               pcp = zone_pcp(zone, cpu);
+
+               for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
+                       if (pcp->vm_stat_diff[i]) {
+                               local_irq_save(flags);
+                               zone_page_state_add(pcp->vm_stat_diff[i],
+                                       zone, i);
+                               pcp->vm_stat_diff[i] = 0;
+                               local_irq_restore(flags);
+                       }
+       }
+}
+
+static void __refresh_cpu_vm_stats(void *dummy)
+{
+       refresh_cpu_vm_stats(smp_processor_id());
+}
+
+/*
+ * Consolidate all counters.
+ *
+ * Note that the result is less inaccurate but still inaccurate
+ * if concurrent processes are allowed to run.
+ */
+void refresh_vm_stats(void)
+{
+       on_each_cpu(__refresh_cpu_vm_stats, NULL, 0, 1);
+}
+EXPORT_SYMBOL(refresh_vm_stats);
+
+#endif
+
+#ifdef CONFIG_NUMA
+/*
+ * zonelist = the list of zones passed to the allocator
+ * z       = the zone from which the allocation occurred.
+ *
+ * Must be called with interrupts disabled.
+ */
+void zone_statistics(struct zonelist *zonelist, struct zone *z)
+{
+       if (z->zone_pgdat == zonelist->zones[0]->zone_pgdat) {
+               __inc_zone_state(z, NUMA_HIT);
+       } else {
+               __inc_zone_state(z, NUMA_MISS);
+               __inc_zone_state(zonelist->zones[0], NUMA_FOREIGN);
+       }
+       if (z->zone_pgdat == NODE_DATA(numa_node_id()))
+               __inc_zone_state(z, NUMA_LOCAL);
+       else
+               __inc_zone_state(z, NUMA_OTHER);
+}
+#endif
+
+#ifdef CONFIG_PROC_FS
+
+#include <linux/seq_file.h>
+
+static void *frag_start(struct seq_file *m, loff_t *pos)
+{
+       pg_data_t *pgdat;
+       loff_t node = *pos;
+       for (pgdat = first_online_pgdat();
+            pgdat && node;
+            pgdat = next_online_pgdat(pgdat))
+               --node;
+
+       return pgdat;
+}
+
+static void *frag_next(struct seq_file *m, void *arg, loff_t *pos)
+{
+       pg_data_t *pgdat = (pg_data_t *)arg;
+
+       (*pos)++;
+       return next_online_pgdat(pgdat);
+}
+
+static void frag_stop(struct seq_file *m, void *arg)
+{
+}
+
+/*
+ * This walks the free areas for each zone.
+ */
+static int frag_show(struct seq_file *m, void *arg)
+{
+       pg_data_t *pgdat = (pg_data_t *)arg;
+       struct zone *zone;
+       struct zone *node_zones = pgdat->node_zones;
+       unsigned long flags;
+       int order;
+
+       for (zone = node_zones; zone - node_zones < MAX_NR_ZONES; ++zone) {
+               if (!populated_zone(zone))
+                       continue;
+
+               spin_lock_irqsave(&zone->lock, flags);
+               seq_printf(m, "Node %d, zone %8s ", pgdat->node_id, zone->name);
+               for (order = 0; order < MAX_ORDER; ++order)
+                       seq_printf(m, "%6lu ", zone->free_area[order].nr_free);
+               spin_unlock_irqrestore(&zone->lock, flags);
+               seq_putc(m, '\n');
+       }
+       return 0;
+}
+
+struct seq_operations fragmentation_op = {
+       .start  = frag_start,
+       .next   = frag_next,
+       .stop   = frag_stop,
+       .show   = frag_show,
+};
+
+static char *vmstat_text[] = {
+       /* Zoned VM counters */
+       "nr_anon_pages",
+       "nr_mapped",
+       "nr_file_pages",
+       "nr_slab",
+       "nr_page_table_pages",
+       "nr_dirty",
+       "nr_writeback",
+       "nr_unstable",
+       "nr_bounce",
+
+#ifdef CONFIG_NUMA
+       "numa_hit",
+       "numa_miss",
+       "numa_foreign",
+       "numa_interleave",
+       "numa_local",
+       "numa_other",
+#endif
+
+#ifdef CONFIG_VM_EVENT_COUNTERS
+       "pgpgin",
+       "pgpgout",
+       "pswpin",
+       "pswpout",
+
+       "pgalloc_dma",
+       "pgalloc_dma32",
+       "pgalloc_normal",
+       "pgalloc_high",
+
+       "pgfree",
+       "pgactivate",
+       "pgdeactivate",
+
+       "pgfault",
+       "pgmajfault",
+
+       "pgrefill_dma",
+       "pgrefill_dma32",
+       "pgrefill_normal",
+       "pgrefill_high",
+
+       "pgsteal_dma",
+       "pgsteal_dma32",
+       "pgsteal_normal",
+       "pgsteal_high",
+
+       "pgscan_kswapd_dma",
+       "pgscan_kswapd_dma32",
+       "pgscan_kswapd_normal",
+       "pgscan_kswapd_high",
+
+       "pgscan_direct_dma",
+       "pgscan_direct_dma32",
+       "pgscan_direct_normal",
+       "pgscan_direct_high",
+
+       "pginodesteal",
+       "slabs_scanned",
+       "kswapd_steal",
+       "kswapd_inodesteal",
+       "pageoutrun",
+       "allocstall",
+
+       "pgrotated",
+#endif
+};
+
+/*
+ * Output information about zones in @pgdat.
+ */
+static int zoneinfo_show(struct seq_file *m, void *arg)
+{
+       pg_data_t *pgdat = arg;
+       struct zone *zone;
+       struct zone *node_zones = pgdat->node_zones;
+       unsigned long flags;
+
+       for (zone = node_zones; zone - node_zones < MAX_NR_ZONES; zone++) {
+               int i;
+
+               if (!populated_zone(zone))
+                       continue;
+
+               spin_lock_irqsave(&zone->lock, flags);
+               seq_printf(m, "Node %d, zone %8s", pgdat->node_id, zone->name);
+               seq_printf(m,
+                          "\n  pages free     %lu"
+                          "\n        min      %lu"
+                          "\n        low      %lu"
+                          "\n        high     %lu"
+                          "\n        active   %lu"
+                          "\n        inactive %lu"
+                          "\n        scanned  %lu (a: %lu i: %lu)"
+                          "\n        spanned  %lu"
+                          "\n        present  %lu",
+                          zone->free_pages,
+                          zone->pages_min,
+                          zone->pages_low,
+                          zone->pages_high,
+                          zone->nr_active,
+                          zone->nr_inactive,
+                          zone->pages_scanned,
+                          zone->nr_scan_active, zone->nr_scan_inactive,
+                          zone->spanned_pages,
+                          zone->present_pages);
+
+               for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
+                       seq_printf(m, "\n    %-12s %lu", vmstat_text[i],
+                                       zone_page_state(zone, i));
+
+               seq_printf(m,
+                          "\n        protection: (%lu",
+                          zone->lowmem_reserve[0]);
+               for (i = 1; i < ARRAY_SIZE(zone->lowmem_reserve); i++)
+                       seq_printf(m, ", %lu", zone->lowmem_reserve[i]);
+               seq_printf(m,
+                          ")"
+                          "\n  pagesets");
+               for_each_online_cpu(i) {
+                       struct per_cpu_pageset *pageset;
+                       int j;
+
+                       pageset = zone_pcp(zone, i);
+                       for (j = 0; j < ARRAY_SIZE(pageset->pcp); j++) {
+                               if (pageset->pcp[j].count)
+                                       break;
+                       }
+                       if (j == ARRAY_SIZE(pageset->pcp))
+                               continue;
+                       for (j = 0; j < ARRAY_SIZE(pageset->pcp); j++) {
+                               seq_printf(m,
+                                          "\n    cpu: %i pcp: %i"
+                                          "\n              count: %i"
+                                          "\n              high:  %i"
+                                          "\n              batch: %i",
+                                          i, j,
+                                          pageset->pcp[j].count,
+                                          pageset->pcp[j].high,
+                                          pageset->pcp[j].batch);
+                       }
+               }
+               seq_printf(m,
+                          "\n  all_unreclaimable: %u"
+                          "\n  prev_priority:     %i"
+                          "\n  temp_priority:     %i"
+                          "\n  start_pfn:         %lu",
+                          zone->all_unreclaimable,
+                          zone->prev_priority,
+                          zone->temp_priority,
+                          zone->zone_start_pfn);
+               spin_unlock_irqrestore(&zone->lock, flags);
+               seq_putc(m, '\n');
+       }
+       return 0;
+}
+
+struct seq_operations zoneinfo_op = {
+       .start  = frag_start, /* iterate over all zones. The same as in
+                              * fragmentation. */
+       .next   = frag_next,
+       .stop   = frag_stop,
+       .show   = zoneinfo_show,
+};
+
+static void *vmstat_start(struct seq_file *m, loff_t *pos)
+{
+       unsigned long *v;
+#ifdef CONFIG_VM_EVENT_COUNTERS
+       unsigned long *e;
+#endif
+       int i;
+
+       if (*pos >= ARRAY_SIZE(vmstat_text))
+               return NULL;
+
+#ifdef CONFIG_VM_EVENT_COUNTERS
+       v = kmalloc(NR_VM_ZONE_STAT_ITEMS * sizeof(unsigned long)
+                       + sizeof(struct vm_event_state), GFP_KERNEL);
+#else
+       v = kmalloc(NR_VM_ZONE_STAT_ITEMS * sizeof(unsigned long),
+                       GFP_KERNEL);
+#endif
+       m->private = v;
+       if (!v)
+               return ERR_PTR(-ENOMEM);
+       for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
+               v[i] = global_page_state(i);
+#ifdef CONFIG_VM_EVENT_COUNTERS
+       e = v + NR_VM_ZONE_STAT_ITEMS;
+       all_vm_events(e);
+       e[PGPGIN] /= 2;         /* sectors -> kbytes */
+       e[PGPGOUT] /= 2;
+#endif
+       return v + *pos;
+}
+
+static void *vmstat_next(struct seq_file *m, void *arg, loff_t *pos)
+{
+       (*pos)++;
+       if (*pos >= ARRAY_SIZE(vmstat_text))
+               return NULL;
+       return (unsigned long *)m->private + *pos;
+}
+
+static int vmstat_show(struct seq_file *m, void *arg)
+{
+       unsigned long *l = arg;
+       unsigned long off = l - (unsigned long *)m->private;
+
+       seq_printf(m, "%s %lu\n", vmstat_text[off], *l);
+       return 0;
+}
+
+static void vmstat_stop(struct seq_file *m, void *arg)
+{
+       kfree(m->private);
+       m->private = NULL;
+}
+
+struct seq_operations vmstat_op = {
+       .start  = vmstat_start,
+       .next   = vmstat_next,
+       .stop   = vmstat_stop,
+       .show   = vmstat_show,
+};
+
+#endif /* CONFIG_PROC_FS */
+
index 282c4ab1abe60836c79cccb39173cf2cbc918f92..2a27e37bc4cb263869b0e5a20643997064067713 100644 (file)
@@ -10,7 +10,6 @@
  *             v 1.0 03/22/99
  */
 
-#include <linux/config.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <linux/types.h>
index ac242a4bc346b541a09fe63456b17dcb64335ca5..797c6d961deba4468a83d7b1d19eeff23cedec56 100644 (file)
@@ -26,7 +26,6 @@
  *             Maciej W. Rozycki       :       IPv6 support
  */
  
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/system.h>
 #include <linux/types.h>
index 700129556c13145b16355d2400d33b6b207843d7..ead56037398b58b6f8905beb935d93a267f5060c 100644 (file)
@@ -10,7 +10,6 @@
  *             2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/if_tr.h>
 #include <linux/sysctl.h>
index e9dc803f2fe0a67de78c4219227f4876352cd89a..d7d8f40c4fed0d17d0113eceb92de3d821e723fc 100644 (file)
@@ -17,7 +17,6 @@
 
 #include <asm/uaccess.h>
 #include <asm/system.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 7b214cffc9566b8c6da537200fbbbf01f30fe63d..a8fc0de1f969a89e15382c54fd675e53f3eccd72 100644 (file)
@@ -17,7 +17,6 @@
  * Jan 20, 1998        Ben Greear     Initial Version
  *****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/stddef.h>      /* offsetof(), etc. */
 #include <linux/errno.h>       /* return codes */
index 7076097debc29e454e02856d232015ad44607f8c..f3777ec5bcb988bc9d33cb332aa96dc0dbeebd7d 100644 (file)
@@ -29,7 +29,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/if_arp.h>
 #include <net/sock.h>
 #include <net/datalink.h>
index dc4048dd98c1b60d68cf10ddcd1dadc169b48458..7ae4916cd26d9a2f78ef345867a3dfc4861c6ba5 100644 (file)
@@ -8,7 +8,6 @@
  *     Free Software Foundation, version 2.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/proc_fs.h>
 #include <linux/seq_file.h>
index 7b1eb9a4fc96881a68f9c23e92ea1679edc8cb4d..5ee96d4b40e9bef72712c3e0a1f114d67ab07481 100644 (file)
@@ -51,7 +51,6 @@
  * 
  */
 
-#include <linux/config.h>
 #include <linux/capability.h>
 #include <linux/module.h>
 #include <linux/if_arp.h>
index af7f0604395df7dab6fb1c64f3fd7910f1ad0c18..40b0af7437a2e0d5acbbcbfc59e5bc1ab37d5b6f 100644 (file)
@@ -6,7 +6,6 @@
  * Dynamic registration, added aarp entries. (5/30/97 Chris Horn)
  */
 
-#include <linux/config.h>
 #include <linux/sysctl.h>
 #include <net/sock.h>
 #include <linux/atalk.h>
index d5818751f6ba43d5f7c3ec414c2f8ffe55b13118..89656d6c0b90d3f9310cbf4b5733f1a24102d25a 100644 (file)
@@ -2,7 +2,7 @@
 # Makefile for the ATM Protocol Families.
 #
 
-atm-y          := addr.o pvc.o signaling.o svc.o ioctl.o common.o atm_misc.o raw.o resources.o
+atm-y          := addr.o pvc.o signaling.o svc.o ioctl.o common.o atm_misc.o raw.o resources.o atm_sysfs.o
 mpoa-objs      := mpc.o mpoa_caches.o mpoa_proc.o
 
 obj-$(CONFIG_ATM) += atm.o
diff --git a/net/atm/atm_sysfs.c b/net/atm/atm_sysfs.c
new file mode 100644 (file)
index 0000000..5df4b9a
--- /dev/null
@@ -0,0 +1,176 @@
+/* ATM driver model support. */
+
+#include <linux/config.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/kobject.h>
+#include <linux/atmdev.h>
+#include "common.h"
+#include "resources.h"
+
+#define to_atm_dev(cldev) container_of(cldev, struct atm_dev, class_dev)
+
+static ssize_t show_type(struct class_device *cdev, char *buf)
+{
+       struct atm_dev *adev = to_atm_dev(cdev);
+       return sprintf(buf, "%s\n", adev->type);
+}
+
+static ssize_t show_address(struct class_device *cdev, char *buf)
+{
+       char *pos = buf;
+       struct atm_dev *adev = to_atm_dev(cdev);
+       int i;
+
+       for (i = 0; i < (ESI_LEN - 1); i++)
+               pos += sprintf(pos, "%02x:", adev->esi[i]);
+       pos += sprintf(pos, "%02x\n", adev->esi[i]);
+
+       return pos - buf;
+}
+
+static ssize_t show_atmaddress(struct class_device *cdev, char *buf)
+{
+        unsigned long flags;
+       char *pos = buf;
+       struct atm_dev *adev = to_atm_dev(cdev);
+        struct atm_dev_addr *aaddr;
+       int bin[] = { 1, 2, 10, 6, 1 }, *fmt = bin;
+       int i, j;
+
+        spin_lock_irqsave(&adev->lock, flags);
+        list_for_each_entry(aaddr, &adev->local, entry) {
+               for(i = 0, j = 0; i < ATM_ESA_LEN; ++i, ++j) {
+                       if (j == *fmt) {
+                               pos += sprintf(pos, ".");
+                               ++fmt;
+                               j = 0;
+                       }
+                       pos += sprintf(pos, "%02x", aaddr->addr.sas_addr.prv[i]);
+               }
+               pos += sprintf(pos, "\n");
+       }
+        spin_unlock_irqrestore(&adev->lock, flags);
+
+       return pos - buf;
+}
+
+static ssize_t show_carrier(struct class_device *cdev, char *buf)
+{
+       char *pos = buf;
+       struct atm_dev *adev = to_atm_dev(cdev);
+
+       pos += sprintf(pos, "%d\n",
+                      adev->signal == ATM_PHY_SIG_LOST ? 0 : 1);
+               
+       return pos - buf;
+}
+
+static ssize_t show_link_rate(struct class_device *cdev, char *buf)
+{
+       char *pos = buf;
+       struct atm_dev *adev = to_atm_dev(cdev);
+       int link_rate;
+
+       /* show the link rate, not the data rate */
+       switch (adev->link_rate) {
+               case ATM_OC3_PCR:
+                       link_rate = 155520000;
+                       break;
+               case ATM_OC12_PCR:
+                       link_rate = 622080000;
+                       break;
+               case ATM_25_PCR:
+                       link_rate = 25600000;
+                       break;
+               default:
+                       link_rate = adev->link_rate * 8 * 53;
+       }
+       pos += sprintf(pos, "%d\n", link_rate);
+               
+       return pos - buf;
+}
+
+static CLASS_DEVICE_ATTR(address, S_IRUGO, show_address, NULL);
+static CLASS_DEVICE_ATTR(atmaddress, S_IRUGO, show_atmaddress, NULL);
+static CLASS_DEVICE_ATTR(carrier, S_IRUGO, show_carrier, NULL);
+static CLASS_DEVICE_ATTR(type, S_IRUGO, show_type, NULL);
+static CLASS_DEVICE_ATTR(link_rate, S_IRUGO, show_link_rate, NULL);
+
+static struct class_device_attribute *atm_attrs[] = {
+       &class_device_attr_atmaddress,
+       &class_device_attr_address,
+       &class_device_attr_carrier,
+       &class_device_attr_type,
+       &class_device_attr_link_rate,
+       NULL
+};
+
+static int atm_uevent(struct class_device *cdev, char **envp, int num_envp, char *buf, int size)
+{
+       struct atm_dev *adev;
+       int i = 0, len = 0;
+
+       if (!cdev)
+               return -ENODEV;
+
+       adev = to_atm_dev(cdev);
+       if (!adev)
+               return -ENODEV;
+
+       if (add_uevent_var(envp, num_envp, &i, buf, size, &len,
+                          "NAME=%s%d", adev->type, adev->number))
+               return -ENOMEM;
+
+       envp[i] = NULL;
+       return 0;
+}
+
+static void atm_release(struct class_device *cdev)
+{
+       struct atm_dev *adev = to_atm_dev(cdev);
+
+       kfree(adev);
+}
+
+static struct class atm_class = {
+       .name           = "atm",
+       .release        = atm_release,
+       .uevent         = atm_uevent,
+};
+
+int atm_register_sysfs(struct atm_dev *adev)
+{
+       struct class_device *cdev = &adev->class_dev;
+       int i, err;
+
+       cdev->class = &atm_class;
+       class_set_devdata(cdev, adev);
+
+       snprintf(cdev->class_id, BUS_ID_SIZE, "%s%d", adev->type, adev->number);
+       err = class_device_register(cdev);
+       if (err < 0)
+               return err;
+
+       for (i = 0; atm_attrs[i]; i++)
+               class_device_create_file(cdev, atm_attrs[i]);
+
+       return 0;
+}
+
+void atm_unregister_sysfs(struct atm_dev *adev)
+{
+       struct class_device *cdev = &adev->class_dev;
+
+       class_device_del(cdev);
+}
+
+int __init atm_sysfs_init(void)
+{
+       return class_register(&atm_class);
+}
+
+void __exit atm_sysfs_exit(void)
+{
+       class_unregister(&atm_class);
+}
index 680ccb12aae8652d194735c0645c78a040d1f8e9..a487233dc466f35e4b5964394b5f4d61da7fd9ce 100644 (file)
@@ -5,7 +5,6 @@ Author: Marcell GAL, 2000, XDSL Ltd, Hungary
 */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
index f92f9c94d2c762c51ffe76031c7598e85759a574..87a454f5c89cd20c10e870ca973bff948f1dd0e2 100644 (file)
@@ -2,7 +2,6 @@
 
 /* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/errno.h>
 #include <linux/kernel.h> /* for UINT_MAX */
index ae002220fa99096aa00edc4ce0fd8df3e5c8694b..fbabff49446830b45053103615095a44e0486c7d 100644 (file)
@@ -3,7 +3,6 @@
 /* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kmod.h>
 #include <linux/net.h>         /* struct socket, struct proto_ops */
@@ -791,8 +790,14 @@ static int __init atm_init(void)
                printk(KERN_ERR "atm_proc_init() failed with %d\n",error);
                goto out_atmsvc_exit;
        }
+        if ((error = atm_sysfs_init()) < 0) {
+               printk(KERN_ERR "atm_sysfs_init() failed with %d\n",error);
+               goto out_atmproc_exit;
+       }
 out:
        return error;
+out_atmproc_exit:
+       atm_proc_exit();
 out_atmsvc_exit:
        atmsvc_exit();
 out_atmpvc_exit:
@@ -805,6 +810,7 @@ out_unregister_vcc_proto:
 static void __exit atm_exit(void)
 {
        atm_proc_exit();
+       atm_sysfs_exit();
        atmsvc_exit();
        atmpvc_exit();
        proto_unregister(&vcc_proto);
index 4887c317cefe99365576c2812875dc730257aa13..a422da7788fbd44852fadba2261c5c5f1cdd1c0e 100644 (file)
@@ -28,6 +28,8 @@ int atmpvc_init(void);
 void atmpvc_exit(void);
 int atmsvc_init(void);
 void atmsvc_exit(void);
+int atm_sysfs_init(void);
+void atm_sysfs_exit(void);
 
 #ifdef CONFIG_PROC_FS
 int atm_proc_init(void);
index 851cfa6312af3288b9cdf14d1faa91028b583b88..8c2022c3e81dc05d0f9550e29c8bb9208fb4a4ac 100644 (file)
@@ -4,7 +4,6 @@
 /* 2003 John Levon  <levon@movementarian.org> */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kmod.h>
 #include <linux/net.h>         /* struct socket, struct proto_ops */
index c4fc722fef9a2de2362b1b5ef52abba92d662996..4b68a18171cf4f0a8ae402cb6e0526bf7f05f383 100644 (file)
@@ -4,7 +4,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/bitops.h>
 #include <linux/capability.h>
index 6606082b29a87931eca6cddd91d1037edfc87c2e..c22a8bfa1f813bb0a61b9af087eb496a5daa91ae 100644 (file)
@@ -9,7 +9,6 @@
 #ifndef _LEC_H_
 #define _LEC_H_
 
-#include <linux/config.h>
 #include <linux/atmdev.h>
 #include <linux/netdevice.h>
 #include <linux/atmlec.h>
index 5fe77df0018693d3f872ae3c802f6df737f26ec1..9aafe1e2f04802a2398f51168cbcc4c4d53d300f 100644 (file)
@@ -25,7 +25,6 @@
 #include <linux/atmlec.h>
 #include <linux/atmmpc.h>
 /* Modular too */
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include "lec.h"
index 60834b5a14d60ad0608795e61b47b4cab8a52345..d37b8911b3abe938828d6737906d88d3bc05c814 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 
 #ifdef CONFIG_PROC_FS
 #include <linux/errno.h>
index 1489067c1e84474c8d958c6d829e83d06efc659a..76a7d8ff6c0e79f5ed940b76a514f1a53af464eb 100644 (file)
@@ -34,7 +34,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/skbuff.h>
 #include <linux/atm.h>
index 4041054e528252442b672830f710604d9a91b4c8..3f95b0886a6a659afd540ea8cb9f12011a03a3c5 100644 (file)
@@ -8,7 +8,6 @@
  * the reader.
  */
 
-#include <linux/config.h>
 #include <linux/module.h> /* for EXPORT_SYMBOL */
 #include <linux/string.h>
 #include <linux/types.h>
index f2c541774dcd77e14a7dc8cc47c53a36b3b6f3bb..b2148b43a42611c97780ff6dc8a0a8288527cf91 100644 (file)
@@ -3,7 +3,6 @@
 /* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
 
 
-#include <linux/config.h>
 #include <linux/net.h>         /* struct socket, struct proto_ops */
 #include <linux/atm.h>         /* ATM stuff */
 #include <linux/atmdev.h>      /* ATM devices */
index 18ac80698f835906cab6cd9f45971892ef42d46b..de25c6408b04024e0f5f7f85b8c22564839e148b 100644 (file)
@@ -8,7 +8,6 @@
  *          use the default destruct function initialized by sock_init_data */
 
 
-#include <linux/config.h>
 #include <linux/ctype.h>
 #include <linux/string.h>
 #include <linux/atmdev.h>
@@ -114,14 +113,27 @@ struct atm_dev *atm_dev_register(const char *type, const struct atmdev_ops *ops,
                printk(KERN_ERR "atm_dev_register: "
                       "atm_proc_dev_register failed for dev %s\n",
                       type);
-               mutex_unlock(&atm_dev_mutex);
-               kfree(dev);
-               return NULL;
+               goto out_fail;
+       }
+
+       if (atm_register_sysfs(dev) < 0) {
+               printk(KERN_ERR "atm_dev_register: "
+                      "atm_register_sysfs failed for dev %s\n",
+                      type);
+               atm_proc_dev_deregister(dev);
+               goto out_fail;
        }
+
        list_add_tail(&dev->dev_list, &atm_devs);
-       mutex_unlock(&atm_dev_mutex);
 
+out:
+       mutex_unlock(&atm_dev_mutex);
        return dev;
+
+out_fail:
+       kfree(dev);
+       dev = NULL;
+       goto out;
 }
 
 
@@ -140,6 +152,7 @@ void atm_dev_deregister(struct atm_dev *dev)
        mutex_unlock(&atm_dev_mutex);
 
        atm_dev_release_vccs(dev);
+       atm_unregister_sysfs(dev);
        atm_proc_dev_deregister(dev);
 
        atm_dev_put(dev);
index ac7222fee7a8e38db42aa066ca03a241ab323735..1d004aaaeec1ac69d48b0b8deddb51737de668c2 100644 (file)
@@ -6,7 +6,6 @@
 #ifndef NET_ATM_RESOURCES_H
 #define NET_ATM_RESOURCES_H
 
-#include <linux/config.h>
 #include <linux/atmdev.h>
 #include <linux/mutex.h>
 
@@ -43,4 +42,6 @@ static inline void atm_proc_dev_deregister(struct atm_dev *dev)
 
 #endif /* CONFIG_PROC_FS */
 
+int atm_register_sysfs(struct atm_dev *adev);
+void atm_unregister_sysfs(struct atm_dev *adev);
 #endif
index a2e0dd047e9f66be4798cd2fadb2cec6d33c498a..10a3c0aa83987be6e563ed8439e7872f1a9419b4 100644 (file)
@@ -13,7 +13,6 @@
  * Copyright (C) Hans Alblas PE1AYX (hans@esrac.ele.tue.nl)
  * Copyright (C) Frederic Rible F1OAT (frible@teaser.fr)
  */
-#include <linux/config.h>
 #include <linux/capability.h>
 #include <linux/module.h>
 #include <linux/errno.h>
index dab77efe34a6620932d2a1063bcec9b8a129ad2b..47e6e790bd67951025681549b3b6d034fe8d0d9e 100644 (file)
@@ -6,7 +6,6 @@
  *
  * Copyright (C) Jonathan Naylor G4KLX (g4klx@g4klx.demon.co.uk)
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
index 3bb152710b77cbe07cdc556b3700a42fc36094dc..77ba07c67682670f8d4a4035c98f6e166b9242e8 100644 (file)
@@ -6,7 +6,6 @@
  *
  * Copyright (C) Jonathan Naylor G4KLX (g4klx@g4klx.demon.co.uk)
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
index a0b534f80f1774fc76a8daad66df1b2dc09aa656..9be5c15e63d3aa4bc63095b36b435844e070c5d5 100644 (file)
@@ -6,7 +6,6 @@
  *
  * Copyright (C) Jonathan Naylor G4KLX (g4klx@g4klx.demon.co.uk)
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
index 5d99852b239cd9b932ddfe197a191acddf72ed11..d7736e58533656f32979ad81d3f17fc3747bf166 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (C) Jonathan Naylor G4KLX (g4klx@g4klx.demon.co.uk)
  * Copyright (C) Joerg Reuter DL1BKE (jreuter@yaina.de)
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
index ec254057f21239b8ab8124e9a16a2d90b2e1a5a7..72594867fab6005978e9df3c2753f6558410acb2 100644 (file)
@@ -12,7 +12,6 @@
  * Copyright (C) Frederic Rible F1OAT (frible@teaser.fr)
  * Copyright (C) 2002 Ralf Baechle DO1GRB (ralf@gnu.org)
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
index bdb64c36df12dc1b45d51ec0fa79a60c826b2629..369a75b160f2d688a898fe43a1b2f7203658bbd1 100644 (file)
@@ -6,7 +6,6 @@
  *
  * Copyright (C) 1996 Mike Shaver (shaver@zeroknowledge.com)
  */
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/sysctl.h>
 #include <linux/spinlock.h>
index 469eda0f0dfd713f0d998b5c830faaff2e9c71fd..51f867062e1de643dc36699b4f6a739a9b017370 100644 (file)
@@ -24,7 +24,6 @@
 
 /* Bluetooth address family and sockets. */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index d908d49dc9f857cf753035badfba2c8785e285b9..e620061fb50fd83cd530167d863b1745f3f7a3fd 100644 (file)
@@ -29,7 +29,6 @@
  * $Id: core.c,v 1.20 2002/08/04 21:23:58 maxk Exp $
  */ 
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index 921204f95f4a108f5c4b62530238a9ac08374ed1..7f7b27db6a8fa50552fa21e0eca8490f1799dd8b 100644 (file)
@@ -29,7 +29,6 @@
  * $Id: netdev.c,v 1.8 2002/08/04 21:23:58 maxk Exp $
  */ 
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/socket.h>
index 2bfe796cf05dfb2a21305ddd4a58fd91ebe6cc13..28c55835422afb90f1bbf660f5dcb387bde3779b 100644 (file)
@@ -28,7 +28,6 @@
  * $Id: sock.c,v 1.4 2002/08/04 21:23:58 maxk Exp $
  */ 
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index b2e7e38531c602c72580570c331f1b3e6328536f..6fb47e00e188bb2c292f3d7e94a7689651b832f8 100644 (file)
@@ -20,7 +20,6 @@
    SOFTWARE IS DISCLAIMED.
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index 901eff7ebe74072d0c7f15df3ad5a420248b85a5..182254a580e26e504294ae22d4e042195cecfe58 100644 (file)
@@ -20,7 +20,6 @@
    SOFTWARE IS DISCLAIMED.
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index 8f8fad23f78afc0f81b577f82fcbb084bbe23bfb..10ad7fd91d833f26a188b073d46fea1ed1d2cd16 100644 (file)
@@ -20,7 +20,6 @@
    SOFTWARE IS DISCLAIMED.
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index f812ed129e589cc1929bdf06830eef5f60243006..5c0c2b1ef34a5f152a13aae2796e1e1497fb7508 100644 (file)
@@ -24,7 +24,6 @@
 
 /* Bluetooth HCI connection handling. */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index a49a6975092dcc32e4830ca5ffcc830cc1d98704..f67240beb0ddc686a920925e96b67994e96e111f 100644 (file)
@@ -24,7 +24,6 @@
 
 /* Bluetooth HCI core. */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kmod.h>
 
index eb64555d1fb346d90ff34dad9ed16ef4700d0fdc..618bacee1b1c3a365f8e67eba9522f91f88b7141 100644 (file)
@@ -24,7 +24,6 @@
 
 /* Bluetooth HCI event handling. */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index 97bdec73d17e9fcbc4ffdfcb75c5613c3b9e9c44..1a35d343e08a593f91cc71fce52306a50d991c4b 100644 (file)
@@ -24,7 +24,6 @@
 
 /* Bluetooth HCI sockets. */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index 0ed38740388c374262d90edac9eff42741a0e0da..19b234c86f33ac686e1f63b9924db9cd967513f2 100644 (file)
@@ -1,6 +1,5 @@
 /* Bluetooth HCI driver model support. */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 
index cdb9cfafd960b5c45730b933f0515e1b79f1bfd4..b9c24a55425c90205baa23dcc7f9fe2b2bd0bb00 100644 (file)
@@ -20,7 +20,6 @@
    SOFTWARE IS DISCLAIMED.
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index b8f67761b8868ea8d01ef0f32ebf7900d68cc897..099646e4e2ef7407b45687f2188d0bfe2cd7402b 100644 (file)
@@ -20,7 +20,6 @@
    SOFTWARE IS DISCLAIMED.
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index f6b4a8085357a6c0973872665272118516f72816..770101177da106e1bb78ff84aa5241ffbce7cd1a 100644 (file)
@@ -24,7 +24,6 @@
 
 /* Bluetooth L2CAP core and sockets. */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index ee6a66979913c8fb4c0d4dca00335bcc3e89c235..e5fd0cb70ae9e42ffa851e8d62874532a1115324 100644 (file)
@@ -24,7 +24,6 @@
 
 /* Bluetooth kernel library. */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index e99010ce8bb2780055efbf3e7a678543a8ce8745..bd46e8927f299c34aeddb80130a5af462e479af8 100644 (file)
@@ -27,7 +27,6 @@
  * $Id: core.c,v 1.42 2002/10/01 23:26:25 maxk Exp $
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
index 757d2dd3b02f1bb710e49e982ca3c55a790cbae7..4e9962c8cfa6b9dfabedd54ac9e47cd477b2facf 100644 (file)
@@ -27,7 +27,6 @@
  * $Id: sock.c,v 1.24 2002/10/03 01:00:34 maxk Exp $
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index b105a715fa93e76624b0af98bd9ba1c7126bc7b2..2ff2d5b87c933ce92207400de962f5edba04f4ea 100644 (file)
@@ -27,7 +27,6 @@
  * $Id: tty.c,v 1.24 2002/10/03 01:54:38 holtmann Exp $
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/tty.h>
index 0c2d13ad69bbf0c799f8bff6fbc2e78ffcc22763..a5f1e44db5d363b2b3dae5146d7164237180d8c2 100644 (file)
@@ -24,7 +24,6 @@
 
 /* Bluetooth SCO sockets. */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index 654401ceb2dbdf679522c8ce92c5699c5589c613..2994387999a846bc1673095a173484404b4fdafc 100644 (file)
@@ -13,7 +13,6 @@
  *     2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
index 2afdc7c0736c48b6baa39c5e9fa37987a7cdb779..f8dbcee80ebad7cdffb110fd87a8796db93643ab 100644 (file)
@@ -184,6 +184,6 @@ void br_dev_setup(struct net_device *dev)
        dev->set_mac_address = br_set_mac_address;
        dev->priv_flags = IFF_EBRIDGE;
 
-       dev->features = NETIF_F_SG | NETIF_F_FRAGLIST
-               | NETIF_F_HIGHDMA | NETIF_F_TSO | NETIF_F_NO_CSUM;
+       dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA |
+                       NETIF_F_TSO | NETIF_F_NO_CSUM | NETIF_F_GSO_ROBUST;
 }
index 07956ecf545e313775967da4e48570bf33243732..f55ef682ef846e979b7e1b24569399a7c2fbd7da 100644 (file)
@@ -392,7 +392,8 @@ void br_features_recompute(struct net_bridge *br)
                features &= feature;
        }
 
-       br->dev->features = features | checksum | NETIF_F_LLTX;
+       br->dev->features = features | checksum | NETIF_F_LLTX |
+                           NETIF_F_GSO_ROBUST;
 }
 
 /* called with RTNL */
index ee5a51761260a96cceba34579892bd8b681185c1..02693a230dc1faae5d3252f62c4f9a2334ea3f00 100644 (file)
@@ -29,7 +29,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/spinlock.h>
 #include <linux/socket.h>
 #include <linux/skbuff.h>
index f1c52cbd6ef7bfa8ae13ff04913b585b0c9be286..066a60a75280bc6508c541e645aa5b5d9193e26e 100644 (file)
@@ -76,7 +76,6 @@
 #include <asm/system.h>
 #include <linux/bitops.h>
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/cpu.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
@@ -1190,11 +1189,14 @@ out:
 /**
  *     skb_gso_segment - Perform segmentation on skb.
  *     @skb: buffer to segment
- *     @sg: whether scatter-gather is supported on the target.
+ *     @features: features for the output path (see dev->features)
  *
  *     This function segments the given skb and returns a list of segments.
+ *
+ *     It may return NULL if the skb requires no segmentation.  This is
+ *     only possible when GSO is used for verifying header integrity.
  */
-struct sk_buff *skb_gso_segment(struct sk_buff *skb, int sg)
+struct sk_buff *skb_gso_segment(struct sk_buff *skb, int features)
 {
        struct sk_buff *segs = ERR_PTR(-EPROTONOSUPPORT);
        struct packet_type *ptype;
@@ -1210,12 +1212,14 @@ struct sk_buff *skb_gso_segment(struct sk_buff *skb, int sg)
        rcu_read_lock();
        list_for_each_entry_rcu(ptype, &ptype_base[ntohs(type) & 15], list) {
                if (ptype->type == type && !ptype->dev && ptype->gso_segment) {
-                       segs = ptype->gso_segment(skb, sg);
+                       segs = ptype->gso_segment(skb, features);
                        break;
                }
        }
        rcu_read_unlock();
 
+       __skb_push(skb, skb->data - skb->mac.raw);
+
        return segs;
 }
 
@@ -1234,7 +1238,6 @@ void netdev_rx_csum_fault(struct net_device *dev)
 EXPORT_SYMBOL(netdev_rx_csum_fault);
 #endif
 
-#ifdef CONFIG_HIGHMEM
 /* Actually, we should eliminate this check as soon as we know, that:
  * 1. IOMMU is present and allows to map all the memory.
  * 2. No high memory really exists on this machine.
@@ -1242,6 +1245,7 @@ EXPORT_SYMBOL(netdev_rx_csum_fault);
 
 static inline int illegal_highdma(struct net_device *dev, struct sk_buff *skb)
 {
+#ifdef CONFIG_HIGHMEM
        int i;
 
        if (dev->features & NETIF_F_HIGHDMA)
@@ -1251,11 +1255,9 @@ static inline int illegal_highdma(struct net_device *dev, struct sk_buff *skb)
                if (PageHighMem(skb_shinfo(skb)->frags[i].page))
                        return 1;
 
+#endif
        return 0;
 }
-#else
-#define illegal_highdma(dev, skb)      (0)
-#endif
 
 struct dev_gso_cb {
        void (*destructor)(struct sk_buff *skb);
@@ -1291,9 +1293,15 @@ static int dev_gso_segment(struct sk_buff *skb)
 {
        struct net_device *dev = skb->dev;
        struct sk_buff *segs;
+       int features = dev->features & ~(illegal_highdma(dev, skb) ?
+                                        NETIF_F_SG : 0);
+
+       segs = skb_gso_segment(skb, features);
+
+       /* Verifying header integrity only. */
+       if (!segs)
+               return 0;
 
-       segs = skb_gso_segment(skb, dev->features & NETIF_F_SG &&
-                                   !illegal_highdma(dev, skb));
        if (unlikely(IS_ERR(segs)))
                return PTR_ERR(segs);
 
@@ -1310,13 +1318,17 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
                if (netdev_nit)
                        dev_queue_xmit_nit(skb, dev);
 
-               if (!netif_needs_gso(dev, skb))
-                       return dev->hard_start_xmit(skb, dev);
+               if (netif_needs_gso(dev, skb)) {
+                       if (unlikely(dev_gso_segment(skb)))
+                               goto out_kfree_skb;
+                       if (skb->next)
+                               goto gso;
+               }
 
-               if (unlikely(dev_gso_segment(skb)))
-                       goto out_kfree_skb;
+               return dev->hard_start_xmit(skb, dev);
        }
 
+gso:
        do {
                struct sk_buff *nskb = skb->next;
                int rc;
index 0f37266411b507a208c3f4dcd80240445cbc37d2..4b36114744c57f983c8af674ee45610f6e830ac1 100644 (file)
@@ -11,7 +11,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/netdevice.h>
 #include <linux/if.h>
index 50a8c73caf972ae64b963a02322f801669d77eaf..7ad681f5e71269c228112b539c6359c69d37c1f4 100644 (file)
@@ -15,7 +15,6 @@
  *     Harald Welte            Add neighbour cache statistics like rtstat
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index 47a6fceb6771b00943ee9d845aff91c1ea9e5977..13472762b18b4c89f57c7bb27916bd8b67b47339 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
 #include <linux/if_arp.h>
index 3fcfa9c59e1fb75abfae6c9ad6c27f4cbda0f083..20e5bb73f147b6c0f6d84d02e562560e8b500f63 100644 (file)
@@ -16,7 +16,6 @@
  *     Vitaly E. Lavrov                RTA_OK arithmetics was wrong.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/module.h>
 #include <linux/types.h>
@@ -663,7 +662,7 @@ rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, int *errp)
        sz_idx = type>>2;
        kind = type&3;
 
-       if (kind != 2 && security_netlink_recv(skb)) {
+       if (kind != 2 && security_netlink_recv(skb, CAP_NET_ADMIN)) {
                *errp = -EPERM;
                return -1;
        }
index 6edbb90cbcec303605be4064b2f1da0d56e18eb3..7cfbdb215ba2711cca6c5f8f92c3f0be640989d2 100644 (file)
@@ -38,7 +38,6 @@
  *     The functions in this file will not compile correctly with gcc 2.4.x
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
@@ -272,7 +271,7 @@ static void skb_clone_fraglist(struct sk_buff *skb)
                skb_get(list);
 }
 
-void skb_release_data(struct sk_buff *skb)
+static void skb_release_data(struct sk_buff *skb)
 {
        if (!skb->cloned ||
            !atomic_sub_return(skb->nohdr ? (1 << SKB_DATAREF_SHIFT) + 1 : 1,
@@ -1848,13 +1847,13 @@ EXPORT_SYMBOL_GPL(skb_pull_rcsum);
 /**
  *     skb_segment - Perform protocol segmentation on skb.
  *     @skb: buffer to segment
- *     @sg: whether scatter-gather can be used for generated segments
+ *     @features: features for the output path (see dev->features)
  *
  *     This function performs segmentation on the given skb.  It returns
  *     the segment at the given position.  It returns NULL if there are
  *     no more segments to generate, or when an error is encountered.
  */
-struct sk_buff *skb_segment(struct sk_buff *skb, int sg)
+struct sk_buff *skb_segment(struct sk_buff *skb, int features)
 {
        struct sk_buff *segs = NULL;
        struct sk_buff *tail = NULL;
@@ -1863,6 +1862,7 @@ struct sk_buff *skb_segment(struct sk_buff *skb, int sg)
        unsigned int offset = doffset;
        unsigned int headroom;
        unsigned int len;
+       int sg = features & NETIF_F_SG;
        int nfrags = skb_shinfo(skb)->nr_frags;
        int err = -ENOMEM;
        int i = 0;
index 5d820c3766530a991056050d23be7013107ae20c..533b9317144ba82d46a8243aa5df93a5cc29f913 100644 (file)
@@ -92,7 +92,6 @@
  */
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
@@ -565,6 +564,13 @@ set_rcvbuf:
                        ret = -ENONET;
                        break;
 
+               case SO_PASSSEC:
+                       if (valbool)
+                               set_bit(SOCK_PASSSEC, &sock->flags);
+                       else
+                               clear_bit(SOCK_PASSSEC, &sock->flags);
+                       break;
+
                /* We implement the SO_SNDLOWAT etc to
                   not be settable (1003.1g 5.3) */
                default:
@@ -723,6 +729,10 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
                        v.val = sk->sk_state == TCP_LISTEN;
                        break;
 
+               case SO_PASSSEC:
+                       v.val = test_bit(SOCK_PASSSEC, &sock->flags) ? 1 : 0;
+                       break;
+
                case SO_PEERSEC:
                        return security_socket_getpeersec_stream(sock, optval, optlen, len);
 
index 7104536567210de3ad503915a7be27e2789a6653..02534131d88e9820126f061ac6962ce24477d6d9 100644 (file)
@@ -7,7 +7,6 @@
 
 #include <linux/mm.h>
 #include <linux/sysctl.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/socket.h>
 #include <net/sock.h>
index ec7a89bb7b396ceaeaac47c2714b00fe05848318..0adf4b56c34cfea4df0c9e57eed67e6682f05e9f 100644 (file)
@@ -11,7 +11,6 @@
  *     published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/compiler.h>
 #include <linux/list.h>
 #include <linux/time.h>
index d4f9e2d3345362d12796b91e4fae70538fdb6005..e9615627dcd65faae6945604d50ac179cea58f20 100644 (file)
@@ -30,7 +30,6 @@
  * - jiffies wrapping
  */
 
-#include <linux/config.h>
 #include "../ccid.h"
 #include "../dccp.h"
 #include "ccid2.h"
index b4a51d0355a58f590d721d09833307d60b87188e..c39bff706cfc08db3f32139869edbba36768320c 100644 (file)
@@ -34,7 +34,6 @@
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include "../ccid.h"
 #include "../dccp.h"
 #include "lib/packet_history.h"
index f18b96d4e5a25039e3d15c8ae57c54c49b755524..5ade4f668b2258e66b5ce96b697903457deac153 100644 (file)
@@ -36,7 +36,6 @@
 #ifndef _DCCP_CCID3_H_
 #define _DCCP_CCID3_H_
 
-#include <linux/config.h>
 #include <linux/list.h>
 #include <linux/time.h>
 #include <linux/types.h>
index 4c01a54143ad0ef2dcdb5d76d53d685210329d2a..5d7b7d8643854d1f7b56ad02a7f38c9e443ca7e9 100644 (file)
@@ -11,7 +11,6 @@
  *  (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include "loss_interval.h"
index 417d9d82df3e35519f887eae814fac396195c2b9..43bf78269d1d5f3fa96ec600ff420855e98da4cb 100644 (file)
@@ -13,7 +13,6 @@
  *  any later version.
  */
 
-#include <linux/config.h>
 #include <linux/list.h>
 #include <linux/slab.h>
 #include <linux/time.h>
index d3f9d205383005eaa08b58ad32ca25e0b69b6537..ad98d6a322eb8de1d5018d70789431ee145b93ea 100644 (file)
@@ -34,7 +34,6 @@
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 
index 122e96737ff6db3cbcdf960d5f6bcb28e8d474f7..673c209e4e856b966d6aac88a93d4cd92329ce29 100644 (file)
@@ -37,7 +37,6 @@
 #ifndef _DCCP_PKT_HIST_
 #define _DCCP_PKT_HIST_
 
-#include <linux/config.h>
 #include <linux/list.h>
 #include <linux/slab.h>
 #include <linux/time.h>
index add3cae65e2db7d9c5112ff3ad611c2b5f92770e..4fd2ebebf5a0d7a1eb2a4c46c9a4a33c62f0d2cf 100644 (file)
@@ -12,7 +12,6 @@
  *  (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <asm/div64.h>
index 1fe509148689d4d0ddd063e94683e3d32c8dfe9f..d00a2f4ee5dd7485184289235b23b78f0c256741 100644 (file)
@@ -12,7 +12,6 @@
  *     published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/dccp.h>
 #include <net/snmp.h>
 #include <net/sock.h>
index 0f25dc395967b5b0ef8ba61ff336f5ae70988cf4..0f3745585a9486e4e1aee74df934936949b5c040 100644 (file)
@@ -9,7 +9,6 @@
  *     published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 
 #include <linux/module.h>
 #include <linux/inet_diag.h>
index b39e2a5978896f23c7755c7fc8bc2ca935458b82..a1b0682ee77c7f9af2b72dae2afb38f4decd9f97 100644 (file)
@@ -10,7 +10,6 @@
  *      2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include "dccp.h"
index bfc53665516bf26a9d6066383c75ab21634fcd38..7f9dc6ac58c95429ff1b9b311a99f1a2c2488ca1 100644 (file)
@@ -10,7 +10,6 @@
  *     2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/dccp.h>
 #include <linux/skbuff.h>
 
index f2c011fd2ba128f92757aa816da604804d99394f..c3073e7e81d3ed6a225c3bc6ee9c4aa37a86fc09 100644 (file)
@@ -10,7 +10,6 @@
  *     2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/dccp.h>
 #include <linux/icmp.h>
 #include <linux/module.h>
index 65e2ab0886e62fd3a2bddde3e9d961b40b63a195..ff42bc43263d55cf7f56ad3074a017c1a62a14fd 100644 (file)
@@ -12,7 +12,6 @@
  *      2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/random.h>
 #include <linux/xfrm.h>
index e4d4e93092702001a7dd050ef290932595f777b4..6eef81fdbe566f5623fc0816370ac15b4c01dc5a 100644 (file)
@@ -11,7 +11,6 @@
  *     published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/dccp.h>
 #include <linux/ipv6.h>
 
index c0349e5b055158d041f2d4ea61da50f090d94f30..9045438d6b36953cd26b0b2edb12226336838745 100644 (file)
@@ -10,7 +10,6 @@
  *     2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/dccp.h>
 #include <linux/skbuff.h>
 #include <linux/timer.h>
index e9feb2a0c7706ef1a464d3d7428dac77cc36013d..c3cda1e39aa8ccc500e4e7a36b0e72679d94a8ed 100644 (file)
@@ -11,7 +11,6 @@
  *      as published by the Free Software Foundation; either version
  *      2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <linux/dccp.h>
 #include <linux/module.h>
 #include <linux/types.h>
index 7409e4a3abdfb549bcfaa4463ef86f45684b4e0f..58669beee1329cde9edbe2eda112594917007b79 100644 (file)
@@ -10,7 +10,6 @@
  *     2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/dccp.h>
 #include <linux/kernel.h>
 #include <linux/skbuff.h>
index 5317fd3e66910ca25f5d73bf9dbd63e7fe400183..f4f0627ea41c0ccd53787845267330dc7eb3013b 100644 (file)
@@ -9,7 +9,6 @@
  *     published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/dccp.h>
 #include <linux/module.h>
 #include <linux/types.h>
index 64c89e9c229ea1d4298a83c947ff29837d9382ee..c1ba9451bc3dca6567ed58f8c1123031564262ab 100644 (file)
@@ -9,7 +9,6 @@
  *     as published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/sysctl.h>
 
index 5244415e5f1877762d98ba5763e0174f37ee4e7e..8447742f5615c6b615ee40ae086f5d4a1e6052d6 100644 (file)
@@ -10,7 +10,6 @@
  *     2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/dccp.h>
 #include <linux/skbuff.h>
 
index 2b289ef20ab3e57460b412181eb3d7322b2b4b05..5486247735f6a250eb0126ebc72a95e134f1159b 100644 (file)
@@ -99,7 +99,6 @@ Version 0.0.6    2.1.110   07-aug-98   Eduardo Marcelo Serrat
                                        dn_bind fixes
 *******************************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/types.h>
index a26ff9f44576fffb0c20dd7725a463c291db989e..98a25208440dcb39bcd181af751a91b3d5ab2ee6 100644 (file)
@@ -24,7 +24,6 @@
  *                             devices. All mtu based now.
  */
 
-#include <linux/config.h>
 #include <linux/capability.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
index bd4ce8681a1271efe57cc82de17f036017ea20f7..0375077391b7a39111e839dba86b6b5e4d48dbf5 100644 (file)
@@ -17,7 +17,6 @@
  *                                 this code was copied from it.
  *
  */
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/net.h>
 #include <linux/socket.h>
index 66e230c3b3287072124fa52e16c2577bdde9c7a9..5ce9c9e0565c1448e5e71333b36c3e464cc895a2 100644 (file)
@@ -24,7 +24,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/net.h>
 #include <linux/module.h>
 #include <linux/socket.h>
index a2ba9db1c37643aa5fd6d22359661a5564f3c9b0..86f7f3b28e7007c919abb574a73258b605387b2a 100644 (file)
@@ -45,7 +45,6 @@
     GNU General Public License for more details.
 *******************************************************************************/
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
index 5abf7057af00db705d4ec019a2c670312d6cdd5c..1355614ec11b90567f50d0073555a0aa1d57c185 100644 (file)
@@ -55,7 +55,6 @@
     GNU General Public License for more details.
 *******************************************************************************/
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
index 446faafe206596b11ec35bfbbaa3cc0b4cefa76b..06e785fe575798b5ae736317a44ec67d8ca07c11 100644 (file)
@@ -13,7 +13,6 @@
  * Changes:
  *
  */
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/net.h>
 #include <linux/socket.h>
index 0ebc46af1bddbb55a0b7c4aa3573339fd596d7ae..37d9d0a1ac8ce73d0f92141e92392d53df5934fc 100644 (file)
@@ -12,7 +12,6 @@
  * Changes:
  *
  */
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/net.h>
 #include <linux/socket.h>
index 74133ecd77005e4292485c557d97e39a7f12424b..8b99bd33540d53fc072278aa6ade21906a541f90 100644 (file)
@@ -107,7 +107,7 @@ static inline void dnrmg_receive_user_skb(struct sk_buff *skb)
        if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len)
                return;
 
-       if (!cap_raised(NETLINK_CB(skb).eff_cap, CAP_NET_ADMIN))
+       if (security_netlink_recv(skb, CAP_NET_ADMIN))
                RCV_SKB_FAIL(-EPERM);
 
        /* Eventually we might send routing messages too */
index bda5920215fd2f04c05bf85aa912add450e45596..e246f054f368f692a13ed7cee98db0abbf971645 100644 (file)
@@ -13,7 +13,6 @@
  * Steve Whitehouse - Memory buffer settings, like the tcp ones
  *
  */
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/sysctl.h>
 #include <linux/fs.h>
index 868265619dbb1d98aa4e0511aff54b21a14fa113..309ae4c6549a9d3b12c28222a548a582b79d88b5 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index c971f14712ec207608dd48d8477516bcb9af054b..387c71c584ee398a6d9c5ad43c6a7e1194f4a3ca 100644 (file)
@@ -51,7 +51,6 @@
 #include <linux/etherdevice.h>
 #include <linux/skbuff.h>
 #include <linux/errno.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/if_ether.h>
 #include <net/dst.h>
index 78b2d13e80e3638cba22d9a6f0bb7df727856829..492647382ad04caee03a90121fcc52012fb4e6ba 100644 (file)
@@ -9,7 +9,6 @@
  * more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index 3fa5df2e1f0baeceb229fb95a6bd6dd0c2ff081c..34dba0ba545de66e55737d56390d673789d21c99 100644 (file)
@@ -9,7 +9,6 @@
  * more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index 649e581fa565c323859e804cf4ea13f1e9c6359c..c5a87724aabeaf5f16e74bdc66ace2098d68b857 100644 (file)
@@ -9,7 +9,6 @@
  * more details.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index 192243ab35ed2fce2c9d377aca926657e58a70dc..305a09de85a57d924a187abe72148c315b06868d 100644 (file)
@@ -24,7 +24,6 @@
 
 ******************************************************************************/
 #include <linux/compiler.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/if_arp.h>
 #include <linux/in6.h>
index 2cb84d84f67136f08dd1c847893ee223ddbc6882..13b1e5fff7e4741de39c232ba35931ef84129b92 100644 (file)
@@ -31,7 +31,6 @@
 *******************************************************************************/
 
 #include <linux/compiler.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/if_arp.h>
 #include <linux/in6.h>
index 2bf567fd5a17143a096518def05a21cf2f5ccdbc..47ccf159372ce0b0e1ee57526e01df6100f5fa43 100644 (file)
@@ -14,7 +14,6 @@
  */
 
 #include <linux/compiler.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/if_arp.h>
 #include <linux/in6.h>
index 6a5de1b84459c147864406522e7c682a03e473ca..de148ae594f30cb370b2be6d6e17a8a7f6c584c4 100644 (file)
@@ -24,7 +24,6 @@
 
 ******************************************************************************/
 #include <linux/compiler.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/if_arp.h>
 #include <linux/in6.h>
index 461216b47948681791162829e8c4ca2b78e54d87..8d157157bf8e68c65ae3523b62c13ba0486437ab 100644 (file)
@@ -1097,7 +1097,7 @@ int inet_sk_rebuild_header(struct sock *sk)
 
 EXPORT_SYMBOL(inet_sk_rebuild_header);
 
-static struct sk_buff *inet_gso_segment(struct sk_buff *skb, int sg)
+static struct sk_buff *inet_gso_segment(struct sk_buff *skb, int features)
 {
        struct sk_buff *segs = ERR_PTR(-EINVAL);
        struct iphdr *iph;
@@ -1126,10 +1126,10 @@ static struct sk_buff *inet_gso_segment(struct sk_buff *skb, int sg)
        rcu_read_lock();
        ops = rcu_dereference(inet_protos[proto]);
        if (ops && ops->gso_segment)
-               segs = ops->gso_segment(skb, sg);
+               segs = ops->gso_segment(skb, features);
        rcu_read_unlock();
 
-       if (IS_ERR(segs))
+       if (!segs || unlikely(IS_ERR(segs)))
                goto out;
 
        skb = segs;
index c7782230080d21d76a7ffa70ef6df2eb6358df1b..8e748be36c5a5bf05c317e686f5fb8781ea8a20b 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <net/ip.h>
 #include <net/xfrm.h>
index 4749d504c6292188f921b8b296c0394834f2851f..7b51b3bdb548060b7c5ad42851c530a8321782c8 100644 (file)
@@ -80,7 +80,6 @@
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/socket.h>
 #include <linux/sockios.h>
 #include <linux/errno.h>
index c1b42b5257f8455d54c0388ac1ac25e76595b659..ec5da4fbd9f43d84fd961de6e855455591e49311 100644 (file)
@@ -11,7 +11,6 @@
  *     2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/ip.h>
index 54419b27686f86f33e370c4241235ef5bc723034..a7c65e9e5ec9d9b463140b0463e2b1d2511723fc 100644 (file)
@@ -27,7 +27,6 @@
  *                                     if no match found.
  */
 
-#include <linux/config.h>
 
 #include <asm/uaccess.h>
 #include <asm/system.h>
index 9bbdd4494551347b43bce292bb4406198aec4b18..4e112738b3fa15d789944b139a91eb131b12b17e 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <net/ip.h>
 #include <net/xfrm.h>
index 31387abf53a21630ebbd9c2cc9993cfa715a2ade..ba2a70745a63e65f6733e2937806dd0c240e5c85 100644 (file)
@@ -15,7 +15,6 @@
  *             2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
index e2890ec8159ec39edabd8e9d463c20aa88defdaa..3c1d32ad35f2e0ec74ee06e94698a2911abfb95a 100644 (file)
@@ -15,7 +15,6 @@
  *             2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <linux/bitops.h>
index ec566f3e66c76d833ac5ef8fe3fb8ef2a2b9eebb..6c642d11d4ca4e18cf2f2da96bbda1ccd41e9f29 100644 (file)
@@ -19,7 +19,6 @@
  *             Marc Boucher    :       routing by fwmark
  */
 
-#include <linux/config.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <linux/bitops.h>
index 0f4145babb14cf78c324d83b6f99801eaf12d95a..5f87533684d5ab5b156fc02825097f200160e764 100644 (file)
@@ -15,7 +15,6 @@
  *             2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <linux/bitops.h>
index 95a639f2e3dbc654df393c3f985b20c4fa036560..1cb65305e1029b9bd47de0f041a469f098cb550f 100644 (file)
@@ -52,7 +52,6 @@
 
 #define VERSION "0.407"
 
-#include <linux/config.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <asm/bitops.h>
index 017900172f7d5fc01505b2ac9ea90f7628c4042c..4c86ac3d882deb0a5f7250714c84f49527cf90c1 100644 (file)
@@ -64,7 +64,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/jiffies.h>
index ab680c851aa204b5e2f1b2ee18dc023b7630764f..d299c8e547d6fc12bef77b60ceeaaed19c282715 100644 (file)
@@ -72,7 +72,6 @@
  *                                     Vinay Kulkarni
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
index 9a01bb81f8bf99f5d4202e7e459b88d597170621..e50a1bfd7ccc2c26306c85e27ffecb2d434c842a 100644 (file)
@@ -13,7 +13,6 @@
  *             2 of the License, or(at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/jhash.h>
 
index 457db99c76df79ca2724af4891f05940fbec46b7..8e7e41b66c799177f9b9d05691936e9beb83a08f 100644 (file)
@@ -11,7 +11,6 @@
  *      2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/fcntl.h>
index ee9b5515b9aea20fb28d61be5aedc04321f20676..95fac5532994dd0bd801009424f9ffac7764f007 100644 (file)
@@ -13,7 +13,6 @@
  *      2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/random.h>
 #include <linux/sched.h>
index 417f126c749e0539d335ee7c3e1c3a35a516a124..cdd805344c6183730f09be330a52ee4865a760b6 100644 (file)
@@ -8,7 +8,6 @@
  *             From code orinally in TCP
  */
 
-#include <linux/config.h>
 
 #include <net/inet_hashtables.h>
 #include <net/inet_timewait_sock.h>
index 9f0bb529ab70af99e2c79ee61521d38d19f9e1e0..a22d11d2911cd4f7772b2d6428a5d525c5cc2f59 100644 (file)
@@ -21,7 +21,6 @@
  *             Mike McLagan    :       Routing by source
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
index da734c4391796e017ef55d5e3e4730bfe16a4490..b84b53a4752658e3f712328276f973f67069ea2a 100644 (file)
@@ -23,7 +23,6 @@
  */
 
 #include <linux/compiler.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index ab99bebdcdc89da781df9997c002f9d3a27c6693..6ff9b10d9563c9ef972fb70e06fd88e521b323f9 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/sched.h>
index c9026dbf4c9342cca958490aed1dec45aa36abfa..e1a7dba2fa8ac6c381e3d0fb7c63d7ba99a857ea 100644 (file)
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/errno.h>
-#include <linux/config.h>
 
 #include <linux/net.h>
 #include <linux/socket.h>
index 7624fd1d8f9fe8860479db3d3e9d530a7cd69cda..ca0e714613fb504bf495dad4eb20b2e2579aecc3 100644 (file)
@@ -53,7 +53,6 @@
 #include <linux/mm.h>
 #include <linux/string.h>
 #include <linux/errno.h>
-#include <linux/config.h>
 
 #include <linux/socket.h>
 #include <linux/sockios.h>
@@ -744,7 +743,7 @@ static inline int ip_ufo_append_data(struct sock *sk,
        if (!err) {
                /* specify the length of each IP datagram fragment*/
                skb_shinfo(skb)->gso_size = mtu - fragheaderlen;
-               skb_shinfo(skb)->gso_type = SKB_GSO_UDPV4;
+               skb_shinfo(skb)->gso_type = SKB_GSO_UDP;
                __skb_queue_tail(&sk->sk_write_queue, skb);
 
                return 0;
@@ -1089,7 +1088,7 @@ ssize_t   ip_append_page(struct sock *sk, struct page *page,
        if ((sk->sk_protocol == IPPROTO_UDP) &&
            (rt->u.dst.dev->features & NETIF_F_UFO)) {
                skb_shinfo(skb)->gso_size = mtu - fragheaderlen;
-               skb_shinfo(skb)->gso_type = SKB_GSO_UDPV4;
+               skb_shinfo(skb)->gso_type = SKB_GSO_UDP;
        }
 
 
index 12e0bf19f24ad7c109382bbbfcc0a0ac572feccf..84f43a3c909811116ba8ed39cc01c98600c13afe 100644 (file)
@@ -17,7 +17,6 @@
  *             Mike McLagan    :       Routing by source
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/mm.h>
index 3ed8b57a1002c307d4fd74f021d6177de3d9aefe..8e0374847532970b502609fbfecb9d75332a8896 100644 (file)
@@ -13,7 +13,6 @@
  *   - Compression stats.
  *   - Adaptive compression.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/scatterlist.h>
 #include <asm/semaphore.h>
index ea398ee43f28740d6b75eee0efe5ecdcd97c54ee..3291d5192aad93fe59c2baf911f30d62bf8d8d1d 100644 (file)
@@ -94,7 +94,6 @@
 
  
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/sched.h>
index 717ab7d6d7b6eb47d48f74b83623c45b820547d3..ba33f8621c6785fd71edf76e27e117a1cc1f397c 100644 (file)
@@ -28,7 +28,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <asm/system.h>
 #include <asm/uaccess.h>
 #include <linux/types.h>
index c453e1e57f4bdd758b1210395c5447560bee3fc8..4c1940381ba0f38311c78e1d9f22407d2fe4d343 100644 (file)
@@ -13,7 +13,6 @@
  * Changes:
  *
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/jiffies.h>
 #include <linux/slab.h>
index db67373f9b348669de5045ba39c558105c7b1219..252e837b17a52d54079db9c1eb5a1f62d5889a4c 100644 (file)
@@ -12,7 +12,6 @@
  *             2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/system.h>
 #include <asm/uaccess.h>
 #include <linux/types.h>
index 5249dbe7c559f90fce4671405954a415aebb3b4c..b8c289f247cbb2622bbabe2fdfc0a2e028931962 100644 (file)
@@ -12,7 +12,6 @@
  *             2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/system.h>
 #include <asm/uaccess.h>
 #include <linux/types.h>
index b6cd2870478f9db2700e5a49839f07782ac758da..bba5abe5542d3a49dff281c9a222b335f0e2ee00 100644 (file)
@@ -12,7 +12,6 @@
  *             2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/system.h>
 #include <asm/uaccess.h>
 #include <linux/types.h>
index 342d0b9098f5f8ca9bdd5a019b6a7a0660ace097..d25ec4ae09e55ca2d9e0eb6d8dbc38de10b7849c 100644 (file)
@@ -12,7 +12,6 @@
  *             2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <asm/system.h>
 #include <asm/uaccess.h>
 #include <linux/types.h>
index e1d7f5fbc52634550908485439d6ebbac7d8fb2e..ef0b5aac58382f2132f4912b641af4a7639a2cbd 100644 (file)
@@ -332,7 +332,7 @@ config IP_NF_MATCH_HASHLIMIT
        help
          This option adds a new iptables `hashlimit' match.  
 
-         As opposed to `limit', this match dynamically crates a hash table
+         As opposed to `limit', this match dynamically creates a hash table
          of limit buckets, based on your selection of source/destination
          ip addresses and/or ports.
 
index d0d19192026d9eb2327cf68a47a4ba1b23dc7fe5..80c73ca90116f51ecff0cc2e52b8e4201f747920 100644 (file)
@@ -9,7 +9,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/skbuff.h>
 #include <linux/netdevice.h>
@@ -1120,7 +1119,8 @@ int arpt_register_table(struct arpt_table *table,
                return ret;
        }
 
-       if (xt_register_table(table, &bootstrap, newinfo) != 0) {
+       ret = xt_register_table(table, &bootstrap, newinfo);
+       if (ret != 0) {
                xt_free_table_info(newinfo);
                return ret;
        }
index 7e4cf9a4d15f8509a4362466d7a4f26ef081f782..aa459177c3f8e11fd5ae0d516dc6c37586360d7c 100644 (file)
@@ -17,7 +17,6 @@
  *     - export ip_conntrack[_expect]_{find_get,put} functions
  * */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/icmp.h>
 #include <linux/ip.h>
index 4dcf526c394498c061bb4757d5f6d1e320b547e8..1d18c863f064d67fbba87db04c01020327c2025c 100644 (file)
@@ -8,7 +8,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/netfilter.h>
 #include <linux/ip.h>
index 0665674218c6987c0956f015be4069d41897a174..af35235672d58f9ce0ec320073b838930b0352a7 100644 (file)
@@ -11,7 +11,6 @@
  * For more information, please see http://nath323.sourceforge.net/
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/netfilter.h>
 #include <linux/ip.h>
index 8ccfe17bb253353693bb745c5c9fceff8ffa7de1..b020a33e65e94ca3b2a1cb4500b32923a8b24705 100644 (file)
@@ -46,7 +46,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/netfilter.h>
 #include <linux/ip.h>
index a2ac5ce544b2a9d75f2b0520f0303b7bc16a7777..44889075f3b2df3ed85807fb87cd5bc536e679aa 100644 (file)
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/netfilter.h>
 #include <linux/ip.h>
index 21ee124c04636d686f1e3e360e4cb5f7d21c68f4..4ee016c427b4e4c0b573d7d0c6ba22799391b318 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/timer.h>
index 0416073c5600c109c56d85d3a49359a829fbc4cb..2d3612cd5f18cd1c442ac7407e7d5202c8d5ebbd 100644 (file)
@@ -254,7 +254,7 @@ static int do_basic_checks(struct ip_conntrack *conntrack,
        }
 
        DEBUGP("Basic checks passed\n");
-       return 0;
+       return count == 0;
 }
 
 static int new_state(enum ip_conntrack_dir dir,
index c5c2ce5cdeb88205ea3a17dc48d12dea4af3a5c3..fb920e76ec106744746b7716a3ea54be01333e94 100644 (file)
@@ -19,7 +19,6 @@
  * version 2.2
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/sched.h>
 #include <linux/timer.h>
index 88445aac3f280c06c02924e817c9987ee5191cfb..7bd3c22003a20a84b9e92479db92a0c1b871edcf 100644 (file)
@@ -12,7 +12,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/ip.h>
 #include <linux/netfilter.h>
index 5d506e0564d5f507b7209ddfea993e68366d52ec..cbcaa45370ae5a25476c9374fe4ee8e0ad3f5b87 100644 (file)
@@ -15,7 +15,6 @@
  *             - make ip_nat_resize_packet more generic (TCP and UDP)
  *             - add ip_nat_mangle_udp_packet
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kmod.h>
 #include <linux/types.h>
index f3977726ff09a7dfc145eadcc88744d4e6d1b8ec..1d149964dc38f0e944fb050ecae27cf5affd64a3 100644 (file)
@@ -35,7 +35,6 @@
  * 
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/ip.h>
 #include <linux/tcp.h>
index 96ceabaec4027932854f46479b112d45a4ac53d6..38acfdf540ebee653c74eb27a448697a43e75d83 100644 (file)
@@ -23,7 +23,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/ip.h>
 #include <linux/netfilter_ipv4/ip_nat.h>
index d20d557f915affc383308ebc793fbdcca8a8bf15..0b1b416759ccc948a54c9e78aabcda86b68fe89d 100644 (file)
@@ -43,7 +43,6 @@
  * 2000-08-06: Convert to new helper API (Harald Welte).
  *
  */
-#include <linux/config.h>
 #include <linux/in.h>
 #include <linux/module.h>
 #include <linux/types.h>
index 67e676783da9bd9cdf46fea59fcc287d5f9cf277..17de077a790169166533da0a12056012b668f77d 100644 (file)
@@ -18,7 +18,6 @@
  *     - now capable of multiple expectations for one master
  * */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/icmp.h>
 #include <linux/ip.h>
index b93f0494362f888785d2dd8af8524d86f67ccdc0..198ac36db861225ec879f21b3ce3b833b082ce0b 100644 (file)
@@ -457,11 +457,19 @@ dev_cmp(struct ipq_queue_entry *entry, unsigned long ifindex)
        if (entry->info->indev)
                if (entry->info->indev->ifindex == ifindex)
                        return 1;
-                       
        if (entry->info->outdev)
                if (entry->info->outdev->ifindex == ifindex)
                        return 1;
-
+#ifdef CONFIG_BRIDGE_NETFILTER
+       if (entry->skb->nf_bridge) {
+               if (entry->skb->nf_bridge->physindev &&
+                   entry->skb->nf_bridge->physindev->ifindex == ifindex)
+                       return 1;
+               if (entry->skb->nf_bridge->physoutdev &&
+                   entry->skb->nf_bridge->physoutdev->ifindex == ifindex)
+                       return 1;
+       }
+#endif
        return 0;
 }
 
@@ -507,7 +515,7 @@ ipq_rcv_skb(struct sk_buff *skb)
        if (type <= IPQM_BASE)
                return;
                
-       if (security_netlink_recv(skb))
+       if (security_netlink_recv(skb, CAP_NET_ADMIN))
                RCV_SKB_FAIL(-EPERM);
        
        write_lock_bh(&queue_lock);
index 706c0025ec5e43768c7c9dadfb30e3782c275d67..fc5bdd5eb7d35aa7de0f4fd5a2c7a8bc794dd643 100644 (file)
@@ -14,7 +14,6 @@
  * 08 Oct 2005 Harald Welte <lafore@netfilter.org>
  *     - Generalize into "x_tables" layer and "{ip,ip6,arp}_tables"
  */
-#include <linux/config.h>
 #include <linux/cache.h>
 #include <linux/capability.h>
 #include <linux/skbuff.h>
@@ -2113,7 +2112,8 @@ int ipt_register_table(struct xt_table *table, const struct ipt_replace *repl)
                return ret;
        }
 
-       if (xt_register_table(table, &bootstrap, newinfo) != 0) {
+       ret = xt_register_table(table, &bootstrap, newinfo);
+       if (ret != 0) {
                xt_free_table_info(newinfo);
                return ret;
        }
index dbc83c5d7aa666f0521722460dbb6ce1f789e8a4..cbffeae3f565703d607c2431ebcce355e5925a37 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/proc_fs.h>
 #include <linux/jhash.h>
 #include <linux/bitops.h>
index 8b3e7f99b8615e1e44b6951e0222e4358ca47d43..ebd94f2abf0d49674d8ba6d74e34dff475eb7588 100644 (file)
@@ -9,7 +9,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/inetdevice.h>
 #include <linux/ip.h>
index 2fcf1075b027aedb6bbe8bfbb7678e08bf82ff19..736c4b5a86a79f5158f114eec47c902af22c0cff 100644 (file)
@@ -10,7 +10,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/ip.h>
 #include <linux/module.h>
 #include <linux/netdevice.h>
index 431a3ce6f7b74b04df91966882811b8508a88d50..269bc2067cb80085588f132703399371468434cf 100644 (file)
@@ -12,7 +12,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/skbuff.h>
 #include <linux/ip.h>
index c84cc03389d8b717fa019886c3da5f65123381ba..d7dd7fe7051ca4413de76da6e631403499b67925 100644 (file)
@@ -47,7 +47,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/spinlock.h>
 #include <linux/socket.h>
 #include <linux/skbuff.h>
index 397b95cc026ba9841f4414ca79cc9622318654e1..4e7998beda635970bacb483dae78052180d649c8 100644 (file)
@@ -10,7 +10,6 @@
  *
  * Extended to all five netfilter hooks by Brad Chapman & Harald Welte
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/netfilter_ipv4/ip_tables.h>
 #include <linux/netdevice.h>
index 8cc8e1b3677894283bd047121a179fce74d80b8e..0af803df82b02ef645704099ea4d6f02b6d37701 100644 (file)
@@ -14,7 +14,6 @@
  * Derived from net/ipv4/netfilter/ip_conntrack_standalone.c
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/ip.h>
 #include <linux/netfilter.h>
index 291831e792aff067c46e8a3959c9a7058580ddbc..05f5114828eaf04d0393dda48038ed1c536639b6 100644 (file)
@@ -32,7 +32,6 @@
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/string.h>
-#include <linux/config.h>
 #include <linux/socket.h>
 #include <linux/in.h>
 #include <linux/inet.h>
index 60b11aece5c3971a321411b9247723b367ea4538..da44fabf4dc56949b146ca71e64b5417698b830c 100644 (file)
@@ -64,7 +64,6 @@
  *             2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
index ce4cd5f355116e2d0d30e96aff51a2f6f2c0e90f..70cea9d08a38f7972b9a7ce0a7f17242de1ce41e 100644 (file)
@@ -10,7 +10,6 @@
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/sysctl.h>
-#include <linux/config.h>
 #include <linux/igmp.h>
 #include <linux/inetdevice.h>
 #include <net/snmp.h>
index c04176be7ed12826de51bcf036d2e64cd7f0b17e..804458712d881dee4065f2e4cbd7e7c99296d545 100644 (file)
  *     TCP_CLOSE               socket is finished
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/fcntl.h>
@@ -643,7 +642,7 @@ static inline int select_size(struct sock *sk, struct tcp_sock *tp)
        int tmp = tp->mss_cache;
 
        if (sk->sk_route_caps & NETIF_F_SG) {
-               if (sk->sk_route_caps & NETIF_F_TSO)
+               if (sk_can_gso(sk))
                        tmp = 0;
                else {
                        int pgbreak = SKB_MAX_HEAD(MAX_TCP_HEADER);
@@ -2145,7 +2144,7 @@ int compat_tcp_getsockopt(struct sock *sk, int level, int optname,
 EXPORT_SYMBOL(compat_tcp_getsockopt);
 #endif
 
-struct sk_buff *tcp_tso_segment(struct sk_buff *skb, int sg)
+struct sk_buff *tcp_tso_segment(struct sk_buff *skb, int features)
 {
        struct sk_buff *segs = ERR_PTR(-EINVAL);
        struct tcphdr *th;
@@ -2169,7 +2168,17 @@ struct sk_buff *tcp_tso_segment(struct sk_buff *skb, int sg)
        oldlen = (u16)~skb->len;
        __skb_pull(skb, thlen);
 
-       segs = skb_segment(skb, sg);
+       if (skb_gso_ok(skb, features | NETIF_F_GSO_ROBUST)) {
+               /* Packet is from an untrusted source, reset gso_segs. */
+               int mss = skb_shinfo(skb)->gso_size;
+
+               skb_shinfo(skb)->gso_segs = (skb->len + mss - 1) / mss;
+
+               segs = NULL;
+               goto out;
+       }
+
+       segs = skb_segment(skb, features);
        if (IS_ERR(segs))
                goto out;
 
@@ -2205,6 +2214,7 @@ struct sk_buff *tcp_tso_segment(struct sk_buff *skb, int sg)
 out:
        return segs;
 }
+EXPORT_SYMBOL(tcp_tso_segment);
 
 extern void __skb_cb_too_small_for_tcp(int, int);
 extern struct tcp_congestion_ops tcp_reno;
index b2d9021ad22bfb0bef5d6c59a5ea2d4dc178fa01..b0134ab0837945bb4b4082a3435bd3f845c49440 100644 (file)
@@ -12,7 +12,6 @@
  * this behaves the same as the original Reno.
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <net/tcp.h>
index 857eefc52aab900c6a52f759f04d028f0af27516..5765f9d03174aad9c686a09106cd7943dd13a120 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 2005 Stephen Hemminger <shemminger@osdl.org>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/mm.h>
 #include <linux/types.h>
index 78b7a6b9e4defed2a15d99ee6cc7356e52f69042..2be27980ca7854cd535555d6849746d4d499289e 100644 (file)
@@ -12,7 +12,6 @@
  * this behaves the same as the original Reno.
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <net/tcp.h>
index c148c1081880a03aa1a7f24a692cb439f7ee3d70..57c5f0b10e6ccce7b90a51c75782a89bbac8112b 100644 (file)
@@ -11,7 +11,6 @@
  *      2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 
 #include <linux/module.h>
 #include <linux/inet_diag.h>
@@ -26,7 +25,10 @@ static void tcp_diag_get_info(struct sock *sk, struct inet_diag_msg *r,
        const struct tcp_sock *tp = tcp_sk(sk);
        struct tcp_info *info = _info;
 
-       r->idiag_rqueue = tp->rcv_nxt - tp->copied_seq;
+       if (sk->sk_state == TCP_LISTEN)
+               r->idiag_rqueue = sk->sk_ack_backlog;
+       else
+               r->idiag_rqueue = tp->rcv_nxt - tp->copied_seq;
        r->idiag_wqueue = tp->write_seq - tp->snd_una;
        if (info != NULL)
                tcp_get_info(sk, info);
index 1120245b237341bb9e8d4664e0a9f2eb2ab824af..aaa1538c0692c2d842b244106e1f859817f28177 100644 (file)
@@ -6,7 +6,6 @@
  * John Heffner <jheffner@psc.edu>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <net/tcp.h>
 
index 3d92c185926702ce4db03bced99ae286903ddc61..6edfe5e4510eda643a0aef9c0f48db09e83b5e2d 100644 (file)
@@ -6,7 +6,6 @@
  * http://www.hamilton.ie/net/htcp3.pdf
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <net/tcp.h>
index 40dbb38775101c02b4c285b887f13d1ff0aecebb..7406e0c5fb8e45d85a18bc956accd781221944d0 100644 (file)
@@ -10,7 +10,6 @@
  *    root at danielinux.net
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <net/tcp.h>
 
index 94fe5b1f9dcbeb1b819da503b8d5a09d0c35569c..738dad9f7d498d40538aa77c3161900353470c7a 100644 (file)
@@ -63,7 +63,6 @@
  *             Pasi Sarolahti:         F-RTO for dealing with spurious RTOs
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/sysctl.h>
@@ -4178,8 +4177,6 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
                 */
 
                TCP_ECN_rcv_synack(tp, th);
-               if (tp->ecn_flags&TCP_ECN_OK)
-                       sock_set_flag(sk, SOCK_NO_LARGESEND);
 
                tp->snd_wl1 = TCP_SKB_CB(skb)->seq;
                tcp_ack(sk, skb, FLAG_SLOWPATH);
@@ -4322,8 +4319,6 @@ discard:
                tp->max_window = tp->snd_wnd;
 
                TCP_ECN_rcv_syn(tp, th);
-               if (tp->ecn_flags&TCP_ECN_OK)
-                       sock_set_flag(sk, SOCK_NO_LARGESEND);
 
                tcp_mtup_init(sk);
                tcp_sync_mss(sk, icsk->icsk_pmtu_cookie);
index 25ecc6e2478b5eb9a5ad64b4ed61b4e7a937bc0f..8355b729fa9574ad8025c9b0620c3287c46c891b 100644 (file)
@@ -52,7 +52,6 @@
  *                                     a single port at the same time.
  */
 
-#include <linux/config.h>
 
 #include <linux/types.h>
 #include <linux/fcntl.h>
@@ -242,6 +241,7 @@ int tcp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len)
                goto failure;
 
        /* OK, now commit destination to socket.  */
+       sk->sk_gso_type = SKB_GSO_TCPV4;
        sk_setup_caps(sk, &rt->u.dst);
 
        if (!tp->write_seq)
@@ -884,6 +884,7 @@ struct sock *tcp_v4_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
        if (!newsk)
                goto exit;
 
+       newsk->sk_gso_type = SKB_GSO_TCPV4;
        sk_setup_caps(newsk, dst);
 
        newtp                 = tcp_sk(newsk);
@@ -1726,7 +1727,8 @@ static void get_tcp4_sock(struct sock *sp, char *tmpbuf, int i)
        sprintf(tmpbuf, "%4d: %08X:%04X %08X:%04X %02X %08X:%08X %02X:%08lX "
                        "%08X %5d %8d %lu %d %p %u %u %u %u %d",
                i, src, srcp, dest, destp, sp->sk_state,
-               tp->write_seq - tp->snd_una, tp->rcv_nxt - tp->copied_seq,
+               tp->write_seq - tp->snd_una,
+               (sp->sk_state == TCP_LISTEN) ? sp->sk_ack_backlog : (tp->rcv_nxt - tp->copied_seq),
                timer_active,
                jiffies_to_clock_t(timer_expires - jiffies),
                icsk->icsk_retransmits,
index 2b9b7f6c7f7c101867d1318bcc56d64b995eb0ed..e0851697ad5ee918f59d3ebc05ae655edeafa04d 100644 (file)
@@ -20,7 +20,6 @@
  *             Jorge Cwik, <jorge@laser.satlink.net>
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/sysctl.h>
@@ -440,8 +439,6 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct request_sock *req,
                        newicsk->icsk_ack.last_seg_size = skb->len - newtp->tcp_header_len;
                newtp->rx_opt.mss_clamp = req->mss;
                TCP_ECN_openreq_child(newtp, req);
-               if (newtp->ecn_flags&TCP_ECN_OK)
-                       sock_set_flag(newsk, SOCK_NO_LARGESEND);
 
                TCP_INC_STATS_BH(TCP_MIB_PASSIVEOPENS);
        }
index bdd71db8bf908e3d20dad25ee43ec777970c139c..5c08ea20a18dfb8fa965fc23070729c176aba4f0 100644 (file)
@@ -510,8 +510,7 @@ static void tcp_queue_skb(struct sock *sk, struct sk_buff *skb)
 
 static void tcp_set_skb_tso_segs(struct sock *sk, struct sk_buff *skb, unsigned int mss_now)
 {
-       if (skb->len <= mss_now ||
-           !(sk->sk_route_caps & NETIF_F_TSO)) {
+       if (skb->len <= mss_now || !sk_can_gso(sk)) {
                /* Avoid the costly divide in the normal
                 * non-TSO case.
                 */
@@ -525,7 +524,7 @@ static void tcp_set_skb_tso_segs(struct sock *sk, struct sk_buff *skb, unsigned
                factor /= mss_now;
                skb_shinfo(skb)->gso_segs = factor;
                skb_shinfo(skb)->gso_size = mss_now;
-               skb_shinfo(skb)->gso_type = SKB_GSO_TCPV4;
+               skb_shinfo(skb)->gso_type = sk->sk_gso_type;
        }
 }
 
@@ -824,9 +823,7 @@ unsigned int tcp_current_mss(struct sock *sk, int large_allowed)
 
        mss_now = tp->mss_cache;
 
-       if (large_allowed &&
-           (sk->sk_route_caps & NETIF_F_TSO) &&
-           !tp->urg_mode)
+       if (large_allowed && sk_can_gso(sk) && !tp->urg_mode)
                doing_tso = 1;
 
        if (dst) {
@@ -2044,8 +2041,6 @@ struct sk_buff * tcp_make_synack(struct sock *sk, struct dst_entry *dst,
        memset(th, 0, sizeof(struct tcphdr));
        th->syn = 1;
        th->ack = 1;
-       if (dst->dev->features&NETIF_F_TSO)
-               ireq->ecn_ok = 0;
        TCP_ECN_make_synack(req, th);
        th->source = inet_sk(sk)->sport;
        th->dest = ireq->rmt_port;
index 26d7486ee5019a842157d9b4b8aeea55abb2f26c..4624501e9680d14dc0ec462797cd9648b77541ea 100644 (file)
@@ -5,7 +5,6 @@
  * John Heffner <jheffner@sc.edu>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <net/tcp.h>
 
index 3b7403495052e31efb9bbaa4c33e740fd99685f2..490360b5b4bf19a8fd306ca178d2dd5da7a26e6d 100644 (file)
@@ -31,7 +31,6 @@
  *     assumed senders never went idle.
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/skbuff.h>
index 4247da1384bfb25487b51add257cb8d852ec8327..5446312ffd2add4204dcf3b57045e3aedf7547e5 100644 (file)
@@ -21,7 +21,6 @@
  * ssthresh after packet loss. The probing phase is as the original Reno.
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/skbuff.h>
index 3f93292b0ad8549366ce57938170e08116de1faf..9bfcddad695b0c4e3a2c3bb5dde02454ffa8266e 100644 (file)
@@ -91,7 +91,6 @@
 #include <linux/errno.h>
 #include <linux/timer.h>
 #include <linux/mm.h>
-#include <linux/config.h>
 #include <linux/inet.h>
 #include <linux/ipv6.h>
 #include <linux/netdevice.h>
index c0465284dfacba4dccd0063e357e865301023d40..8f50eae47d039e3d1fbb69dac42db60e1eb1b53e 100644 (file)
@@ -9,7 +9,6 @@
  */
 
 #include <linux/compiler.h>
-#include <linux/config.h>
 #include <linux/inetdevice.h>
 #include <net/xfrm.h>
 #include <net/ip.h>
index 4da664538f5204dd47f0299ada575435d719a3ca..c250d0af10d77c3fc76f90a842da7414d1b2ed1e 100644 (file)
@@ -40,7 +40,6 @@
  *                                             status etc.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
index e19457fe4f6edb79ef059dbf88f93ed1836bc8d9..5a0ba58b86cc055845c74dba1ca8c6c0a47fdc31 100644 (file)
@@ -23,7 +23,6 @@
 
 #include <linux/module.h>
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
@@ -660,8 +659,6 @@ int inet6_sk_rebuild_header(struct sock *sk)
                }
 
                ip6_dst_store(sk, dst, NULL);
-               sk->sk_route_caps = dst->dev->features &
-                       ~(NETIF_F_IP_CSUM | NETIF_F_TSO);
        }
 
        return 0;
index d31c0d6c04488c90cf7c8972851c9f526aa1f1f0..9d4831bd43355fd6d8ca1ff343fde85092b4de8d 100644 (file)
@@ -24,7 +24,6 @@
  *     This file is derived from net/ipv4/ah.c.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <net/ip.h>
 #include <net/ah.h>
index 39ec528923f630205f37a725987544222601dd99..f6881d7a038599ee190c3dfcee85cb12b222d876 100644 (file)
@@ -14,7 +14,6 @@
  */
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/types.h>
index a15a6f320f7000c5b512ff3f6f3085a33016c3df..a278d5e862fe38b9210b3d814604883f450ef339 100644 (file)
@@ -24,7 +24,6 @@
  *     This file is derived from net/ipv4/esp.c
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <net/ip.h>
 #include <net/xfrm.h>
index a18d4256372cf988e66d1feef51507b7163b8103..9d0ee7f0eeb5296dfb44514295c1c5c53027fb59 100644 (file)
@@ -179,7 +179,7 @@ static int ipv6_destopt_rcv(struct sk_buff **skbp)
 
 static struct inet6_protocol destopt_protocol = {
        .handler        =       ipv6_destopt_rcv,
-       .flags          =       INET6_PROTO_NOPOLICY,
+       .flags          =       INET6_PROTO_NOPOLICY | INET6_PROTO_GSO_EXTHDR,
 };
 
 void __init ipv6_destopt_init(void)
@@ -340,7 +340,7 @@ looped_back:
 
 static struct inet6_protocol rthdr_protocol = {
        .handler        =       ipv6_rthdr_rcv,
-       .flags          =       INET6_PROTO_NOPOLICY,
+       .flags          =       INET6_PROTO_NOPOLICY | INET6_PROTO_GSO_EXTHDR,
 };
 
 void __init ipv6_rthdr_init(void)
index eb2865d5ae286cdfffa2c098aa881c7c752b526e..5c950cc79d80a3c04384b8238e2573e9f827fdb5 100644 (file)
@@ -13,7 +13,6 @@
  *             2 of the License, or(at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/in6.h>
 #include <linux/ipv6.h>
@@ -187,8 +186,6 @@ int inet6_csk_xmit(struct sk_buff *skb, int ipfragok)
                }
 
                ip6_dst_store(sk, dst, NULL);
-               sk->sk_route_caps = dst->dev->features &
-                       ~(NETIF_F_IP_CSUM | NETIF_F_TSO);
        }
 
        skb->dst = dst_clone(dst);
index 2ae84c961678f17d258aaf1524a2d58a39f60835..d2f3fc990bfaa2a535bf4cbf2f6a4590b66abb71 100644 (file)
@@ -14,7 +14,6 @@
  *      2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/random.h>
 
index 2cb6149349bf89a4f6f8c4941fd9b8864f996483..764221220afd301411753bc00ef72b308304ab90 100644 (file)
@@ -19,7 +19,6 @@
  *                             remove ip6_null_entry from the top of
  *                             routing table.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/net.h>
index f9ca63912fbf378f3ed4d8bd1461776a5ccc3d33..1d672b0547f25c9bed0fcb72a2125bc0b475c857 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
index aceee252503dfe84f5ccb34b950949f284577d0a..df8f051c0fce2eb910429a9313ec0db8e3ba9462 100644 (file)
@@ -84,14 +84,9 @@ int ipv6_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt
         */
        IP6CB(skb)->iif = skb->dst ? ((struct rt6_info *)skb->dst)->rt6i_idev->dev->ifindex : dev->ifindex;
 
-       if (skb->len < sizeof(struct ipv6hdr))
+       if (unlikely(!pskb_may_pull(skb, sizeof(*hdr))))
                goto err;
 
-       if (!pskb_may_pull(skb, sizeof(struct ipv6hdr))) {
-               IP6_INC_STATS_BH(IPSTATS_MIB_INHDRERRORS);
-               goto drop;
-       }
-
        hdr = skb->nh.ipv6h;
 
        if (hdr->version != 6)
index abb94de3376876a02eb1adcb5081ed021a93a67d..2c5b44575af0fee96124d8e37580af9e2d2cb4b4 100644 (file)
@@ -28,7 +28,6 @@
  *                             for datagram xmit
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/string.h>
@@ -230,7 +229,7 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl,
        skb->priority = sk->sk_priority;
 
        mtu = dst_mtu(dst);
-       if ((skb->len <= mtu) || ipfragok) {
+       if ((skb->len <= mtu) || ipfragok || skb_shinfo(skb)->gso_size) {
                IP6_INC_STATS(IPSTATS_MIB_OUTREQUESTS);
                return NF_HOOK(PF_INET6, NF_IP6_LOCAL_OUT, skb, NULL, dst->dev,
                                dst_output);
@@ -835,7 +834,7 @@ static inline int ip6_ufo_append_data(struct sock *sk,
                /* specify the length of each IP datagram fragment*/
                skb_shinfo(skb)->gso_size = mtu - fragheaderlen - 
                                            sizeof(struct frag_hdr);
-               skb_shinfo(skb)->gso_type = SKB_GSO_UDPV4;
+               skb_shinfo(skb)->gso_type = SKB_GSO_UDP;
                ipv6_select_ident(skb, &fhdr);
                skb_shinfo(skb)->ip6_frag_id = fhdr.identification;
                __skb_queue_tail(&sk->sk_write_queue, skb);
index a995796b5a577fb7b0f4a947d54a85897143a1ab..bc77c0e1a943520fd31f4caf6b0bd5f23b1bba5f 100644 (file)
@@ -19,7 +19,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/capability.h>
 #include <linux/errno.h>
index f28cd37feed3132444f84609cfaaed24ecfe3ede..b285b0357084adac5a81679d8a8e577863dd233d 100644 (file)
@@ -30,7 +30,6 @@
  *  The decompression of IP datagram MUST be done after the reassembly, 
  *  AH/ESP processing.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <net/ip.h>
 #include <net/xfrm.h>
index 4c20eeb3d56844859754cb207c8ad705f6558c4b..c28e5c287447105d36334b480f02b912deb0a2af 100644 (file)
@@ -27,7 +27,6 @@
 
 #include <linux/module.h>
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
 
 DEFINE_SNMP_STAT(struct ipstats_mib, ipv6_statistics) __read_mostly;
 
+static struct sk_buff *ipv6_gso_segment(struct sk_buff *skb, int features)
+{
+       struct sk_buff *segs = ERR_PTR(-EINVAL);
+       struct ipv6hdr *ipv6h;
+       struct inet6_protocol *ops;
+       int proto;
+
+       if (unlikely(!pskb_may_pull(skb, sizeof(*ipv6h))))
+               goto out;
+
+       ipv6h = skb->nh.ipv6h;
+       proto = ipv6h->nexthdr;
+       __skb_pull(skb, sizeof(*ipv6h));
+
+       rcu_read_lock();
+       for (;;) {
+               struct ipv6_opt_hdr *opth;
+               int len;
+
+               if (proto != NEXTHDR_HOP) {
+                       ops = rcu_dereference(inet6_protos[proto]);
+
+                       if (unlikely(!ops))
+                               goto unlock;
+
+                       if (!(ops->flags & INET6_PROTO_GSO_EXTHDR))
+                               break;
+               }
+
+               if (unlikely(!pskb_may_pull(skb, 8)))
+                       goto unlock;
+
+               opth = (void *)skb->data;
+               len = opth->hdrlen * 8 + 8;
+
+               if (unlikely(!pskb_may_pull(skb, len)))
+                       goto unlock;
+
+               proto = opth->nexthdr;
+               __skb_pull(skb, len);
+       }
+
+       skb->h.raw = skb->data;
+       if (likely(ops->gso_segment))
+               segs = ops->gso_segment(skb, features);
+
+unlock:
+       rcu_read_unlock();
+
+       if (unlikely(IS_ERR(segs)))
+               goto out;
+
+       for (skb = segs; skb; skb = skb->next) {
+               ipv6h = skb->nh.ipv6h;
+               ipv6h->payload_len = htons(skb->len - skb->mac_len);
+       }
+
+out:
+       return segs;
+}
+
 static struct packet_type ipv6_packet_type = {
        .type = __constant_htons(ETH_P_IPV6), 
        .func = ipv6_rcv,
+       .gso_segment = ipv6_gso_segment,
 };
 
 struct ip6_ra_chain *ip6_ra_chain;
index 16482785bdfddf322fad974dfe3e407285549ee2..dd4d1ce777699e66b57f2bfd097c09a4cbe000ea 100644 (file)
@@ -1,5 +1,4 @@
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <net/protocol.h>
 #include <net/ipv6.h>
index 6e871afbb2c7154bbb72723ade6a212773b00440..9d697d4dcffccde33651b99a5e9b7fe9b37ddf48 100644 (file)
@@ -28,7 +28,6 @@
  *             - MLDv2 support
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/types.h>
index dfa20d3be9b69ec23db998c2e5268e38ab60a41a..b50055b9278d8b1bf9752b30ff41ad5e648115d4 100644 (file)
@@ -48,7 +48,6 @@
 #endif
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
index b4b7d441af25411f04af9e7a657cb21488f51370..968a14be0d0578eb17f48e2ea03018845cbd40f8 100644 (file)
@@ -505,7 +505,7 @@ ipq_rcv_skb(struct sk_buff *skb)
        if (type <= IPQM_BASE)
                return;
        
-       if (security_netlink_recv(skb))
+       if (security_netlink_recv(skb, CAP_NET_ADMIN))
                RCV_SKB_FAIL(-EPERM);   
 
        write_lock_bh(&queue_lock);
index 2e72f89a7019929f2da18cb74ef1ba26e9d1d74b..7ef143c0ebf6bac967821f2b8cf4617c456bdde9 100644 (file)
@@ -19,7 +19,6 @@
  */
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/in.h>
 #include <linux/skbuff.h>
 #include <linux/kmod.h>
@@ -1281,7 +1280,8 @@ int ip6t_register_table(struct xt_table *table,
                return ret;
        }
 
-       if (xt_register_table(table, &bootstrap, newinfo) != 0) {
+       ret = xt_register_table(table, &bootstrap, newinfo);
+       if (ret != 0) {
                xt_free_table_info(newinfo);
                return ret;
        }
index de1175c27f6dfde1d4639d6ac8f5251cf9bf9c57..8629ba195d2d8ae290ac921518f1905e78f7f34f 100644 (file)
@@ -15,7 +15,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/skbuff.h>
 #include <linux/icmpv6.h>
index 2a71c3b669f17993b562cd1875a7b4f04e082b38..c2ab38ff46af523159e7b1e090fdc008fc16f87d 100644 (file)
@@ -20,7 +20,6 @@
  *       structures.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/ipv6.h>
 #include <linux/in6.h>
index c32a029e43f0530a3c5e58c764ea3eef16247646..00d5583807f76c0e5f22f6c2a7f7fb9d74fc7a1b 100644 (file)
@@ -14,7 +14,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/string.h>
index 779ddf77f4d41d0455d449ad2e4b4f8eeaf8f984..efee7a6301a81269c4678dc0bb18fe48c471bf96 100644 (file)
@@ -17,7 +17,6 @@
  *             as published by the Free Software Foundation; either version
  *             2 of the License, or (at your option) any later version.
  */
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/socket.h>
 #include <linux/net.h>
index eef985e010ea7f85b06927d11fd181099825227f..4e299c69e1c60f1c469cd6dd8b8b90a3d0f016b0 100644 (file)
@@ -28,7 +28,6 @@
  *     YOSHIFUJI,H. @USAGI     Always remove fragment header to
  *                             calculate ICV correctly.
  */
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/string.h>
index e728980160d2243400ed49cd2124bd7dfec5bb34..87c39c978cd0e12dc44ecddd521d5a220e40ff9f 100644 (file)
@@ -25,7 +25,6 @@
  */
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/times.h>
index 6578c3080f47738fb1a2a4d35e4320c2c4d285a2..c56aeece2bf59cff97a63c91fb366327637e73f3 100644 (file)
@@ -18,7 +18,6 @@
  * Nate Thompson <nate@thebog.net>:            6to4 support
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/capability.h>
 #include <linux/errno.h>
index 8eff9fa1e983312b38926e1d5e3286d7474f84b6..7a4639db13464bf6f6c87af2312680fe736d2561 100644 (file)
@@ -7,7 +7,6 @@
 
 #include <linux/mm.h>
 #include <linux/sysctl.h>
-#include <linux/config.h>
 #include <linux/in6.h>
 #include <linux/ipv6.h>
 #include <net/ndisc.h>
index a50eb306e9e277605e4202cc14cacdf026357b59..5bdcb9002cf733ee670c05d12e2801e3a9488302 100644 (file)
@@ -26,7 +26,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
@@ -270,9 +269,8 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
        ipv6_addr_copy(&np->saddr, saddr);
        inet->rcv_saddr = LOOPBACK4_IPV6;
 
+       sk->sk_gso_type = SKB_GSO_TCPV6;
        ip6_dst_store(sk, dst, NULL);
-       sk->sk_route_caps = dst->dev->features &
-               ~(NETIF_F_IP_CSUM | NETIF_F_TSO);
 
        icsk->icsk_ext_hdr_len = 0;
        if (np->opt)
@@ -930,9 +928,8 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
         * comment in that function for the gory details. -acme
         */
 
+       sk->sk_gso_type = SKB_GSO_TCPV6;
        ip6_dst_store(newsk, dst, NULL);
-       newsk->sk_route_caps = dst->dev->features &
-               ~(NETIF_F_IP_CSUM | NETIF_F_TSO);
 
        newtcp6sk = (struct tcp6_sock *)newsk;
        inet_sk(newsk)->pinet6 = &newtcp6sk->inet6;
@@ -1469,7 +1466,8 @@ static void get_tcp6_sock(struct seq_file *seq, struct sock *sp, int i)
                   dest->s6_addr32[0], dest->s6_addr32[1],
                   dest->s6_addr32[2], dest->s6_addr32[3], destp,
                   sp->sk_state, 
-                  tp->write_seq-tp->snd_una, tp->rcv_nxt-tp->copied_seq,
+                  tp->write_seq-tp->snd_una,
+                  (sp->sk_state == TCP_LISTEN) ? sp->sk_ack_backlog : (tp->rcv_nxt - tp->copied_seq),
                   timer_active,
                   jiffies_to_clock_t(timer_expires - jiffies),
                   icsk->icsk_retransmits,
@@ -1605,6 +1603,7 @@ struct proto tcpv6_prot = {
 static struct inet6_protocol tcpv6_protocol = {
        .handler        =       tcp_v6_rcv,
        .err_handler    =       tcp_v6_err,
+       .gso_segment    =       tcp_tso_segment,
        .flags          =       INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
 };
 
index 8d3432a70f3a6e25d1a32cb5793e91f8fa380bca..ccc57f434cd3cde752edbf840eb624d8b6edfe7a 100644 (file)
@@ -23,7 +23,6 @@
  *      2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
index ee715f2691e9cd49018c4bb64ec27135a8c85298..73cd250aecbb7afeca2fa667ee9652b52aa9ec16 100644 (file)
@@ -12,7 +12,6 @@
  */
 
 #include <linux/compiler.h>
-#include <linux/config.h>
 #include <linux/netdevice.h>
 #include <net/addrconf.h>
 #include <net/xfrm.h>
index d37768e5064f8c77c9d9b84cb29917accd13d911..6b44fe8516c3cb3438e08dc3dcec78e746374fdb 100644 (file)
@@ -21,7 +21,6 @@
  * Based on net/ipv4/xfrm4_tunnel.c
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/xfrm.h>
 #include <linux/list.h>
index 811d998725bc6728bec208ad90ef81157f8235a0..aa34ff4b707ca9a4151c6ce783761370901eaf4c 100644 (file)
@@ -28,7 +28,6 @@
  *     See net/ipx/ChangeLog.
  */
 
-#include <linux/config.h>
 #include <linux/capability.h>
 #include <linux/errno.h>
 #include <linux/if_arp.h>
index 1f73d9ea434da9938b7750725cad19f561647aa7..4c0c71206e548e642caf07b11f60142b23c03946 100644 (file)
@@ -4,7 +4,6 @@
  *     Copyright(C) Arnaldo Carvalho de Melo <acme@conectiva.com.br>, 2002
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #ifdef CONFIG_PROC_FS
 #include <linux/proc_fs.h>
index bba3431cd9a5b5ad707a32fd534ba1e4d2af8b95..a30dbb1e08fb209dc0e3a2d916fd942c50385f41 100644 (file)
@@ -7,7 +7,6 @@
  *     See net/ipx/ChangeLog.
  */
 
-#include <linux/config.h>
 #include <linux/list.h>
 #include <linux/route.h>
 #include <linux/spinlock.h>
index 510eda96d10aa2d3480519474c6c0eddf0cff1e7..fa574735c76fa11ce74d4e475316183e03fba1db 100644 (file)
@@ -6,7 +6,6 @@
  * Added /proc/sys/net/ipx/ipx_pprop_broadcasting - acme March 4, 2001
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/sysctl.h>
 
index 2f37c9f35e272a5e9026947835584806ff3324cc..7fae48a53bffaddd35205424ed5ec452171b8911 100644 (file)
@@ -42,7 +42,6 @@
  *
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/capability.h>
 #include <linux/module.h>
 #include <linux/types.h>
index 286881978858e53213f8ce2285b54e56e67f9559..9c4a902a9dba79c0bdb315e926484d26b7b21829 100644 (file)
@@ -29,7 +29,6 @@
  *     
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/sched.h>
 #include <linux/proc_fs.h>
index b592c4bc33312a8d7efa7550936ff96182886386..b400f27851fc5885985ae05527716236b04de88c 100644 (file)
@@ -30,7 +30,6 @@
  *     
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/fs.h>
index e3debbdb67f5a0272db139cda75eef326e0db71b..ba40e5495f58d0dd640b7ea3eed4fdcdf9e3b6a4 100644 (file)
@@ -29,7 +29,6 @@
  *
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/proc_fs.h>
 #include <linux/skbuff.h>
index 2d2e2b1919f40f70230c1527edbf8bb0c23d5fa4..a0472652a44e4318a9a5633e2ee9a337e079e0e9 100644 (file)
@@ -24,7 +24,6 @@
  *
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/skbuff.h>
index f8e6cb0db04bc79712e17f406af1bf8e40bcaadc..95cf1234ea17ff2e88a088c3da5766361bbaa7e4 100644 (file)
@@ -173,13 +173,14 @@ void irlan_client_discovery_indication(discinfo_t *discovery,
        rcu_read_lock();
        self = irlan_get_any();
        if (self) {
-               IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;);
+               IRDA_ASSERT(self->magic == IRLAN_MAGIC, goto out;);
 
                IRDA_DEBUG(1, "%s(), Found instance (%08x)!\n", __FUNCTION__ ,
                      daddr);
                
                irlan_client_wakeup(self, saddr, daddr);
        }
+IRDA_ASSERT_LABEL(out:)
        rcu_read_unlock();
 }
        
index 657d12210578eeb8e4a478ba14903fdda85d7992..bd659dd545accb924bc3f828ce24471a9c997d4a 100644 (file)
@@ -23,7 +23,6 @@
  *
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
index 953e255d2bc86d030c0eded616504f982ba0bb4f..b0ccc455b74740a5d5f3d5db27ca9f18da5c50fd 100644 (file)
@@ -25,7 +25,6 @@
  *     
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
 #include <linux/inetdevice.h>
index a16528657b4c6a0a7e584df36e051cdcff6706ec..cade355ac8af51387b385d74052771ad9b6d32e4 100644 (file)
@@ -29,7 +29,6 @@
  *
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/string.h>
 #include <linux/skbuff.h>
index a505b5457608097238f8da41cdd3b6318e243425..99faff68c399aa92422453f79497889113de9094 100644 (file)
@@ -25,7 +25,6 @@
  *
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
index 57ea160f470b8d433fbb2b0c2240520a0806115e..129ad64c15bbcd069f6c61086e510b7b7e50907d 100644 (file)
@@ -24,7 +24,6 @@
  *
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/string.h>
index 26649f6528e6c4388324c84895423d32304b9a23..4c90dd1b450317b22af7acaeb5b61ca3a19cd952 100644 (file)
@@ -24,7 +24,6 @@
  *
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 
 #include <net/irda/irda.h>
index 91cd268172fa0a5a2450480f6c0c98cc54b61e19..39761a1d18f53058e5c45490d44e5dfa3e647855 100644 (file)
@@ -24,7 +24,6 @@
  *
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/skbuff.h>
 #include <linux/kernel.h>
 
index 634901dd156fc7b2154234f423417324032515a0..2869b16e417d273ac9bdbe4b355ee2d35bb2c295 100644 (file)
@@ -31,7 +31,6 @@
  * Jean II
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 
index ad6caba02a7be931439ae73f37f56c4b02a992ed..80887528e77efeb4c9655758371f6b73ccdac376 100644 (file)
 #include <linux/miscdevice.h>
 #include <linux/poll.h>
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/ctype.h>       /* isspace() */
 #include <asm/uaccess.h>
 #include <linux/init.h>
index 1b1c4193359ae9e580c304bbd4800f565a976eb1..86805c3d8324a0d6ae158292e55139d110ec9920 100644 (file)
@@ -23,7 +23,6 @@
  *     
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/ctype.h>
 #include <linux/sysctl.h>
index 8aff254cb41851e7e53e0f96f13bd83d1a6346b2..49c51c5f1a86774c3369d2ae057eb2321fa9dc38 100644 (file)
@@ -24,7 +24,6 @@
  *
  ********************************************************************/
 
-#include <linux/config.h>
 #include <linux/skbuff.h>
 #include <linux/init.h>
 #include <linux/seq_file.h>
index ddfb5c502a90468fcc25651080708fd287bfdee5..95a69c013ee84205f105d052ed74e8840c1e8d84 100644 (file)
@@ -30,7 +30,6 @@
  *     
  ********************************************************************/
 
-#include <linux/config.h>
 #include <asm/byteorder.h>
 
 #include <net/irda/irda.h>
index 0e17f976add69990b8ad346312b9f30133b257bb..3871a2b911f93722e78791203eccb048d7b95a13 100644 (file)
@@ -25,7 +25,6 @@
  ********************************************************************/
 
 #include <asm/system.h>
-#include <linux/config.h>
 #include <linux/delay.h>
 
 #include <net/irda/timer.h>
index d5e2121ea20775001af804c6504377c05c8c5d69..3a95b2ee469063a039dd856393eb7963d0521dd1 100644 (file)
@@ -14,7 +14,6 @@
  *             Derek Atkins <derek@ihtfp.com>
  */
 
-#include <linux/config.h>
 #include <linux/capability.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index 75c9b1480801e2a52cc81ac96fbcfe21cbcc918e..d6cfe84d521ba9fdb9e7321e03d6c9c754f19ed1 100644 (file)
@@ -20,7 +20,6 @@
  *
  * See the GNU General Public License for more details.
  */
-#include <linux/config.h>
 #include <linux/compiler.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
index 5ae47be7dde0def38ae98d29a0805dd8f231373d..a89917130a7bd76e4aa9e64c4b2c8a1b78b6723a 100644 (file)
@@ -11,7 +11,6 @@
  *
  * See the GNU General Public License for more details.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
index bd531cb235a70c6ea22de33b935307ca04aeea24..19308fece3ad945ae58c4e92dcef5fcfa57812f6 100644 (file)
@@ -12,7 +12,6 @@
  * See the GNU General Public License for more details.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/proc_fs.h>
index f37dbf8ef126a1cdc8464d98f1320660f664a9f6..8275bd33bd9d6b3d0ad2cea55a1c579e14b5f9e5 100644 (file)
@@ -11,7 +11,6 @@
  *
  * See the GNU General Public License for more details.
  */
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <net/llc.h>
index d1eaddb1363377a5690705e5783696d07f378d51..45d7dd92a08804e2978a739b2db6f9d3296eb437 100644 (file)
@@ -4,7 +4,6 @@
  * Arnaldo Carvalho de Melo <acme@conectiva.com.br>
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/init.h>
 #include <linux/sysctl.h>
index b1622b7de1cfb0a6f3b4c0cf496622321b668cd6..42a178aa30f9fde82b434b48ece146e8b1e27b98 100644 (file)
@@ -411,7 +411,10 @@ config NETFILTER_XT_MATCH_STATISTIC
        tristate '"statistic" match support'
        depends on NETFILTER_XTABLES
        help
-         statistic module
+         This option adds a `statistic' match, which allows you to match
+         on packets periodically or randomly with a given percentage.
+
+         To compile it as a module, choose M here.  If unsure, say N.
 
 config NETFILTER_XT_MATCH_STRING
        tristate  '"string" match support'
index 8455a32ea5c4df61e7cc8c78125f988e15b65cf3..5d29d5e23624d9ec9ffca2c35cb7707cdc236bac 100644 (file)
@@ -10,7 +10,6 @@
  * 15-Mar-2000:   Added NF_REPEAT --RR.
  * 08-May-2003:          Internal logging interface added by Jozsef Kadlecsik.
  */
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/netfilter.h>
 #include <net/protocol.h>
index cd299f4b7db1989c5e5d1897698d987c370db48a..8f2261965a68bb4e1bc039b8df37c890314f21fc 100644 (file)
@@ -29,7 +29,6 @@
  * Derived from net/ipv4/netfilter/ip_conntrack_core.c
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/netfilter.h>
 #include <linux/module.h>
index 11d3be2435364ca09063026e09becee25c7b1939..960972d225f972a69f163506d2397401b35524a7 100644 (file)
@@ -15,7 +15,6 @@
  * Derived from net/ipv4/netfilter/ip_conntrack_ftp.c
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/netfilter.h>
index 3fc58e454d4e2b94bf1ac2da40762095d212680e..21e0bc91cf23da78002e9ea335fc1cfeb0ffb5dc 100644 (file)
@@ -15,7 +15,6 @@
  *     Yasuyuki Kozakai @USAGI <yasuyuki.kozakai@toshiba.co.jp>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/ip.h>
 #include <linux/netfilter.h>
index b8c7c567c9df5a0c3a27e6cbf01680854a7b8914..af4845971f70606d568e731093118b74c0fbf104 100644 (file)
@@ -29,6 +29,7 @@
 #include <linux/errno.h>
 #include <linux/netlink.h>
 #include <linux/spinlock.h>
+#include <linux/interrupt.h>
 #include <linux/notifier.h>
 
 #include <linux/netfilter.h>
index 0c6da496cfa9fc5311115b81b26b1b8176fcaa9d..9bd8a7877fd54648e86ab904778d4e32159627cb 100644 (file)
@@ -28,6 +28,8 @@
 #include <linux/sctp.h>
 #include <linux/string.h>
 #include <linux/seq_file.h>
+#include <linux/spinlock.h>
+#include <linux/interrupt.h>
 
 #include <net/netfilter/nf_conntrack.h>
 #include <net/netfilter/nf_conntrack_protocol.h>
@@ -259,7 +261,7 @@ static int do_basic_checks(struct nf_conn *conntrack,
        }
 
        DEBUGP("Basic checks passed\n");
-       return 0;
+       return count == 0;
 }
 
 static int new_state(enum ip_conntrack_dir dir,
index 12fb7c0a15098e9050e1779f41f2acd1939a086d..af8adcba23a7235da6a57206d36e53ef451fb67a 100644 (file)
@@ -24,7 +24,6 @@
  * version 2.2
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/sched.h>
 #include <linux/timer.h>
index e34c574f035133b509a402d4880a2b1f5bf035a8..5fcab2ef231f56d62d5f39deb8ec7b1bc0117e05 100644 (file)
@@ -17,7 +17,6 @@
  * Derived from net/ipv4/netfilter/ip_conntrack_standalone.c
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/netfilter.h>
 #include <linux/module.h>
index 6bdee2910617dac3176aef65361c9eae5399b7b5..86e392bfe8330e68484f6cab83cfc9749091cb97 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef _NF_INTERNALS_H
 #define _NF_INTERNALS_H
 
-#include <linux/config.h>
 #include <linux/list.h>
 #include <linux/skbuff.h>
 #include <linux/netdevice.h>
index 3e76bd0824a25b7c31e60ea4a5d59e27745f12fc..8901b3a07f7e26a41d23bb6389c6c6d7731e61ca 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/module.h>
index ee8f70889f47d752b422b4eb01798c9e99266c7a..bb6fcee452ca37f8a683d89a4c63775ea250b004 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/module.h>
index 0a63d7dac7bea3015895b5fdd960e59926fd634c..c2e44e90e4374f0be18650a5e109fddb946d78a8 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/module.h>
index b88e82a1a987461dfae03f7686bdd348cc3c6d26..52fdfa2686c9f2c76aa54e75083f1deabc3ac949 100644 (file)
@@ -14,7 +14,6 @@
  * of the GNU General Public License, incorporated herein by reference.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/socket.h>
@@ -229,7 +228,7 @@ static int nfnetlink_rcv_msg(struct sk_buff *skb,
                 NFNL_SUBSYS_ID(nlh->nlmsg_type),
                 NFNL_MSG_TYPE(nlh->nlmsg_type));
 
-       if (!cap_raised(NETLINK_CB(skb).eff_cap, CAP_NET_ADMIN)) {
+       if (security_netlink_recv(skb, CAP_NET_ADMIN)) {
                DEBUGP("missing CAP_NET_ADMIN\n");
                *errp = -EPERM;
                return -1;
index 86a4ac33de3495791e5e465a5352afe79690c3cf..49ef41e34c48309eb3d7dc6553056a822e6fb112 100644 (file)
@@ -680,11 +680,19 @@ dev_cmp(struct nfqnl_queue_entry *entry, unsigned long ifindex)
        if (entinf->indev)
                if (entinf->indev->ifindex == ifindex)
                        return 1;
-                       
        if (entinf->outdev)
                if (entinf->outdev->ifindex == ifindex)
                        return 1;
-
+#ifdef CONFIG_BRIDGE_NETFILTER
+       if (entry->skb->nf_bridge) {
+               if (entry->skb->nf_bridge->physindev &&
+                   entry->skb->nf_bridge->physindev->ifindex == ifindex)
+                       return 1;
+               if (entry->skb->nf_bridge->physoutdev &&
+                   entry->skb->nf_bridge->physoutdev->ifindex == ifindex)
+                       return 1;
+       }
+#endif
        return 0;
 }
 
index 99293c63ff7348c71c38c9eaf3a3406876a0a3f3..174e8f97009510aad1471c6fd28c7a44b38646d7 100644 (file)
@@ -13,7 +13,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/socket.h>
 #include <linux/net.h>
index a3aa62fbda6f1311b05d56ea16bd92050df49427..ba1ca03abad326b4d37bf5dceb8338792294b17e 100644 (file)
@@ -8,7 +8,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/skbuff.h>
 #include <linux/init.h>
index 9316c753692fef1bbbd81f71a381000d6edbb024..843383e01d4155179c66928fafd08e5e64f2f8ac 100644 (file)
@@ -151,7 +151,7 @@ match(const struct sk_buff *skb,
                && SCCHECK(((ntohs(sh->dest) >= info->dpts[0]) 
                        && (ntohs(sh->dest) <= info->dpts[1])), 
                        XT_SCTP_DEST_PORTS, info->flags, info->invflags)
-               && SCCHECK(match_packet(skb, protoff,
+               && SCCHECK(match_packet(skb, protoff + sizeof (sctp_sctphdr_t),
                                        info->chunkmap, info->chunk_match_type,
                                        info->flag_info, info->flag_count, 
                                        hotdrop),
index 1b61dac9c873f2d82ec29812f96f6d134b8bfc67..a9a63aa6893692a774b52c1cae9441262c2c1602 100644 (file)
@@ -260,7 +260,7 @@ static int __init xt_tcpudp_init(void)
        return ret;
 
 out_unreg_udp:
-       xt_unregister_match(&tcp_matchstruct);
+       xt_unregister_match(&udp_matchstruct);
 out_unreg_tcp6:
        xt_unregister_match(&tcp6_matchstruct);
 out_unreg_tcp:
index 3862e73d14d731b1c3674d811412fe1b29eab6dc..70cee82a98bf1b362b38c5266f8e35e74544d386 100644 (file)
@@ -21,7 +21,6 @@
  *                                mandatory if CONFIG_NET=y these days
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/capability.h>
index fffef4ab276f08a27e6890bda232d83cb5e6ac68..dddbd15135a8712421c4148f32801861d0b7f7c4 100644 (file)
@@ -5,7 +5,6 @@
  *                             Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
index f329b72578f568440d8e0ef331210eb6408a9bb8..a298f77cc3e38dc2d4d7997d1ae977622ec6c746 100644 (file)
@@ -5,7 +5,6 @@
  *                             Thomas Graf <tgraf@suug.ch>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
@@ -320,7 +319,7 @@ static int genl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh,
                goto errout;
        }
 
-       if ((ops->flags & GENL_ADMIN_PERM) && security_netlink_recv(skb)) {
+       if ((ops->flags & GENL_ADMIN_PERM) && security_netlink_recv(skb, CAP_NET_ADMIN)) {
                err = -EPERM;
                goto errout;
        }
index 3669cb953e6e7d49c05eb82c39ba1d43e80f9e3d..eba6df054b1ff08766e6b7fc820e27ef040f7d37 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright Alan Cox GW4PTS (alan@lxorguk.ukuu.org.uk)
  * Copyright Darryl Miles G7LED (dlm@g7led.demon.co.uk)
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/capability.h>
index 621e5586ab030c93d2f30aea69b39c4d8624b70c..9b8eb54971ab2ca97d2920c0c913d0271d4b945d 100644 (file)
@@ -6,7 +6,6 @@
  *
  * Copyright Jonathan Naylor G4KLX (g4klx@g4klx.demon.co.uk)
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/proc_fs.h>
 #include <linux/kernel.h>
index 9db7dbdb16e6bd14c7ca23dc6c8dfe11e16f4566..f9cef3671593efaf7a513efacc3097fc27743507 100644 (file)
@@ -49,7 +49,6 @@
  *
  */
  
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index 55564efccf1153fc051df3e8b9b26a7d515fa32c..7799fe82aeb6fe8bed8a782b8636de851dc855c8 100644 (file)
@@ -10,7 +10,6 @@
  * Copyright (C) Tomi Manninen OH2BNS (oh2bns@sral.fi)
  */
 
-#include <linux/config.h>
 #include <linux/capability.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
index 2a1bf8e119e52c4c45904bd8a47bd4d132195081..9d0bf2a1ea3f37e9d362d4ff6546f2d4c215a2cf 100644 (file)
@@ -6,7 +6,6 @@
  *
  * Copyright (C) Jonathan Naylor G4KLX (g4klx@g4klx.demon.co.uk)
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/proc_fs.h>
 #include <linux/kernel.h>
index 56adf16fed0c1ccf160a429372fa2ad62423d0fb..9896fd87a4d4916adc25105eb48eec5792e2cb38 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <rxrpc/transport.h>
index fbf98729c748b3acfc8276ef672ba8e03b7b3209..6374df7e77d1bfeb3558efd37e769e8e1b60f834 100644 (file)
@@ -9,7 +9,6 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
 #include <linux/module.h>
index 13eeee582886d530947c0dd10cc7be8099b6d245..8298ea9ffe19289f3f8b335e407aecad19f629cf 100644 (file)
@@ -305,7 +305,7 @@ config NET_CLS_U32
        tristate "Universal 32bit comparisons w/ hashing (U32)"
        select NET_CLS
        ---help---
-         Say Y here to be able to classify packetes using a universal
+         Say Y here to be able to classify packets using a universal
          32bit pieces based comparison scheme.
 
          To compile this code as a module, choose M here: the
@@ -485,7 +485,7 @@ config NET_ACT_IPT
         tristate "IPtables targets"
         depends on NET_CLS_ACT && NETFILTER && IP_NF_IPTABLES
         ---help---
-         Say Y here to be able to invoke iptables targets after succesful
+         Say Y here to be able to invoke iptables targets after successful
          classification.
 
          To compile this code as a module, choose M here: the
@@ -537,8 +537,8 @@ config NET_ESTIMATOR
        ---help---
          Say Y here to allow using rate estimators to estimate the current
          rate-of-flow for network devices, queues, etc. This module is
-         automaticaly selected if needed but can be selected manually for
-         statstical purposes.
+         automatically selected if needed but can be selected manually for
+         statistical purposes.
 
 endif # NET_SCHED
 
index 2ffa11c6e8ded50080855fe7250642ebacc8cf2f..5b9397b33238fae1317aa21ee62485790dbcfea0 100644 (file)
@@ -14,7 +14,6 @@
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <linux/bitops.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index a1e68f78dcc291359e297786b564d8b062fc2ffd..e75a147ad60fcb66f71729d6d25d15b04f18c80d 100644 (file)
@@ -13,7 +13,6 @@
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <linux/bitops.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 37640c6fc014c4c8a53a01609cbc78a51cbc7de6..d799e01248c4e64f34287db96675a351a8cdb8db 100644 (file)
@@ -14,7 +14,6 @@
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <asm/bitops.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 4fcccbd5088590054847c338cd8e2c23d0b8d90e..fc562047ecc50f7e2061ef8551599007dd706674 100644 (file)
@@ -15,7 +15,6 @@
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <asm/bitops.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 1742a68e0122a134a9e4430c5e96a762a3f3061a..58b3a8652042fa2d90c5061616b93ff83b888392 100644 (file)
@@ -12,7 +12,6 @@
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <asm/bitops.h>
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 24c348fa89222b3c8d11d5b4db2938d82f3d7ad6..47e00bd9625ef1864706e5d835481a61ed7aeead 100644 (file)
@@ -13,7 +13,6 @@
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <linux/bitops.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index e5f2e1f431e2a36d92ed5c8c4263b8fcefbd44fd..17105c82537fa2472c3bd4e33b7a0c4bdbd345fa 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index b4d89fbb378212966b93d9cbc25596ce8add064c..7e14f14058e991393ca1a75aacc669a516e1906c 100644 (file)
@@ -17,7 +17,6 @@
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <linux/bitops.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index dfb300bb6baa067963a5e0e1e160087ae69d291d..61507f006b114e350fb5dee3febb3961ea965b9e 100644 (file)
@@ -9,7 +9,6 @@
  * Authors:    Thomas Graf <tgraf@suug.ch>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 75470486e4050edb23e4db439a3228adfbfc170e..d41de91fc4f6fc559bdc5f658dfd2c886131f651 100644 (file)
@@ -18,7 +18,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
index 520ff716dab2f0d744845747366f320dd83f9434..c2e71900f7bdd2f64ed400860623004342e12fd5 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <linux/bitops.h>
index 572f06be3b02a181447c1e125056a833687ef017..ba87419716290204d4f1708ac978f74183c09804 100644 (file)
@@ -65,7 +65,6 @@
    Well, as result, despite its simplicity, we get a pretty
    powerful classification engine.  */
 
-#include <linux/config.h>
 
 struct rsvp_head
 {
index 9f921174c8ab39d33e9544c9b78051b3b8a12cdf..7870e7bb0bacc033752366da5ccd31fdd9bfe890 100644 (file)
@@ -4,7 +4,6 @@
  * Written 1998,1999 by Werner Almesberger, EPFL ICA
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 78e052591fa99c299da13011277249548d1885a8..d712edcd1bcfc36d591342c2f53dec718ee1dc84 100644 (file)
@@ -33,7 +33,6 @@
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <linux/bitops.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index bf1f00f8b1bf76223e89e1aa58258430b0ddd90d..8ed93c39b4eaa5dcd76e2ebdeee3690dad3bb5eb 100644 (file)
@@ -9,7 +9,6 @@
  * Authors:    Thomas Graf <tgraf@suug.ch>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 700844d49d795d36acffd22815b5fb4f15ec3ce9..698372954f4db614e50b774467ce78788fa7d58b 100644 (file)
@@ -58,7 +58,6 @@
  *           only available if that subsytem is enabled in the kernel.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 71ea926a9f092fcce116144a94ea24d6eef76244..cc80babfd79ff6870cd4b982f446721b67da777f 100644 (file)
@@ -9,7 +9,6 @@
  * Authors:    Thomas Graf <tgraf@suug.ch>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 77beabc91fa37107d662bd837a448a3d23cb944f..aa17d8f7c4c873aca24d6ae54ec5247dd8fefd8d 100644 (file)
@@ -9,7 +9,6 @@
  * Authors:    Thomas Graf <tgraf@suug.ch>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 34e7e51e601e0f3e4baec3e5e1dba4ec1a0e8841..e3ddfce0ac8d9b28e7eee8d49c1f35920932363f 100644 (file)
@@ -12,7 +12,6 @@
  * Based on net/sched/cls_u32.c
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 5cb956b721e8e05a452262decdc114061cb0a0a0..2405a86093a2eeed7d7ebbed7ce92b5d4527a062 100644 (file)
@@ -81,7 +81,6 @@
  *      open up a beer to watch the compilation going.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 31570b9a6e9aa72cca60d1953c14e47938547ebe..c7844bacbbcbb3770804ff1d2e0afb7a18ce3ead 100644 (file)
@@ -15,7 +15,6 @@
  * Jamal Hadi Salim <hadi@nortelnetworks.com>: 990601: ingress support
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index ac7cb60d1e251da2591c42bae124011e02d2d98a..dbf44da0912fa1007dc1842503c6c4438d10f665 100644 (file)
@@ -3,7 +3,6 @@
 /* Written 1998-2000 by Werner Almesberger, EPFL ICA */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/string.h>
index 81f0b8346d17ee3bb790b3dee89012076c35780c..cb0c456aa34929478c36c4bc64fb4f2df1cad6f8 100644 (file)
@@ -11,7 +11,6 @@
  * Note: Quantum tunneling is not supported.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 6cd81708bf710e0c307807bcbffc35176be452a2..80b7f6a8d008e85f6c220ec0b3bc2624bef18d79 100644 (file)
@@ -10,7 +10,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
index f6320ca70493943a64cb449b07e71a52f72095f4..11c8a2119b96aaf353a0d44c883826f30f8f9e2a 100644 (file)
@@ -3,7 +3,6 @@
 /* Written 1998-2000 by Werner Almesberger, EPFL ICA */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/types.h>
index 033083bf0e741e6863a5cb999f58dbda6d3729a1..c2689f4ba8de9a3fdd364c6a4e3537852f1261a2 100644 (file)
@@ -9,7 +9,6 @@
  * Authors:    Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 74d4a1dceeeca0ab8d11bbcee83631d553c49383..d735f51686a19da66a22b0bf583e7cc81ec11c2f 100644 (file)
@@ -14,7 +14,6 @@
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <linux/bitops.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index 29a2dd9f30296f613123118976c963f557e899d6..0cafdd5feb1bba315746c221ccb842485cd0ab84 100644 (file)
@@ -18,7 +18,6 @@
  *  For all the glorious comments look at include/net/red.h
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index f1c7bd29f2cdc3932941c86e529426923484dee1..6b1b4a981e883bca03a22e457d478a27298626c3 100644 (file)
@@ -50,7 +50,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/errno.h>
index 3ec95df4a85ed50c2548b69c591c33333e3edd63..34afe41fa2f3b6dd3d620214ded409d6fde9781a 100644 (file)
@@ -27,7 +27,6 @@
  *
  * $Id: sch_htb.c,v 1.25 2003/12/07 11:08:25 devik Exp devik $
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
index 8edc32a6ad2feadf6b310cdc80e44b857fb3613b..c3242f727d414667a26b89b4ff68d0895645a524 100644 (file)
@@ -7,7 +7,6 @@
  * Authors:     Jamal Hadi Salim 1999
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/skbuff.h>
index 5a4a4d0ae50226615a3c6661b544e5c333162521..c5bd8064e6d81e68ff1a1b41ffca80ede3778fa1 100644 (file)
@@ -13,7 +13,6 @@
  *             Catalin(ux aka Dino) BOIE <catab at umbrella dot ro>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/bitops.h>
 #include <linux/types.h>
index 3395ca7bcadfa76e3200e45cddf7944081965031..a5fa03c0c19b6c8167f2e68a4e4d3b052c0b0bcc 100644 (file)
@@ -11,7 +11,6 @@
  *              Init --  EINVAL when opt undefined
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
index 2be563cba72bce95879fabd9245a4790dae1bf1a..d65cadddea691020c0ce71e1ae08bf7af8975c78 100644 (file)
@@ -14,7 +14,6 @@
  * J Hadi Salim 980816:  ECN support
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index e057768f68b4806a1155e367fbf77ba5e00d2fc4..d0d6e595a78c8f824480b3f656815c2c0942839d 100644 (file)
@@ -9,7 +9,6 @@
  * Authors:    Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
index d8e03c74ca76f0c0a68159a49d865efe99ec7c74..d9a5d298d755539443fa2a618ff70ba4863126da 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
index b811691c35bf4eba764efa3eba3b0daeac6eca64..0a2c71d0d8aad858eb3408591c1af594d1d51587 100644 (file)
@@ -57,7 +57,6 @@
  * be incorporated into the next SCTP release.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/wait.h>
index 565f5e8d11913c797500a517c03835eee6e15ff9..b4848ce0d6ac44718a5e970996031343fb85ee8f 100644 (file)
@@ -58,7 +58,6 @@
  *     Based upon Swansea University Computer Society NET3.039
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/smp_lock.h>
 #include <linux/socket.h>
index f8bac6ccd524008a669c4e603d8526b9dabb006b..d88468d21c3783ebecc6bf0f25fbf835854fcf42 100644 (file)
@@ -224,7 +224,8 @@ EXPORT_SYMBOL(gss_service_to_auth_domain_name);
 void
 gss_mech_put(struct gss_api_mech * gm)
 {
-       module_put(gm->gm_owner);
+       if (gm)
+               module_put(gm->gm_owner);
 }
 
 EXPORT_SYMBOL(gss_mech_put);
@@ -307,8 +308,7 @@ gss_delete_sec_context(struct gss_ctx       **context_handle)
                (*context_handle)->mech_type->gm_ops
                        ->gss_delete_sec_context((*context_handle)
                                                        ->internal_ctx_id);
-       if ((*context_handle)->mech_type)
-               gss_mech_put((*context_handle)->mech_type);
+       gss_mech_put((*context_handle)->mech_type);
        kfree(*context_handle);
        *context_handle=NULL;
        return GSS_S_COMPLETE;
index d51e316c5821022690a88d93eadcf28b9ea31597..94217ec9e2dd5427a1b12cc559a46e114172e192 100644 (file)
@@ -425,6 +425,7 @@ static int rsc_parse(struct cache_detail *cd,
        struct rsc rsci, *rscp = NULL;
        time_t expiry;
        int status = -EINVAL;
+       struct gss_api_mech *gm = NULL;
 
        memset(&rsci, 0, sizeof(rsci));
        /* context handle */
@@ -453,7 +454,6 @@ static int rsc_parse(struct cache_detail *cd,
                set_bit(CACHE_NEGATIVE, &rsci.h.flags);
        else {
                int N, i;
-               struct gss_api_mech *gm;
 
                /* gid */
                if (get_int(&mesg, &rsci.cred.cr_gid))
@@ -488,21 +488,17 @@ static int rsc_parse(struct cache_detail *cd,
                status = -EINVAL;
                /* mech-specific data: */
                len = qword_get(&mesg, buf, mlen);
-               if (len < 0) {
-                       gss_mech_put(gm);
+               if (len < 0)
                        goto out;
-               }
                status = gss_import_sec_context(buf, len, gm, &rsci.mechctx);
-               if (status) {
-                       gss_mech_put(gm);
+               if (status)
                        goto out;
-               }
-               gss_mech_put(gm);
        }
        rsci.h.expiry_time = expiry;
        rscp = rsc_update(&rsci, rscp);
        status = 0;
 out:
+       gss_mech_put(gm);
        rsc_free(&rsci);
        if (rscp)
                cache_put(&rscp->h, &rsc_cache);
@@ -836,6 +832,74 @@ out:
        return stat;
 }
 
+static inline int
+total_buf_len(struct xdr_buf *buf)
+{
+       return buf->head[0].iov_len + buf->page_len + buf->tail[0].iov_len;
+}
+
+static void
+fix_priv_head(struct xdr_buf *buf, int pad)
+{
+       if (buf->page_len == 0) {
+               /* We need to adjust head and buf->len in tandem in this
+                * case to make svc_defer() work--it finds the original
+                * buffer start using buf->len - buf->head[0].iov_len. */
+               buf->head[0].iov_len -= pad;
+       }
+}
+
+static int
+unwrap_priv_data(struct svc_rqst *rqstp, struct xdr_buf *buf, u32 seq, struct gss_ctx *ctx)
+{
+       u32 priv_len, maj_stat;
+       int pad, saved_len, remaining_len, offset;
+
+       rqstp->rq_sendfile_ok = 0;
+
+       priv_len = ntohl(svc_getu32(&buf->head[0]));
+       if (rqstp->rq_deferred) {
+               /* Already decrypted last time through! The sequence number
+                * check at out_seq is unnecessary but harmless: */
+               goto out_seq;
+       }
+       /* buf->len is the number of bytes from the original start of the
+        * request to the end, where head[0].iov_len is just the bytes
+        * not yet read from the head, so these two values are different: */
+       remaining_len = total_buf_len(buf);
+       if (priv_len > remaining_len)
+               return -EINVAL;
+       pad = remaining_len - priv_len;
+       buf->len -= pad;
+       fix_priv_head(buf, pad);
+
+       /* Maybe it would be better to give gss_unwrap a length parameter: */
+       saved_len = buf->len;
+       buf->len = priv_len;
+       maj_stat = gss_unwrap(ctx, 0, buf);
+       pad = priv_len - buf->len;
+       buf->len = saved_len;
+       buf->len -= pad;
+       /* The upper layers assume the buffer is aligned on 4-byte boundaries.
+        * In the krb5p case, at least, the data ends up offset, so we need to
+        * move it around. */
+       /* XXX: This is very inefficient.  It would be better to either do
+        * this while we encrypt, or maybe in the receive code, if we can peak
+        * ahead and work out the service and mechanism there. */
+       offset = buf->head[0].iov_len % 4;
+       if (offset) {
+               buf->buflen = RPCSVC_MAXPAYLOAD;
+               xdr_shift_buf(buf, offset);
+               fix_priv_head(buf, pad);
+       }
+       if (maj_stat != GSS_S_COMPLETE)
+               return -EINVAL;
+out_seq:
+       if (ntohl(svc_getu32(&buf->head[0])) != seq)
+               return -EINVAL;
+       return 0;
+}
+
 struct gss_svc_data {
        /* decoded gss client cred: */
        struct rpc_gss_wire_cred        clcred;
@@ -1051,7 +1115,14 @@ svcauth_gss_accept(struct svc_rqst *rqstp, u32 *authp)
                        svc_putu32(resv, 0);
                        break;
                case RPC_GSS_SVC_PRIVACY:
-                       /* currently unsupported */
+                       if (unwrap_priv_data(rqstp, &rqstp->rq_arg,
+                                       gc->gc_seq, rsci->mechctx))
+                               goto auth_err;
+                       /* placeholders for length and seq. number: */
+                       svcdata->body_start = resv->iov_base + resv->iov_len;
+                       svc_putu32(resv, 0);
+                       svc_putu32(resv, 0);
+                       break;
                default:
                        goto auth_err;
                }
@@ -1076,8 +1147,8 @@ out:
        return ret;
 }
 
-static int
-svcauth_gss_release(struct svc_rqst *rqstp)
+static inline int
+svcauth_gss_wrap_resp_integ(struct svc_rqst *rqstp)
 {
        struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data;
        struct rpc_gss_wire_cred *gc = &gsd->clcred;
@@ -1089,69 +1160,147 @@ svcauth_gss_release(struct svc_rqst *rqstp)
        int integ_offset, integ_len;
        int stat = -EINVAL;
 
+       p = gsd->body_start;
+       gsd->body_start = NULL;
+       /* move accept_stat to right place: */
+       memcpy(p, p + 2, 4);
+       /* Don't wrap in failure case: */
+       /* Counting on not getting here if call was not even accepted! */
+       if (*p != rpc_success) {
+               resbuf->head[0].iov_len -= 2 * 4;
+               goto out;
+       }
+       p++;
+       integ_offset = (u8 *)(p + 1) - (u8 *)resbuf->head[0].iov_base;
+       integ_len = resbuf->len - integ_offset;
+       BUG_ON(integ_len % 4);
+       *p++ = htonl(integ_len);
+       *p++ = htonl(gc->gc_seq);
+       if (xdr_buf_subsegment(resbuf, &integ_buf, integ_offset,
+                               integ_len))
+               BUG();
+       if (resbuf->page_len == 0
+                       && resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE
+                       < PAGE_SIZE) {
+               BUG_ON(resbuf->tail[0].iov_len);
+               /* Use head for everything */
+               resv = &resbuf->head[0];
+       } else if (resbuf->tail[0].iov_base == NULL) {
+               if (resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE > PAGE_SIZE)
+                       goto out_err;
+               resbuf->tail[0].iov_base = resbuf->head[0].iov_base
+                                               + resbuf->head[0].iov_len;
+               resbuf->tail[0].iov_len = 0;
+               rqstp->rq_restailpage = 0;
+               resv = &resbuf->tail[0];
+       } else {
+               resv = &resbuf->tail[0];
+       }
+       mic.data = (u8 *)resv->iov_base + resv->iov_len + 4;
+       if (gss_get_mic(gsd->rsci->mechctx, &integ_buf, &mic))
+               goto out_err;
+       svc_putu32(resv, htonl(mic.len));
+       memset(mic.data + mic.len, 0,
+                       round_up_to_quad(mic.len) - mic.len);
+       resv->iov_len += XDR_QUADLEN(mic.len) << 2;
+       /* not strictly required: */
+       resbuf->len += XDR_QUADLEN(mic.len) << 2;
+       BUG_ON(resv->iov_len > PAGE_SIZE);
+out:
+       stat = 0;
+out_err:
+       return stat;
+}
+
+static inline int
+svcauth_gss_wrap_resp_priv(struct svc_rqst *rqstp)
+{
+       struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data;
+       struct rpc_gss_wire_cred *gc = &gsd->clcred;
+       struct xdr_buf *resbuf = &rqstp->rq_res;
+       struct page **inpages = NULL;
+       u32 *p;
+       int offset, *len;
+       int pad;
+
+       p = gsd->body_start;
+       gsd->body_start = NULL;
+       /* move accept_stat to right place: */
+       memcpy(p, p + 2, 4);
+       /* Don't wrap in failure case: */
+       /* Counting on not getting here if call was not even accepted! */
+       if (*p != rpc_success) {
+               resbuf->head[0].iov_len -= 2 * 4;
+               return 0;
+       }
+       p++;
+       len = p++;
+       offset = (u8 *)p - (u8 *)resbuf->head[0].iov_base;
+       *p++ = htonl(gc->gc_seq);
+       inpages = resbuf->pages;
+       /* XXX: Would be better to write some xdr helper functions for
+        * nfs{2,3,4}xdr.c that place the data right, instead of copying: */
+       if (resbuf->tail[0].iov_base && rqstp->rq_restailpage == 0) {
+               BUG_ON(resbuf->tail[0].iov_base >= resbuf->head[0].iov_base
+                                                       + PAGE_SIZE);
+               BUG_ON(resbuf->tail[0].iov_base < resbuf->head[0].iov_base);
+               if (resbuf->tail[0].iov_len + resbuf->head[0].iov_len
+                               + 2 * RPC_MAX_AUTH_SIZE > PAGE_SIZE)
+                       return -ENOMEM;
+               memmove(resbuf->tail[0].iov_base + RPC_MAX_AUTH_SIZE,
+                       resbuf->tail[0].iov_base,
+                       resbuf->tail[0].iov_len);
+               resbuf->tail[0].iov_base += RPC_MAX_AUTH_SIZE;
+       }
+       if (resbuf->tail[0].iov_base == NULL) {
+               if (resbuf->head[0].iov_len + 2*RPC_MAX_AUTH_SIZE > PAGE_SIZE)
+                       return -ENOMEM;
+               resbuf->tail[0].iov_base = resbuf->head[0].iov_base
+                       + resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE;
+               resbuf->tail[0].iov_len = 0;
+               rqstp->rq_restailpage = 0;
+       }
+       if (gss_wrap(gsd->rsci->mechctx, offset, resbuf, inpages))
+               return -ENOMEM;
+       *len = htonl(resbuf->len - offset);
+       pad = 3 - ((resbuf->len - offset - 1)&3);
+       p = (u32 *)(resbuf->tail[0].iov_base + resbuf->tail[0].iov_len);
+       memset(p, 0, pad);
+       resbuf->tail[0].iov_len += pad;
+       resbuf->len += pad;
+       return 0;
+}
+
+static int
+svcauth_gss_release(struct svc_rqst *rqstp)
+{
+       struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data;
+       struct rpc_gss_wire_cred *gc = &gsd->clcred;
+       struct xdr_buf *resbuf = &rqstp->rq_res;
+       int stat = -EINVAL;
+
        if (gc->gc_proc != RPC_GSS_PROC_DATA)
                goto out;
        /* Release can be called twice, but we only wrap once. */
        if (gsd->body_start == NULL)
                goto out;
        /* normally not set till svc_send, but we need it here: */
-       resbuf->len = resbuf->head[0].iov_len
-               + resbuf->page_len + resbuf->tail[0].iov_len;
+       /* XXX: what for?  Do we mess it up the moment we call svc_putu32
+        * or whatever? */
+       resbuf->len = total_buf_len(resbuf);
        switch (gc->gc_svc) {
        case RPC_GSS_SVC_NONE:
                break;
        case RPC_GSS_SVC_INTEGRITY:
-               p = gsd->body_start;
-               gsd->body_start = NULL;
-               /* move accept_stat to right place: */
-               memcpy(p, p + 2, 4);
-               /* don't wrap in failure case: */
-               /* Note: counting on not getting here if call was not even
-                * accepted! */
-               if (*p != rpc_success) {
-                       resbuf->head[0].iov_len -= 2 * 4;
-                       goto out;
-               }
-               p++;
-               integ_offset = (u8 *)(p + 1) - (u8 *)resbuf->head[0].iov_base;
-               integ_len = resbuf->len - integ_offset;
-               BUG_ON(integ_len % 4);
-               *p++ = htonl(integ_len);
-               *p++ = htonl(gc->gc_seq);
-               if (xdr_buf_subsegment(resbuf, &integ_buf, integ_offset,
-                                       integ_len))
-                       BUG();
-               if (resbuf->page_len == 0
-                       && resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE
-                               < PAGE_SIZE) {
-                       BUG_ON(resbuf->tail[0].iov_len);
-                       /* Use head for everything */
-                       resv = &resbuf->head[0];
-               } else if (resbuf->tail[0].iov_base == NULL) {
-                       if (resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE
-                                       > PAGE_SIZE)
-                               goto out_err;
-                       resbuf->tail[0].iov_base =
-                               resbuf->head[0].iov_base
-                               + resbuf->head[0].iov_len;
-                       resbuf->tail[0].iov_len = 0;
-                       rqstp->rq_restailpage = 0;
-                       resv = &resbuf->tail[0];
-               } else {
-                       resv = &resbuf->tail[0];
-               }
-               mic.data = (u8 *)resv->iov_base + resv->iov_len + 4;
-               if (gss_get_mic(gsd->rsci->mechctx, &integ_buf, &mic))
+               stat = svcauth_gss_wrap_resp_integ(rqstp);
+               if (stat)
                        goto out_err;
-               svc_putu32(resv, htonl(mic.len));
-               memset(mic.data + mic.len, 0,
-                               round_up_to_quad(mic.len) - mic.len);
-               resv->iov_len += XDR_QUADLEN(mic.len) << 2;
-               /* not strictly required: */
-               resbuf->len += XDR_QUADLEN(mic.len) << 2;
-               BUG_ON(resv->iov_len > PAGE_SIZE);
                break;
        case RPC_GSS_SVC_PRIVACY:
+               stat = svcauth_gss_wrap_resp_priv(rqstp);
+               if (stat)
+                       goto out_err;
+               break;
        default:
                goto out_err;
        }
index d25b054ec921cd1e11d0497bf152fcaf7d105b96..623180f224c97990a0389299014520fc5f5412ca 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/socket.h>
 #include <linux/kernel.h>
index dafe793c774e8aa16d8b380e3306dc6d325470cd..6db6006616c67bb63aaf96c848a7e692815f5fcc 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (c) 2002, Trond Myklebust <trond.myklebust@fys.uio.no>
  *
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/string.h>
index 769114f0f886972ec99ef3a4bf904497cd0cf27a..f38f939ce95fffd12aaabb4aeed3580cf2be7c9a 100644 (file)
@@ -6,7 +6,6 @@
  * Copyright (C) 1997 Olaf Kirch <okir@monad.swb.de>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include <linux/types.h>
index b08419e1fc68456c545575a2a8505923729161ed..01ba60a4957260601322fd261e5bafc81dfc200c 100644 (file)
@@ -280,7 +280,10 @@ svc_process(struct svc_serv *serv, struct svc_rqst *rqstp)
        rqstp->rq_res.page_base = 0;
        rqstp->rq_res.page_len = 0;
        rqstp->rq_res.buflen = PAGE_SIZE;
+       rqstp->rq_res.tail[0].iov_base = NULL;
        rqstp->rq_res.tail[0].iov_len = 0;
+       /* Will be turned off only in gss privacy case: */
+       rqstp->rq_sendfile_ok = 1;
        /* tcp needs a space for the record length... */
        if (rqstp->rq_prot == IPPROTO_TCP)
                svc_putu32(resv, 0);
index 1065904841fd5796b9482a994f3caa3bcc9eaaea..d89b048ad6bba57a4964c72a216a93d3a3bff4fd 100644 (file)
@@ -7,7 +7,6 @@
  * impossible at the moment.
  */
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/linkage.h>
 #include <linux/ctype.h>
index 58a1b6b42dddba6c85c10330bacdb48f7438e4f4..cd4eafbab1b8e265b70657033cc9a1047a16bce2 100644 (file)
@@ -12,7 +12,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/sysctl.h>
 
index 5003acb1591975c995ed92decb6ab412dc988b1a..0539a8362858997cbe6baa2d2445c75c081e3996 100644 (file)
@@ -191,7 +191,8 @@ static int __init tipc_init(void)
        int res;
 
        tipc_log_reinit(CONFIG_TIPC_LOG);
-       info("Activated (compiled " __DATE__ " " __TIME__ ")\n");
+       info("Activated (version " TIPC_MOD_VER 
+            " compiled " __DATE__ " " __TIME__ ")\n");
 
        tipc_own_addr = 0;
        tipc_remote_management = 1;
index d64658053746f093d4429cdcd076666bf4bf99ce..c6831c75cfa4dd9ec9c03fb3da7cb451928f7a0c 100644 (file)
@@ -2,7 +2,7 @@
  * net/tipc/link.c: TIPC link code
  * 
  * Copyright (c) 1996-2006, Ericsson AB
- * Copyright (c) 2004-2005, Wind River Systems
+ * Copyright (c) 2004-2006, Wind River Systems
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -988,17 +988,18 @@ static int link_bundle_buf(struct link *l_ptr,
        struct tipc_msg *bundler_msg = buf_msg(bundler);
        struct tipc_msg *msg = buf_msg(buf);
        u32 size = msg_size(msg);
-       u32 to_pos = align(msg_size(bundler_msg));
-       u32 rest = link_max_pkt(l_ptr) - to_pos;
+       u32 bundle_size = msg_size(bundler_msg);
+       u32 to_pos = align(bundle_size);
+       u32 pad = to_pos - bundle_size;
 
        if (msg_user(bundler_msg) != MSG_BUNDLER)
                return 0;
        if (msg_type(bundler_msg) != OPEN_MSG)
                return 0;
-       if (rest < align(size))
+       if (skb_tailroom(bundler) < (pad + size))
                return 0;
 
-       skb_put(bundler, (to_pos - msg_size(bundler_msg)) + size);
+       skb_put(bundler, pad + size);
        memcpy(bundler->data + to_pos, buf->data, size);
        msg_set_size(bundler_msg, to_pos + size);
        msg_set_msgcnt(bundler_msg, msg_msgcnt(bundler_msg) + 1);
index 861322b935daf1be3aee4ac4e5eca284c4a7c89a..fc6d09630ccd5e114afca1e631845778d0d21525 100644 (file)
@@ -2,7 +2,7 @@
  * net/tipc/node.c: TIPC node management routines
  * 
  * Copyright (c) 2000-2006, Ericsson AB
- * Copyright (c) 2005, Wind River Systems
+ * Copyright (c) 2005-2006, Wind River Systems
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -592,6 +592,7 @@ struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space)
        struct sk_buff *buf;
        struct node *n_ptr;
         struct tipc_node_info node_info;
+       u32 payload_size;
 
        if (!TLV_CHECK(req_tlv_area, req_tlv_space, TIPC_TLV_NET_ADDR))
                return tipc_cfg_reply_error_string(TIPC_CFG_TLV_ERROR);
@@ -608,8 +609,11 @@ struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space)
        /* For now, get space for all other nodes 
           (will need to modify this when slave nodes are supported */
 
-       buf = tipc_cfg_reply_alloc(TLV_SPACE(sizeof(node_info)) *
-                                  (tipc_max_nodes - 1));
+       payload_size = TLV_SPACE(sizeof(node_info)) * (tipc_max_nodes - 1);
+       if (payload_size > 32768u)
+               return tipc_cfg_reply_error_string(TIPC_CFG_NOT_SUPPORTED
+                                                  " (too many nodes)");
+       buf = tipc_cfg_reply_alloc(payload_size);
        if (!buf)
                return NULL;
 
@@ -633,6 +637,7 @@ struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space)
        struct sk_buff *buf;
        struct node *n_ptr;
         struct tipc_link_info link_info;
+       u32 payload_size;
 
        if (!TLV_CHECK(req_tlv_area, req_tlv_space, TIPC_TLV_NET_ADDR))
                return tipc_cfg_reply_error_string(TIPC_CFG_TLV_ERROR);
@@ -645,12 +650,15 @@ struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space)
 
         if (!tipc_nodes)
                 return tipc_cfg_reply_none();
-
-       /* For now, get space for 2 links to all other nodes + bcast link 
-          (will need to modify this when slave nodes are supported */
-
-       buf = tipc_cfg_reply_alloc(TLV_SPACE(sizeof(link_info)) *
-                                  (2 * (tipc_max_nodes - 1) + 1));
+       
+       /* Get space for all unicast links + multicast link */
+
+       payload_size = TLV_SPACE(sizeof(link_info)) *
+               (tipc_net.zones[tipc_zone(tipc_own_addr)]->links + 1);
+       if (payload_size > 32768u)
+               return tipc_cfg_reply_error_string(TIPC_CFG_NOT_SUPPORTED
+                                                  " (too many links)");
+       buf = tipc_cfg_reply_alloc(payload_size);
        if (!buf)
                return NULL;
 
index 267999c5a240fb570fa9e52e4694b482b2e7f700..5ab3d08602e2528d31dc45f9cea84c656b9dbfb3 100644 (file)
@@ -2,7 +2,7 @@
  * net/tipc/zone.h: Include file for TIPC zone management routines
  * 
  * Copyright (c) 2000-2006, Ericsson AB
- * Copyright (c) 2005, Wind River Systems
+ * Copyright (c) 2005-2006, Wind River Systems
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -45,7 +45,7 @@
  * struct _zone - TIPC zone structure
  * @addr: network address of zone
  * @clusters: array of pointers to all clusters within zone
- * @links: (used for inter-zone communication)
+ * @links: number of (unicast) links to zone
  */
  
 struct _zone {
index d901465ce0135093276d55adabbb7691591097c3..aca650109425524fe0fd8b3dfdac71fc1a5364c4 100644 (file)
@@ -83,7 +83,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
@@ -128,6 +127,30 @@ static atomic_t unix_nr_socks = ATOMIC_INIT(0);
 
 #define UNIX_ABSTRACT(sk)      (unix_sk(sk)->addr->hash != UNIX_HASH_SIZE)
 
+#ifdef CONFIG_SECURITY_NETWORK
+static void unix_get_peersec_dgram(struct sk_buff *skb)
+{
+       int err;
+
+       err = security_socket_getpeersec_dgram(skb, UNIXSECDATA(skb),
+                                              UNIXSECLEN(skb));
+       if (err)
+               *(UNIXSECDATA(skb)) = NULL;
+}
+
+static inline void unix_set_secdata(struct scm_cookie *scm, struct sk_buff *skb)
+{
+       scm->secdata = *UNIXSECDATA(skb);
+       scm->seclen = *UNIXSECLEN(skb);
+}
+#else
+static void unix_get_peersec_dgram(struct sk_buff *skb)
+{ }
+
+static inline void unix_set_secdata(struct scm_cookie *scm, struct sk_buff *skb)
+{ }
+#endif /* CONFIG_SECURITY_NETWORK */
+
 /*
  *  SMP locking strategy:
  *    hash table is protected with spinlock unix_table_lock
@@ -1291,6 +1314,8 @@ static int unix_dgram_sendmsg(struct kiocb *kiocb, struct socket *sock,
        if (siocb->scm->fp)
                unix_attach_fds(siocb->scm, skb);
 
+       unix_get_peersec_dgram(skb);
+
        skb->h.raw = skb->data;
        err = memcpy_fromiovec(skb_put(skb,len), msg->msg_iov, len);
        if (err)
@@ -1570,6 +1595,7 @@ static int unix_dgram_recvmsg(struct kiocb *iocb, struct socket *sock,
                memset(&tmp_scm, 0, sizeof(tmp_scm));
        }
        siocb->scm->creds = *UNIXCREDS(skb);
+       unix_set_secdata(siocb->scm, skb);
 
        if (!(flags & MSG_PEEK))
        {
index b1265187b4a8f8cfe4c55ec5aa3f36742f30c917..a690cf773b6ae5123002de6a11196cd2774f67a4 100644 (file)
@@ -32,7 +32,6 @@
 *
 ******************************************************************************/
 
-#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
index c34833dc7cc161f6664f8a487e4162b871606fae..ad8e8a797790713b0b04c621b3dba215715506ea 100644 (file)
@@ -42,7 +42,6 @@
 * Jun 02, 1999  Gideon Hack    Updates for Linux 2.0.X and 2.2.X kernels.
 *****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/stddef.h>      /* offsetof(), etc. */
 #include <linux/capability.h>
 #include <linux/errno.h>       /* return codes */
index c28ba5a47209c4488ec7d9da62637c200b5986ac..930ea59463ad2888890a5c45b6f8aea9e6d24d67 100644 (file)
@@ -20,7 +20,6 @@
 * Dec 13, 1996 Gene Kozin      Initial version (based on Sangoma's WANPIPE)
 *****************************************************************************/
 
-#include <linux/config.h>
 #include <linux/init.h>                /* __initfunc et al. */
 #include <linux/stddef.h>      /* offsetof(), etc. */
 #include <linux/errno.h>       /* return codes */
index 282ce4e40d7b575e4ae53864380817a14bc317be..52a2726d327fe68f6c7ea003894902b204f25e99 100644 (file)
@@ -35,7 +35,6 @@
  *                                     response
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/capability.h>
 #include <linux/errno.h>
index adfe7b8df35591d29ee2d8a91de8bca57e9a3052..47b68a301677a7e65ff647f6cf484abccba1b81f 100644 (file)
@@ -17,7 +17,6 @@
  *      2000-09-04     Henner Eisen    Prevent freeing a dangling skb.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
 #include <linux/skbuff.h>
index dfb80116c59f5da90ba87d1315e06d1d717a6105..a11837d361d2dd7582794be5c56ef4ce744b031e 100644 (file)
@@ -17,7 +17,6 @@
  *     2002/10/06      Arnaldo Carvalho de Melo  seq_file support
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/proc_fs.h>
 #include <linux/seq_file.h>
index 6c5d37517035866e874cef3f82e1cda304fbafd4..2a3fe986b245f648f59a83bca138a72b22419482 100644 (file)
@@ -17,7 +17,6 @@
  *     X.25 001        Jonathan Naylor Started coding.
  */
 
-#include <linux/config.h>
 #include <linux/if_arp.h>
 #include <linux/init.h>
 #include <net/x25.h>
index 6ed3302312fb56f0ebb2784b9990df6dca740865..04e1aea58bc947b8bbef38a5bb39246228aa7910 100644 (file)
@@ -9,7 +9,6 @@
  * any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/pfkeyv2.h>
index b8936926c24b84dba699540b54b0630f2002d439..405b741dff4353048b5f385cc503e48d0075ed85 100644 (file)
@@ -13,7 +13,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/kmod.h>
 #include <linux/list.h>
index 17b29ec3c41779d70562113ed1219e68ff3ae5fc..43f00fc28a3d14e724ba70af6915c73680e28d0b 100644 (file)
@@ -1164,8 +1164,6 @@ int xfrm_state_mtu(struct xfrm_state *x, int mtu)
        return res;
 }
 
-EXPORT_SYMBOL(xfrm_state_mtu);
-
 int xfrm_init_state(struct xfrm_state *x)
 {
        struct xfrm_state_afinfo *afinfo;
index c21dc26141eae947f921e881016cbd64da735c64..3e6a722d072ed8b75c0561b82617abd5a2d3adcd 100644 (file)
@@ -1435,7 +1435,7 @@ static int xfrm_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, int *err
        link = &xfrm_dispatch[type];
 
        /* All operations require privileges, even GET */
-       if (security_netlink_recv(skb)) {
+       if (security_netlink_recv(skb, CAP_NET_ADMIN)) {
                *errp = -EPERM;
                return -1;
        }
index f9b35cc0b248f4ed49146651930fc49cad3b65d5..b868e7eda5f06fafa49ed73c21cf1d5332a77e40 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 841eb4e5c62b6e91b0e799802791289366bfb45d..f50fc298cf801991879bee1de094dd56671562c3 100644 (file)
@@ -8,7 +8,6 @@
  */
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
@@ -33,9 +32,9 @@ int cap_netlink_send(struct sock *sk, struct sk_buff *skb)
 
 EXPORT_SYMBOL(cap_netlink_send);
 
-int cap_netlink_recv(struct sk_buff *skb)
+int cap_netlink_recv(struct sk_buff *skb, int cap)
 {
-       if (!cap_raised(NETLINK_CB(skb).eff_cap, CAP_NET_ADMIN))
+       if (!cap_raised(NETLINK_CB(skb).eff_cap, cap))
                return -EPERM;
        return 0;
 }
index 310fcdf7b7495ce07e50c393e5d810817a4e7817..bbbfda70e1316effbc0475687cd02fd210813e94 100644 (file)
@@ -15,7 +15,6 @@
 #undef DEBUG
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/mman.h>
@@ -506,6 +505,9 @@ static int dummy_task_getsid (struct task_struct *p)
        return 0;
 }
 
+static void dummy_task_getsecid (struct task_struct *p, u32 *secid)
+{ }
+
 static int dummy_task_setgroups (struct group_info *group_info)
 {
        return 0;
@@ -521,6 +523,11 @@ static int dummy_task_setioprio (struct task_struct *p, int ioprio)
        return 0;
 }
 
+static int dummy_task_getioprio (struct task_struct *p)
+{
+       return 0;
+}
+
 static int dummy_task_setrlimit (unsigned int resource, struct rlimit *new_rlim)
 {
        return 0;
@@ -548,7 +555,7 @@ static int dummy_task_wait (struct task_struct *p)
 }
 
 static int dummy_task_kill (struct task_struct *p, struct siginfo *info,
-                           int sig)
+                           int sig, u32 secid)
 {
        return 0;
 }
@@ -675,9 +682,9 @@ static int dummy_netlink_send (struct sock *sk, struct sk_buff *skb)
        return 0;
 }
 
-static int dummy_netlink_recv (struct sk_buff *skb)
+static int dummy_netlink_recv (struct sk_buff *skb, int cap)
 {
-       if (!cap_raised (NETLINK_CB (skb).eff_cap, CAP_NET_ADMIN))
+       if (!cap_raised (NETLINK_CB (skb).eff_cap, cap))
                return -EPERM;
        return 0;
 }
@@ -981,9 +988,11 @@ void security_fixup_ops (struct security_operations *ops)
        set_to_dummy_if_null(ops, task_setpgid);
        set_to_dummy_if_null(ops, task_getpgid);
        set_to_dummy_if_null(ops, task_getsid);
+       set_to_dummy_if_null(ops, task_getsecid);
        set_to_dummy_if_null(ops, task_setgroups);
        set_to_dummy_if_null(ops, task_setnice);
        set_to_dummy_if_null(ops, task_setioprio);
+       set_to_dummy_if_null(ops, task_getioprio);
        set_to_dummy_if_null(ops, task_setrlimit);
        set_to_dummy_if_null(ops, task_setscheduler);
        set_to_dummy_if_null(ops, task_getscheduler);
index 98a0df500dc6546e0b7271310a64ccbe3adf5ea8..47eb63480dac94ab2bd90c39a6894e38ebe71d71 100644 (file)
@@ -13,7 +13,6 @@
  */
 
 /* #define DEBUG */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/fs.h>
 #include <linux/mount.h>
index 07651def2f782c20450b7d064d96bf4aa9ebe389..38dd4f3e641fc8a1891f145ff0f77f8745a64a33 100644 (file)
@@ -22,7 +22,6 @@
  *     License.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index 441beaf1bbc1d104ea7c51706bd2f777feac44e2..c26dd7de04712482ad34144b033a9bce9fed2363 100644 (file)
@@ -16,7 +16,6 @@
  *     (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
index 51ef509710b9d50bc7aa65d89cbf7bde359a6126..ee4e0701b6e0bbfb431c5d1fa5672ab036492fa0 100644 (file)
@@ -12,7 +12,6 @@
  */
 
 #include <linux/capability.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
index 28832e689800b9c9250b54cc4c0be918adebb51d..24caaeec88941004c5acc65d63224ab3b207ab9f 100644 (file)
@@ -18,7 +18,6 @@
  *      as published by the Free Software Foundation.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
@@ -69,6 +68,7 @@
 #include <linux/sysctl.h>
 #include <linux/audit.h>
 #include <linux/string.h>
+#include <linux/selinux.h>
 
 #include "avc.h"
 #include "objsec.h"
@@ -2643,6 +2643,11 @@ static int selinux_task_getsid(struct task_struct *p)
        return task_has_perm(current, p, PROCESS__GETSESSION);
 }
 
+static void selinux_task_getsecid(struct task_struct *p, u32 *secid)
+{
+       selinux_get_task_sid(p, secid);
+}
+
 static int selinux_task_setgroups(struct group_info *group_info)
 {
        /* See the comment for setuid above. */
@@ -2665,6 +2670,11 @@ static int selinux_task_setioprio(struct task_struct *p, int ioprio)
        return task_has_perm(current, p, PROCESS__SETSCHED);
 }
 
+static int selinux_task_getioprio(struct task_struct *p)
+{
+       return task_has_perm(current, p, PROCESS__GETSCHED);
+}
+
 static int selinux_task_setrlimit(unsigned int resource, struct rlimit *new_rlim)
 {
        struct rlimit *old_rlim = current->signal->rlim + resource;
@@ -2699,12 +2709,14 @@ static int selinux_task_movememory(struct task_struct *p)
        return task_has_perm(current, p, PROCESS__SETSCHED);
 }
 
-static int selinux_task_kill(struct task_struct *p, struct siginfo *info, int sig)
+static int selinux_task_kill(struct task_struct *p, struct siginfo *info,
+                               int sig, u32 secid)
 {
        u32 perm;
        int rc;
+       struct task_security_struct *tsec;
 
-       rc = secondary_ops->task_kill(p, info, sig);
+       rc = secondary_ops->task_kill(p, info, sig, secid);
        if (rc)
                return rc;
 
@@ -2715,8 +2727,12 @@ static int selinux_task_kill(struct task_struct *p, struct siginfo *info, int si
                perm = PROCESS__SIGNULL; /* null signal; existence test */
        else
                perm = signal_to_av(sig);
-
-       return task_has_perm(current, p, perm);
+       tsec = p->security;
+       if (secid)
+               rc = avc_has_perm(secid, tsec->sid, SECCLASS_PROCESS, perm, NULL);
+       else
+               rc = task_has_perm(current, p, perm);
+       return rc;
 }
 
 static int selinux_task_prctl(int option,
@@ -3420,7 +3436,13 @@ out:
 static int selinux_socket_getpeersec_dgram(struct sk_buff *skb, char **secdata, u32 *seclen)
 {
        int err = 0;
-       u32 peer_sid = selinux_socket_getpeer_dgram(skb);
+       u32 peer_sid;
+
+       if (skb->sk->sk_family == PF_UNIX)
+               selinux_get_inode_sid(SOCK_INODE(skb->sk->sk_socket),
+                                     &peer_sid);
+       else
+               peer_sid = selinux_socket_getpeer_dgram(skb);
 
        if (peer_sid == SECSID_NULL)
                return -EINVAL;
@@ -3432,8 +3454,6 @@ static int selinux_socket_getpeersec_dgram(struct sk_buff *skb, char **secdata,
        return 0;
 }
 
-
-
 static int selinux_sk_alloc_security(struct sock *sk, int family, gfp_t priority)
 {
        return sk_alloc_security(sk, family, priority);
@@ -3641,32 +3661,32 @@ static unsigned int selinux_ipv6_postroute_last(unsigned int hooknum,
 
 static int selinux_netlink_send(struct sock *sk, struct sk_buff *skb)
 {
-       struct task_security_struct *tsec;
-       struct av_decision avd;
        int err;
 
        err = secondary_ops->netlink_send(sk, skb);
        if (err)
                return err;
 
-       tsec = current->security;
-
-       avd.allowed = 0;
-       avc_has_perm_noaudit(tsec->sid, tsec->sid,
-                               SECCLASS_CAPABILITY, ~0, &avd);
-       cap_mask(NETLINK_CB(skb).eff_cap, avd.allowed);
-
        if (policydb_loaded_version >= POLICYDB_VERSION_NLCLASS)
                err = selinux_nlmsg_perm(sk, skb);
 
        return err;
 }
 
-static int selinux_netlink_recv(struct sk_buff *skb)
+static int selinux_netlink_recv(struct sk_buff *skb, int capability)
 {
-       if (!cap_raised(NETLINK_CB(skb).eff_cap, CAP_NET_ADMIN))
-               return -EPERM;
-       return 0;
+       int err;
+       struct avc_audit_data ad;
+
+       err = secondary_ops->netlink_recv(skb, capability);
+       if (err)
+               return err;
+
+       AVC_AUDIT_DATA_INIT(&ad, CAP);
+       ad.u.cap = capability;
+
+       return avc_has_perm(NETLINK_CB(skb).sid, NETLINK_CB(skb).sid,
+                           SECCLASS_CAPABILITY, CAP_TO_MASK(capability), &ad);
 }
 
 static int ipc_alloc_security(struct task_struct *task,
@@ -4429,9 +4449,11 @@ static struct security_operations selinux_ops = {
        .task_setpgid =                 selinux_task_setpgid,
        .task_getpgid =                 selinux_task_getpgid,
        .task_getsid =                  selinux_task_getsid,
+       .task_getsecid =                selinux_task_getsecid,
        .task_setgroups =               selinux_task_setgroups,
        .task_setnice =                 selinux_task_setnice,
        .task_setioprio =               selinux_task_setioprio,
+       .task_getioprio =               selinux_task_getioprio,
        .task_setrlimit =               selinux_task_setrlimit,
        .task_setscheduler =            selinux_task_setscheduler,
        .task_getscheduler =            selinux_task_getscheduler,
index 7029bbc9bef8c1b897e4883bd8b9d587eb431eeb..00534c302ba2b11939807dd5668f3530cd73fd96 100644 (file)
@@ -9,7 +9,6 @@
  *     the Free Software Foundation, version 2.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/pagemap.h>
 #include <linux/slab.h>
index 6633fb05931353502c350974551a1a1a33cd1bc7..6c985ced810279a8325f9aba4d26384c16e0bc4c 100644 (file)
@@ -26,7 +26,6 @@
  *   2. Emulating a reasonable SO_PEERSEC across machines
  *   3. Testing addition of sk_policy's with security context via setsockopt
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
index b88fb0c5a68a4869b3212f4815b7ff9ed1c048cd..c79a9afd0955e2b9a2fa98fb5872616cef819ac4 100644 (file)
@@ -59,7 +59,6 @@
 * 
 ***************************************************************************************************/
 
-#include <linux/config.h>
 #include <sound/driver.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
index 3fc6f97075ed87ae962562bfae0cf3ad14a8e9b6..bc0bd0910a6264a2fae71b74f50f672d98b7b9c7 100644 (file)
@@ -21,7 +21,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/proc_fs.h>
 #include <linux/init.h>
index 74745da9deb69f4cf171500dc6523435c1839752..6e4d4ab34632f009e3507e3ffc932066a2d3f567 100644 (file)
@@ -19,7 +19,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/mm.h>
 #include <linux/vmalloc.h>
index 95586de02028cf57d4a628044885953b92ba57f0..29057836c64425c2ddceab96d397d74fe0c10608 100644 (file)
@@ -41,7 +41,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
index e04fa49b0dc8e5509963e82ef6d4bc34692324d4..3b45e11e5303ca7cccdc37f4ddf32f4eec1d72f3 100644 (file)
@@ -41,7 +41,6 @@
  *             Tested. Believed fully functional.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
index a4ca7569e700d81fa654e380bea7c3e24eab81c7..0b09b8b4ec7d95d404b700b2a701046025383bfc 100644 (file)
@@ -26,7 +26,6 @@
  *
  * $Id: ad1889.c,v 1.3 2002/10/19 21:31:44 grundler Exp $
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/ioport.h>
index b556263a57f5513fa44bb87dbdbfbad37a04d80e..51e1fde62e8d5685bed6fc44ef0fdd9bd0dc896a 100644 (file)
@@ -23,7 +23,6 @@
  * Include the main OSS Lite header file. It include all the os, OSS Lite, etc
  * headers needed by this source.
  */
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/module.h>
 #include <linux/init.h>
index 80f6c08e26e7fa73d40a9a8ee24e818d98e08355..b6924c7f1484f5c6c01f1684d3654dec21f7f0fe 100644 (file)
@@ -47,7 +47,6 @@
  *     Marcus Meissner         Added ISA PnP support.
  */
 
-#include <linux/config.h>
 #include <linux/pnp.h>
 #include <linux/module.h>
 #include <linux/init.h>
index baf4244a54f2f9b6d81661c983eb117ae189fb3e..15ce7119c5f45ac605181566b2359712ae4f84f5 100644 (file)
@@ -547,7 +547,7 @@ int DMAbuf_activate_recording(int dev, struct dma_buffparms *dmap)
        }
        return 0;
 }
-/* aquires lock */
+/* acquires lock */
 int DMAbuf_getrdbuffer(int dev, char **buf, int *len, int dontblock)
 {
        struct audio_operations *adev = audio_devs[dev];
@@ -821,7 +821,7 @@ static int find_output_space(int dev, char **buf, int *size)
        *size = len & ~SAMPLE_ROUNDUP;
        return (*size > 0);
 }
-/* aquires lock  */
+/* acquires lock  */
 int DMAbuf_getwrbuffer(int dev, char **buf, int *size, int dontblock)
 {
        struct audio_operations *adev = audio_devs[dev];
@@ -855,7 +855,7 @@ int DMAbuf_getwrbuffer(int dev, char **buf, int *size, int dontblock)
        spin_unlock_irqrestore(&dmap->lock,flags);
        return 0;
 }
-/* has to aquire dmap->lock */
+/* has to acquire dmap->lock */
 int DMAbuf_move_wrpointer(int dev, int l)
 {
        struct audio_operations *adev = audio_devs[dev];
index a1b0b92af4b5acfdcf5c7e60aa75008604cf9db7..25dd5a318eb452d53ac68d3d4a0ecf82aeadaf1a 100644 (file)
@@ -13,7 +13,6 @@
 #define _dmasound_h_
 
 #include <linux/types.h>
-#include <linux/config.h>
 
 #define SND_NDEVS      256     /* Number of supported devices */
 #define SND_DEV_CTL    0       /* Control port /dev/mixer */
index c8e210326893b3f64940c570f95fb21bc8790cbb..de454ca39226e5805fa54db582914b55a73afd67 100644 (file)
@@ -67,7 +67,6 @@
 
 #include <linux/types.h>
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/init.h>
 #include <linux/delay.h>
index 494070a3f8702e27d95673f4b0253ca24eb29d13..68e1d8f6c359aa1b6b8be19a5b29c63e337afda3 100644 (file)
@@ -16,7 +16,6 @@
 
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/mm.h>
 #include <linux/init.h>
 #include <linux/ioport.h>
index 2835a7c038efadfa5163e07748a914d95f0428ee..12e7b3038be2bb8a05dcb2c27045d4023c340464 100644 (file)
@@ -27,7 +27,6 @@
  *     same manner.
  */
 
-#include <linux/config.h>
 #include <linux/delay.h>
 #include <linux/init.h>
 #include <linux/module.h>
index 83c3c46ffffed1847134005271d2604e6f450618..7ffea5267f9699dd4ca22aa2557f1ca777505c91 100644 (file)
@@ -30,7 +30,6 @@
 #ifndef __MSND_CLASSIC_H
 #define __MSND_CLASSIC_H
 
-#include <linux/config.h>
 
 #define DSP_NUMIO                              0x10
 
index 0c2db657badd135a66a83b3b5ce142ac84d01435..6d7763dae8952f7913058e21d00f72cb9b474789 100644 (file)
@@ -39,7 +39,6 @@
  ********************************************************************/
 
 #include <linux/kernel.h>
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/types.h>
index e85aef4a55e0915cab2c4e31dc78174f0e8b2773..cce91148700481b1ac28aa67729311d0ebcbf2e5 100644 (file)
@@ -30,7 +30,6 @@
 #ifndef __MSND_PINNACLE_H
 #define __MSND_PINNACLE_H
 
-#include <linux/config.h>
 
 #define DSP_NUMIO                              0x08
 
index 0e161c6a04770c313ed157a1d99acc8b2b349fc9..aec05a2bfc8717ddb2f4999e1dd638a509fd4471 100644 (file)
@@ -64,7 +64,6 @@
  *   
  */
 
-#include <linux/config.h>
 #include <linux/pnp.h>
 #include <linux/init.h>
 #include <linux/module.h>
index c9696dc9fdf956ebddf76c47bf7eb1297bfe56f3..97666007b274f4961625dcd836413609b52f8824 100644 (file)
@@ -4,7 +4,6 @@
  * Detection routine for the Pro Audio Spectrum cards.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
index a617ccb40e006223e7ca88e9948e436980a69cf6..37ee234b587c86744918e49d49bc8fd34e1f6eb2 100644 (file)
@@ -57,7 +57,6 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/spinlock.h>
index 4708cbdc31497edded137e77ed4fc1b181856861..8666291c00523fccca590df1d6a5fbedbf6c28c7 100644 (file)
@@ -22,7 +22,6 @@
  * 02-07-2003 Bug made it into first release. Take two.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/init.h>
index 5f955e3d2e26926e6e59612416466d78bced3db3..3e8ecac86a894e11e604b2e03d913dd8f70da152 100644 (file)
@@ -26,7 +26,6 @@
  * Chris Rankin <rankinc@zipworld.com.au>
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
index 3f7427cd195a03358ca5fc136d24690177c38ae1..cbf745db4b10e2baf32ba49e20b00527052b4d00 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/sched.h>
index 9f912b8a29698aad52a5f63292afb4c393ef5142..1a00a3210616231f7c271fe2f621d8a29c21b27c 100644 (file)
@@ -14,7 +14,6 @@
 #ifndef  _SOUND_CONFIG_H_
 #define  _SOUND_CONFIG_H_
 
-#include <linux/config.h>
 #include <linux/fs.h>
 #include <linux/sound.h>
 
index a332899489021a870ad67face6268f6f690197ff..0860d678971567e52b3766752e6ab65cd73ed1c0 100644 (file)
@@ -22,7 +22,6 @@
  * Christoph Hellwig : Some cleanup work (2000/03/01)
  */
 
-#include <linux/config.h>
 
 #include "sound_config.h"
 #include <linux/init.h>
index e61a454a815026252d4bf465ea476d493f3ac270..420a866fb93387e688706c62b7b863311ac1a7cd 100644 (file)
  *             sem     -       guard dmabuf, write re-entry etc
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/ctype.h>
index 29a6e0cff79f793557f9ee49d7dae200efbf2018..3ada26b3fc7eb03e7c216cb54c6e5eb78e9d0188 100644 (file)
@@ -18,7 +18,6 @@
 #define VIA_VERSION    "1.9.1-ac4-2.5"
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/fs.h>
index 00fe5cec9dc124b9ae425d1009ef854390440da8..8932d89408efb294d2673d7da8f25625cd154046 100644 (file)
@@ -17,7 +17,6 @@
  * We currently support a mixer device, but it is currently non-functional.
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
index afcb524a40eb52ce4fbd83080a3f25330d3b32f9..22d26624b34a040687a27a6591da33fe69caee7b 100644 (file)
@@ -35,7 +35,6 @@
 
 #include <linux/module.h>
 #include <linux/init.h>
-#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
 #include <linux/delay.h>
index 7535ec821dcf8dfb53a55046853ad86b0cbff54d..62d4d0c812611e22227e064cfd43eb36583f70a4 100644 (file)
@@ -34,7 +34,6 @@
  *     locking at some point in 2.3.x.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
index d9d14c2707dbf922a622b5889b9c2b78af74068b..44ad9616bf63a39d4df41e45440284fddc488604 100644 (file)
@@ -8,7 +8,6 @@
  * Copyright (c) by Jaroslav Kysela <perex@suse.cz>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
index a7489a3dd75ac4f68fc328f128332e760a77a28f..63bef0aadf1e13dd11a4da275ddbd390a398981d 100644 (file)
@@ -46,7 +46,7 @@
  *
  * I've tried to stick to the following function naming conventions:
  * snd_*       ALSA stuff
- * cs4215_*    CS4215 codec specfic stuff
+ * cs4215_*    CS4215 codec specific stuff
  * dbri_*      DBRI high-level stuff
  * other       DBRI low-level stuff
  */